根据特征找RegisterNative函数,找到动态注册函数
2021-10-19 本文已影响0人
炫子_260f
-
为什么要找
RegisterNative
函数?
因为根据RegisterNative
函数,可以找到动态注册的函数地址,就方便看so
中的函数了。 -
怎么找
RegisterNative
函数?
在JNI_Onload
函数中 -
特征
特征需要简单强调下:
860 (0x35C)
(*(v1 + 860))()
LDR.W [R12, #0x35C]
-
具体简单方便方法
简述:所有的JNI函数的指针在一个大表格中,RegisterNative
函数位于860(0x35C)
这个位置,正常反汇编后形如(*(v1 + 860))()
,然后我们会转换v1
为env
结构体指针,即可得到正确结果。
但我们现在得不到正确的反汇编代码,所以老老实实看汇编的特征。-
在IDA中搜索立即数,ALT+I热键,如图操作。
ALT+I.png -
点ok ,出 ALT+I 结果
ALT+I 结果.png -
Ctrl+F 搜索0x35C(这种信息一般十六进制显示)
Ctrl+F.png -
找到
找到.png
样本中的so,搜索结果就很明确了,在JNI_Onload
函数中,点击进去
特征明确,off_7588C即为我们需要的methods列表
双击进去:
methods列表.png
达到目的
-
参考: