首页
社区
课程
招聘
[原创]android jni 日志+参数 打印
发表于: 12小时前 185

[原创]android jni 日志+参数 打印

12小时前
185

  一:前提 

    Adroid apk 中存在jni调用:使用 art 的 CallxxxMethodID 系列函数完成,最终内部都是通过 libart中的 art::ArtMethod::Invoke 函数完成调用

下面是通过 通过 frida hook Invoke 来打印所有jni调用的脚本。

    主要是通过 methodID 参数进行指针内存索引,提取函数名称和类名称,以及hook Invoke 的返回地址来获取执行的结果。

效果:

使用其分析过的实例:APK签名检测、IDA调试ARM64、脱壳修复、VMP分析


二:使用方法

加载:

frida -U -f com.example.p8 -l .\hook_jni.js > t1.txt

修改1:功能

只能同时完成一个功能,不能同时设置为1

修改2:libart的偏移修改

三处分别是 libart.so 中的 art::JNI::RegisterNatives函数偏移、art::ArtMethod::Invoke函数偏移(获取调用参数)、art::ArtMethod::Invoke函数结束(RET)偏移(获取调用结果)


接口:

只有一个接口 start_hook() 函数,根据时机来调用,比如点击某个按钮后再调用这个函数

问题:

每个系统的liart so 版本不同,脚本通过 methodID 参数进行指针内存索引,而不是高级API完成的,可能各个字段或函数偏移不同,导致失败





传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回