首页
社区
课程
招聘
frida hook 方法的堆栈只有一条记录
2023-12-17 16:34 1946

frida hook 方法的堆栈只有一条记录

2023-12-17 16:34
1946

RT,在使用frida hook 方法的堆栈结果只显示自身本身一条记录
环境:xiaomi真机, frida-server==16.0.19;apk:baidu_netdisk.11.48.2,hook下载文件部分的staicCallbackMsg 函数(该方法只有一个字符串参数)
打印堆栈方法

1
2
function printstack() { console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()));
        }

结果只有 com.baidu.netdisk.P2P.staicCallbackMsg 一条记录;理论上至少线程名应该也有一条记录的,为啥会只有一条记录,不解


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

收藏
点赞0
打赏
分享
最新回复 (6)
雪    币: 1226
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_sbsievro 2023-12-17 23:42
2
0
JNI调用
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_dvykdjrm 2023-12-18 09:06
3
0
mb_sbsievro JNI调用
如果是JNI调用堆栈也会打印是哪个JNI函数调用的
雪    币: 44
活跃值: (1142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lqfcugo 2023-12-18 09:28
4
0
mb_dvykdjrm 如果是JNI调用堆栈也会打印是哪个JNI函数调用的
JNI调用Java的代码getStackTraceString是获取不到JNI层调用栈的
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_dvykdjrm 2023-12-18 10:35
5
0
lqfcugo JNI调用Java的代码getStackTraceString是获取不到JNI层调用栈的
假设是 public native String StacicMsg()这个so方法调用了 Java层的StaciCallbackMsg方法, getStackTraceString起码能获取到这个堆栈: 

com.baidu.netdisk.P2P.StaticCallbackMsg
com.baidu.netdisk.P2P.StaticMsg

---------------------------------
再不济也会有线程的堆栈打印出来的
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_dvykdjrm 2023-12-18 10:36
6
0
lqfcugo JNI调用Java的代码getStackTraceString是获取不到JNI层调用栈的
搜索到说可能是flutter框架,所以hook不到
雪    币: 1226
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_sbsievro 2023-12-18 11:24
7
0
mb_dvykdjrm 假设是 public native String StacicMsg()这个so方法调用了 Java层的StaciCallbackMsg方法, getStackTraceString起码能获取到这个堆 ...
native层创建的线程,使用JavaVM::AttachCurrentThread拿到JNIEnv,然后使用JNI调用目标方法,所以调用栈只有一条
游客
登录 | 注册 方可回帖
返回