首页
社区
课程
招聘
未解决 [求助][求助]android java 方法如何知道被hook了 200雪币
发表于: 2024-12-13 20:04 2715

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

2024-12-13 20:04
2715

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

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

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

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

大佬提供思路也行


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 155
活跃值: (780)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
对比原始的ArtMethod和当前的是否相同,应该就可以判断是否被hook了,为什么不行,不太能理解你的意思。不行你保存smali指令的前n个字节做对比,也能知道是否被hook了。再不行,换个思路直接检测frida等hook工具的特征也行啊。
2024-12-14 13:35
0
雪    币: 4796
活跃值: (2390)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mb_homnvxow 对比原始的ArtMethod和当前的是否相同,应该就可以判断是否被hook了,为什么不行,不太能理解你的意思。不行你保存smali指令的前n个字节做对比,也能知道是否被hook了。再不行,换个思路直接 ...
我的意思是,我检测的那一刻,取到的ArtMethod 不知道是不是原始的,或者说原始的方法在发版本之前存起来吗
2024-12-15 13:35
0
雪    币: 155
活跃值: (780)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
必须保存起来啊,java层你可以在在 Application.attach() 或 attachBaseContext() 方法中尽早保存原始 ArtMethod。native层比java层时机更早,可以在JNI_OnLoad或者init_array中进行保存。
2024-12-15 15:20
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
mb_homnvxow 对比原始的ArtMethod和当前的是否相同,应该就可以判断是否被hook了,为什么不行,不太能理解你的意思。不行你保存smali指令的前n个字节做对比,也能知道是否被hook了。再不行,换个思路直接 ...
大佬,对比smail指令是直接在内存对比吗?那咋获取这个对应的smail指令
2024-12-20 01:32
0
雪    币: 155
活跃值: (780)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
yazigegeda 大佬,对比smail指令是直接在内存对比吗?那咋获取这个对应的smail指令
引入DexLib库来解析项目中的dex文件,可以得到dalvik字节码,也就是smali指令。
2024-12-20 20:16
0
游客
登录 | 注册 方可回帖
返回