美文网首页
IDA静态调试还原JNI_OnLoad函数

IDA静态调试还原JNI_OnLoad函数

作者: 人活一世 | 来源:发表于2020-07-11 18:10 被阅读0次

1.找到JNI_OnLoad函数

图片.png
图片.png

2.识别成函数

按p


图片.png
图片.png

再按F5


图片.png
图片.png
注:很多时候直接按F5就能直接识别出函数

3.改参数

在Cpp文件中一个完整JNI_OnLoad函数是这样的


图片.png

只需要把关键地方的函数还原就行

1.改JNI_OnLoa函数的参数

图片.png

改成


图片.png

按xx.cpp中的JNI_OnLoad函数模型来改


图片.png

2.改GetEnv函数

参照原函数来改


图片.png

第一个参数是vm,在cpp代码里是默认参数不显示
第二个参数是 JNIEnv 类型
第三个参数是 JNI 版本,这个不用改
在IDA里是这样显示


图片.png
先获取类型
图片.png
图片.png

改二个参数类型


图片.png
图片.png
改完后
图片.png
这里把v62赋值v5, 接收的v5类型也改成JNIEnv *
识别成功后,FindClass和RegisterNatives函数也出来了
图片.png

3.改FindClass

图片.png

4.改RegisterNatives

图片.png

这个参数


图片.png

就是java方法与C的函数对应表


图片.png

4.找到动态注册表

点击 g_methods 函数所在的地址,也就是上一步在IDA里识别到的第三个参数 off_A9094


图片.png

动态注册表就在这里


图片.png
从上到下依次是 函数名,函数参数和返回值类型,函数所在内存地址
图片.png

点击函数地址


图片.png
进入到对应的函数
图片.png
点F5识别成函数
图片.png

相关文章

网友评论

      本文标题:IDA静态调试还原JNI_OnLoad函数

      本文链接:https://www.haomeiwen.com/subject/edvicktx.html