libart.so下断进入JNI_ONLOAD

libart.so位置是在 /system/lib/libart.so

adb pull /system/lib/libart.so .

Exports里面搜索:LoadNativeLibrary

获取地址: 0x002516F0

libart%20so%20JNI_ONLOAD%20fa13f73d7cdb466ea14d57913dd104a0/Untitled.png

然后在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

libart%20so%20JNI_ONLOAD%20fa13f73d7cdb466ea14d57913dd104a0/Untitled%204.png

用这里的地址减去前面搜索 LoadNativeLibrary 拿到的地址

0x00251E66 - 0x002516F0 得到偏移 0x776

然后以后动态调试的时候,先确认你需要的so加载进来了,然后在libart.so中的模块窗口直接搜索 LoadNativeLibrary 用这个位置加上上面的 0x776 这里断下来,然后F7进入的时候就是当前so的JNI_ONLOAD

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。