首页
社区
课程
招聘
[求助]so方法里面只有一个onload方法, java里面调用的native方法在so里面找不到,怎么才可以找到内存里 真实完整的的 so 的加载的初始地址呢?
发表于: 2015-9-9 12:00 8445

[求助]so方法里面只有一个onload方法, java里面调用的native方法在so里面找不到,怎么才可以找到内存里 真实完整的的 so 的加载的初始地址呢?

2015-9-9 12:00
8445
so方法里面只有一个onload方法, java里面调用的native方法在so里面找不到,怎么才可以找到内存里 真实完整的的 so 的加载的初始地址呢?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 110
活跃值: (254)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
很明显 在JNI_OnLoad里面动态注册的  用javaVM获取JNIenv(GetEnv)然后调用RegisterNatives方法注册 具体请自行百度
2015-9-10 09:59
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我顶一下  楼主  我是新手
2015-9-10 10:42
0
雪    币: 250
活跃值: (251)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
调试的时候,进到Jni_OnLoad之后,在libdvm.so -> SetNativeFunc函数下断点,断下来之后,看到R2寄存器的值,就是动态注册的函数在内存中的地址,拿到之后,减去SO文件的首地址,就是注册函数的文件偏移地址了。
2015-9-11 09:22
0
雪    币: 277
活跃值: (3358)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
这个函数dvmSetNativeFunc么?
2015-9-18 10:12
0
雪    币: 250
活跃值: (251)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
看下源码,在IDA里直接搜SetNativeFunc是能找到的
2015-9-19 23:48
0
游客
登录 | 注册 方可回帖
返回
//