-
-
查找jni_onload地址的方法
-
发表于:
2016-4-14 16:28
3671
-
最近在研究某数字公司的壳,通过调试发现它实际的开始的位置在Jni_OnLoad,但是把so文件拉进ida中是无法察看的,怎么查找Jni_Onload是第一个问题。我使用的方法是:自己编写so加载,在自己的jni_onload下断点,从当前函数返回,会发现进入了libdvm.so中,上一条指令就是对Jni_OnLoad的调用,上一条指令在我的电脑中是:
红色的r8就是Jni_OnLoad的地址,进去就是Jni_OnLoad
自己写了idapython的脚本:
from idaapi import *
from idc import *
so_base = 0x4176c000 # the base address of libdvm.so
class DumpHook(DBG_Hooks):
def dbg_bpt(self,tid,ea):
return 1
#hook call jni_onload
AddBpt(so_base+0x511d0)
print "set hook ok...\n"
debug = DumpHook()
debug.hook()
下面是我的轻博客,有兴趣可以关注一下,希望多交流,找到志同道合的朋友。
http://fccload.lofter.com/
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课