首页
社区
课程
招聘
未解决 [求助][求助]android java 方法如何知道被hook了 200雪币
发表于: 5天前 1716

未解决 [求助][求助]android java 方法如何知道被hook了 200雪币

5天前
1716

RT:
android java 方法如何知道被hook了

在java层实现这个,测试并不管用。

1
2
Method m = clazz.getDeclaredMethod("test1");
Modifier.isNative(m.getModifiers())

想在native层实现这个检测,初始思路是,获取到原始的ArtMethod,和现在的做对比,但是获取到的ArtMethod 无法判断区分原始的还是被hook后的。

大佬提供思路也行


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (3)
雪    币: 225
活跃值: (480)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
对比原始的ArtMethod和当前的是否相同,应该就可以判断是否被hook了,为什么不行,不太能理解你的意思。不行你保存smali指令的前n个字节做对比,也能知道是否被hook了。再不行,换个思路直接检测frida等hook工具的特征也行啊。
5天前
0
雪    币: 4512
活跃值: (1870)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mb_homnvxow 对比原始的ArtMethod和当前的是否相同,应该就可以判断是否被hook了,为什么不行,不太能理解你的意思。不行你保存smali指令的前n个字节做对比,也能知道是否被hook了。再不行,换个思路直接 ...
我的意思是,我检测的那一刻,取到的ArtMethod 不知道是不是原始的,或者说原始的方法在发版本之前存起来吗
4天前
0
雪    币: 225
活跃值: (480)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
必须保存起来啊,java层你可以在在 Application.attach() 或 attachBaseContext() 方法中尽早保存原始 ArtMethod。native层比java层时机更早,可以在JNI_OnLoad或者init_array中进行保存。
4天前
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册
//