-
-
查找jni_onload地址的方法
-
发表于:
2016-4-14 16:28
3754
-
最近在研究某数字公司的壳,通过调试发现它实际的开始的位置在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()
下面是我的轻博客,有兴趣可以关注一下,希望多交流,找到志同道合的朋友。
769K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3k6U0j5$3I4G2j5h3c8Q4x3X3g2D9L8$3k6@1k6i4u0Q4x3X3g2U0L8$3#2Q4x3V1j5`.
[培训]科锐逆向工程师培训第53期2025年7月8日开班!