首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >frida在颤振应用程序Sslpinning旁路中的空地址

frida在颤振应用程序Sslpinning旁路中的空地址
EN

Stack Overflow用户
提问于 2021-08-15 05:40:09
回答 1查看 1.5K关注 0票数 2

我在genymotion x86上开发了一个颤振的android应用程序,通过使用方法绕过sslpinning,但是我的函数地址在运行Frida时返回null。

首先,通过(\x55\x41\x57\x41\x56\x41\x55\x41\x54\x53\x48\x81\xec\xf8\x00\x00\x00\xc6)找到了函数的地址,即(0x773c52),下面是该函数早期行的字节:吉德拉,然后联步找到了正确的地址偏移量。

代码语言:javascript
复制
C:\ >python binwalk -R " \x55\x41\x57\x41\x56\x41\x55\x41\x54\x53\x48\x81\xec\xf8\x00\x00\x00\xc6" <app_path>\lib\x86_64\libflutter.so

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
6761554       0x672C52        Raw signature (\x55\x41\x57\x41\x56\x41\x55\x41\x54\x53\x48\x81\xec\xf8\x00\x00\x00\xc6)

接下来,我在Frida代码中使用了这个地址,如下所示:

代码语言:javascript
复制
function disablePinning(){
    var address = Module.findBaseAddress('lib/x86_64/libflutter.so').add(0x673c52)
    hook_ssl_verify_result(address);
}
setTimeout(disablePinning, 10000)

最后,当我运行Frida脚本时,我遇到了空地址异常。

TypeError:无法读取属性'add‘of null at disablePinning (/hook_ssl.js:20) at apply (本机) at (frida/runtime/core.js:45)

frida中的空地址错误

我也尝试了很多不同版本的Frida。有人知道为什么会这样吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-08-15 10:16:29

您的代码的问题是您混淆了模块名和文件名。

var address = Module.findBaseAddress('lib/x86_64/libflutter.so')返回null,因为您指定的模块名是错误的,因此找不到模块。

如果执行以下代码段,您将看到模块名从未用路径表示。模块名是库的内部名称,通常与文件名相同(但据我所知,它可能有所不同)。

代码语言:javascript
复制
Process.enumerateModules({
        onMatch: function(module){
            console.log('Module name: ' + module.name + " - Base Address: " + module.base.toString());
        }, 
        onComplete: function(){}
    });

普通Android应用程序的代码片段的示例输出:

代码语言:javascript
复制
Module name: app_process64 - Base Address: 0x763b8e3000
Module name: libandroid_runtime.so - Base Address: 0x7637b04000
Module name: libbinder.so - Base Address: 0x763a365000
Module name: libcutils.so - Base Address: 0x763a7df000
Module name: libdl.so - Base Address: 0x763a20d000
Module name: libhwbinder.so - Base Address: 0x7637183000
Module name: liblog.so - Base Address: 0x763a9dd000
Module name: libnativeloader.so - Base Address: 0x7639fcc000
Module name: libutils.so - Base Address: 0x7636f92000
Module name: libwilhelm.so - Base Address: 0x7637e86000
Module name: libc++.so - Base Address: 0x7639bdb000
Module name: libc.so - Base Address: 0x7638d5e000
...

考虑到这一点,如果您使用的是没有路径名称的'libflutter.so',那么您的代码应该可以工作。如果仍然不能工作,请使用所提供的代码片段获取应用程序的模块列表,并确定颤振库的正确模块名。

代码语言:javascript
复制
function disablePinning(){
    var address = Module.findBaseAddress('libflutter.so').add(0x673c52)
    hook_ssl_verify_result(address);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68788997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档