首页
社区
课程
招聘
[分享] Apatch内核模块分享(环境隐藏)
发表于: 2025-8-14 21:23 9462

[分享] Apatch内核模块分享(环境隐藏)

2025-8-14 21:23
9462

项目地址:mem_crc

温馨提示:不要将此模块嵌入内核哦~

再温馨提示,并不是刷了模块就能隐藏环境,如果只是为了找一件隐藏环境的模块可以跳过本文了

再再温馨提示,本人设备内核版本是6.1,模块只在5.1和6.1上测试过,其他版本若不适配,加载之后会死机自动重启,正常重启完就没事了,说明模块不适配你的内核

模块主要包含三个功能

一. 文件重定向,下一篇会讲额外的用处

二. 过滤/proc下的文件内容,包含mounts,mountinfo,mountstats,maps,smaps

三. 隐藏ptrace痕迹

正如提示中所说,这个模块可以用于隐藏环境,但也不是开袋即食的,需要你了解了检测点才能帮助你隐藏

第一个功能:IO重定向

使用方法:

其中uid是作用域,只对该uid所对应的app生效,src为原文件路径,dst为目标文件路径(如果uid是0,那就全局重定向)

第二个功能:内容过滤

使用方法:

keyword是你要过滤掉的关键词

第三个功能:隐藏ptrace痕迹

使用方法:

uid依旧代表作用域,只对该uid所对应的app生效

上述是此模块提供的一种通信方式,即通过字符设备通信,用于日常使用(但是也不是很方便,我在写ui了,应该开学前能写完qaq),但是/dev下的文件通常对普通进程不可见,如果使用frida,xposed等工具注入app进程,我们是无法正常在目标进程里使用模块帮助我们处理一些痕迹的,所以模块还提供了一种额外的通信方式,使用者可以通过调用libc.sochar *getcwd(char *buf, size_t size)函数将命令写入,例如在frida中使用

示例:

示例:

示例:

正如模块介绍所言,初衷是为了绕过crc校验,然后写着写着就偏了一些。也没啥好展望的,ui已经在写了,现在用起来还是有点反人类,为了应对其他检测点,后续还会完善的(虽然是一坨但先端上来qwq),有什么难处理的检测点或者使用时遇到问题欢迎一起交流~ 过两天开源,mail: shuangxve@gmail.com

meizu21Pro:/ $ su
meizu21Pro:/ # echo "MAP:$uid:$src:$dst" > /dev/yuuki_misc
meizu21Pro:/ $ su
meizu21Pro:/ # echo "MAP:$uid:$src:$dst" > /dev/yuuki_misc
meizu21Pro:/ $ su
meizu21Pro:/ # echo "PATH:$keyword" > /dev/yuuki_misc
meizu21Pro:/ $ su
meizu21Pro:/ # echo "PATH:$keyword" > /dev/yuuki_misc
meizu21Pro:/ $ su
meizu21Pro:/ # echo "PTRACE:$uid" > /dev/yuuki_misc
meizu21Pro:/ $ su
meizu21Pro:/ # echo "PTRACE:$uid" > /dev/yuuki_misc
function callGetcwd(buf = '') {
    var getcwd = new NativeFunction(
        Module.getExportByName('libc.so', 'getcwd'),
        'pointer',
        ['pointer', 'int']
    );
    var buffer_size = 256;
    var buffer;
 
    if (buf !== '') {
        buffer = Memory.allocUtf8String(buf);
        buffer_size = buf.length + 1;
    } else {
        buffer = Memory.alloc(buffer_size);
    }
 
    try {
        getcwd(buffer, buffer_size);
    } catch (e) {
        console.log("[!] Error: " + e);
        return null;
    }
}
 
callGetcwd("CMD:STATUS")
function callGetcwd(buf = '') {
    var getcwd = new NativeFunction(
        Module.getExportByName('libc.so', 'getcwd'),
        'pointer',
        ['pointer', 'int']
    );
    var buffer_size = 256;
    var buffer;
 
    if (buf !== '') {
        buffer = Memory.allocUtf8String(buf);
        buffer_size = buf.length + 1;
    } else {
        buffer = Memory.alloc(buffer_size);
    }
 
    try {
        getcwd(buffer, buffer_size);
    } catch (e) {
        console.log("[!] Error: " + e);
        return null;
    }
}
 
callGetcwd("CMD:STATUS")
类型ID 类型名称 描述 数据格式
1 PATH_MAPPING 路径映射 MAP:uid:src_path:dst_path
2 SINGLE_PATH 单个路径(或关键词) PATH:path
3 PTRACE_UID PTRACE用户ID PTRACE:uid
命令 功能 使用示例 返回信息
CMD:STATUS 显示系统状态统计 CMD:STATUS 显示总条目数和各类型数据统计
CMD:HELP 显示帮助信息 CMD:HELP 显示所有可用命令和格式说明
命令 功能 使用示例 说明
CMD:DUMP 打印所有数据到dmesg CMD:DUMP 输出所有类型的所有数据
CMD:DUMP:TYPE:N 打印指定类型的数据 CMD:DUMP:TYPE:1
CMD:DUMP:TYPE:2
CMD:DUMP:TYPE:3
N为类型ID (1-3)
CMD:LIST:TYPE:N 列出指定类型条目及索引 CMD:LIST:TYPE:1
CMD:LIST:TYPE:2
CMD:LIST:TYPE:3
显示类型索引和全局索引的对应关系
命令 功能 使用示例 说明
CMD:CLEAR 清空所有数据 CMD:CLEAR 删除所有类型的所有数据
CMD:CLEAR:TYPE:N 清空指定类型数据 CMD:CLEAR:TYPE:1
CMD:CLEAR:TYPE:2
CMD:CLEAR:TYPE:3
N为类型ID (1-3)
命令 功能 使用示例 说明
CMD:REMOVE:INDEX:N 删除指定全局索引的条目 CMD:REMOVE:INDEX:5
CMD:REMOVE:INDEX:10
N为全局索引号
CMD:REMOVE:TYPE:type_id:type_index 删除指定类型的第N条 CMD:REMOVE:TYPE:1:0
CMD:REMOVE:TYPE:2:3
CMD:REMOVE:TYPE:3:1
删除type_id类型的第type_index条数据
MAP:uid:src_path:dst_path
MAP:uid:src_path:dst_path
MAP:1000:/data/app:/system/app
MAP:0:/sdcard:/mnt/sdcard
MAP:1001:/data/user/1001:/data/data
MAP:1000:/data/app:/system/app
MAP:0:/sdcard:/mnt/sdcard
MAP:1001:/data/user/1001:/data/data
PATH:path
PATH:path
PATH:/system/bin/su
PATH:/data/local/tmp
PATH:/system/etc/hosts
PATH:/system/bin/su
PATH:/data/local/tmp
PATH:/system/etc/hosts
PTRACE:uid
PTRACE:uid
PTRACE:1000
PTRACE:0
PTRACE:2000

传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2025-9-19 11:52 被Yangser编辑 ,原因: 开源了,挂下项目地址
上传的附件:
收藏
免费 281
支持
分享
最新回复 (219)
雪    币: 260
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
q
2025-8-14 22:11
0
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2025-8-15 00:22
0
雪    币: 8210
活跃值: (4738)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
tql
2025-8-15 01:22
0
雪    币: 0
活跃值: (2439)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享
2025-8-15 09:35
0
雪    币: 25
活跃值: (2051)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
666
2025-8-15 10:15
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
666
2025-8-15 10:50
0
雪    币: 1495
活跃值: (3693)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
我累个豆
2025-8-15 11:55
0
雪    币: 104
活跃值: (7099)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
tql
2025-8-15 12:00
0
雪    币: 0
活跃值: (1104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
666
2025-8-15 12:06
0
雪    币: 4525
活跃值: (4518)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
感谢分享
2025-8-15 12:09
0
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
谢谢分享
2025-8-15 12:14
0
雪    币: 0
活跃值: (1623)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
谢谢分享
2025-8-15 15:37
0
雪    币: 11
活跃值: (720)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
谢谢分享
2025-8-15 15:44
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
你好
2025-8-15 17:45
0
雪    币: 1907
活跃值: (1489)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
16
mb_omdeihqm 你好
你也好
2025-8-15 18:34
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
1
2025-8-15 18:50
0
雪    币: 2632
活跃值: (7214)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
感谢分享
2025-8-15 19:56
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
1
2025-8-15 20:35
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
期待源码实现,如果是SVC 去检测文件呢
2025-8-15 23:04
0
雪    币: 97
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
66666
2025-8-15 23:13
0
雪    币: 2967
活跃值: (3185)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
感谢分享
2025-8-16 00:19
0
雪    币: 152
活跃值: (2015)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
23
66666
2025-8-16 01:42
0
雪    币: 1867
活跃值: (4518)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
24
666
2025-8-16 09:10
0
雪    币: 970
活跃值: (518)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
感谢分享
2025-8-16 14:31
0
游客
登录 | 注册 方可回帖
返回