首页
社区
课程
招聘
求助 frida hook b站 崩溃 Illegal instruction
2024-4-20 13:46 1678

求助 frida hook b站 崩溃 Illegal instruction

2024-4-20 13:46
1678

楼主想要去掉b站客户端的SSL Pinning功能,通过网上查阅资料发现b站使用的网络库是cronet。

根据https://bbs.kanxue.com/thread-277996.htm 的内容,楼主决定hook int CertVerifyProc::Verify(...) 函数,通过ghidra逆向分析确定偏移量为 0x26A980 - 0x10000 = 0x25A980.
图片描述

于是编写了如下js测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function hook_cornet() {
    let module = Process.findModuleByName("libbilicr.88.0.4324.188.so");
    console.log("bilicr: ", module.base);
    let addr = module.base.add(0x25A980);
    // let addr = module.base.add(0x25B430);
    console.log(hexdump(addr));
 
    Interceptor.attach(addr, {
        onEnter: function (args) {
 
        },
        onLeave: function (retval) {
            console.log("cornet verify retval: ", retval.readInt());
        }
    });
}

但是运行之后报错Illegal instruction,详情如图:
图片描述

通过hexdump了内存中的指令,和ghidra中显示的是一样的,说明偏移量是没问题的。把偏移量改成下一个函数的,或者注释掉Interceptor.attach(...部分代码,就不会崩溃了。请问有大佬知道怎么回事吗?
图片描述

注意:楼主已通过hook strcmp strstr函数,绕开了frida反调试。

此外还有一个问题:b站apk中解压出来的.so文件只有64位的,而/data/app/<packagename>/arm/中的同名.so文件却是32位的,请问这是系统自动生成的吗?


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 1058
活跃值: (575)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
TrumpWY 2024-4-26 11:43
2
0
so只有v8a的   那在32位手机上应该都装不上吧?
雪    币: 1074
活跃值: (1509)
能力值: ( LV4,RANK:49 )
在线值:
发帖
回帖
粉丝
userapp 6天前
3
0
Thumb指令需要地址值|1
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
zouzhiqiang 2天前
4
0
你说好巧不巧,这篇帖子刚好适合你https://bbs.kanxue.com/thread-281584.htm
游客
登录 | 注册 方可回帖
返回