libart.so位置是在 /system/lib/libart.so
adb pull /system/lib/libart.so .
Exports里面搜索:LoadNativeLibrary
获取地址: 0x002516F0
然后在strings窗口里搜索 Calling JNI_OnLoad
点进去右击查看交叉引用,点第一个进去
libart%20so%20JNI_ONLOAD%20fa13f73d7cdb466ea14d57913dd104a0/Untitled%201.png libart%20so%20JNI_ONLOAD%20fa13f73d7cdb466ea14d57913dd104a0/Untitled%202.png进去后点最下面的B
libart%20so%20JNI_ONLOAD%20fa13f73d7cdb466ea14d57913dd104a0/Untitled%203.png进来之后是R6位置,下面的 BLX R5
记住这里的地址 0x00251E66
用这里的地址减去前面搜索 LoadNativeLibrary
拿到的地址
0x00251E66 - 0x002516F0
得到偏移 0x776
然后以后动态调试的时候,先确认你需要的so加载进来了,然后在libart.so中的模块窗口直接搜索 LoadNativeLibrary
用这个位置加上上面的 0x776
这里断下来,然后F7进入的时候就是当前so的JNI_ONLOAD
网友评论