首页
社区
课程
招聘
[求助]Lsposed hook java method会转成native吗?
发表于: 2025-2-26 15:29 2047

[求助]Lsposed hook java method会转成native吗?

2025-2-26 15:29
2047

最近研究反hook,xposed的检测方法有一种是检查java方法有没有变成native的,因为其hookMethodNative函数中会设置flag为kAccNative。
用这种方法检测lsposed的时候却不会生效,显示被hook的方法仍是java方法,这是对的吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static boolean checkNative() {
        try {
 
            Class<?> mainActivityClass = Class.forName("com.example.victimapp.MainActivity");
 
            Method checkSNMethod = mainActivityClass.getDeclaredMethod("checkSN");
 
            int modifiers =checkSNMethod.getModifiers();
 
            if (Modifier.isNative(modifiers)) {
                System.out.println("checkSN 是 native 方法");
                return true;
            } else {
                System.out.println("checkSN 是 Java 方法");
                return false;
            }
 
        } catch (NoSuchMethodException | SecurityException | ClassNotFoundException e) {
            e.printStackTrace();
        }
        return false;
    }

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 219
活跃值: (260)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
应该是 LSPosed 已经做了这个隐藏了吧
2025-3-17 19:06
0
雪    币: 2503
活跃值: (6531)
能力值: ( LV9,RANK:235 )
在线值:
发帖
回帖
粉丝
3

lsposed会清除kAccPreCompiled并设置kAccCompileDontBother函数,可以这样检查方法的标志位







并且会修改ArtMethod结构体里的entry_point字段,可以检查entry_point字段指向的函数地址是否符合trampoline的特征即可




最显然的特征还是检查进程内是否存在rwxp属性的匿名内存即可,因为lsplant分配trampoline的内存时是这样的

2025-5-11 20:42
3
雪    币: 130
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
天水姜伯约 lsposed会清除kAccPreCompiled并设置kAccCompileDontBother函数,可以这样检查方法的标志位并且会修改ArtMethod结构体里的entry_point字段,可以检 ...
能写个检测的demo 嘛大佬
2025-5-15 00:27
0
游客
登录 | 注册 方可回帖
返回