``` ├── kernel │ ├── backdoor.c //后门程序,用于监听特定的网络数据包,并根据数据包的内容执行指定的命令 │ ├── dir.c //判断文件夹是否隐藏 │ ├── encrypt │ │ └── encrypt.c //使用给定的十六进制密钥对文件内容进行加密 │ ├── file.c //判断文件是否隐藏 │ ├── include //函数声明、定义、引用的头文件 │ │ ├── backdoor.h │ │ ├── config.h │ │ ├── dir.h │ │ ├── encrypt.h │ │ ├── file.h │ │ ├── module.h │ │ ├── network.h │ │ ├── proc.h │ │ ├── string_helpers.h │ │ └── util.h //基本的功能实现,例如加密、命令执行和权限提升 │ ├── Kbuild │ ├── khook //替换掉需要钩掉的函数的前几个字节,替换成一个跳转指令,让X开始执行的时候跳转到框架自定义的STUB代码部分,STUB再调用用户自定义的钩子函数。然后又会执行原先被跳转指令覆盖的指令,最后回到被钩掉的函数的正常执行逻辑 │ │ ├── engine.c //内核级别的挂钩(hook)机制,主要用于在Linux内核中动态修改函数行为 │ │ ├── engine.h │ │ ├── engine.lds │ │ ├── internal.h │ │ └── x86 │ │ ├── hook.c //内核中实现x86架构下的函数钩子(hook) │ │ ├── Makefile │ │ ├── README.md │ │ ├── stub32.inc //32位汇编代码的定义或宏 │ │ ├── stub.inc //汇编代码的定义或宏 │ │ └── stub.S //x86架构上实现函数调用的拦截和转发 汇编代码 │ ├── kmatryoshka │ │ ├── Kbuild │ │ └── kmatryoshka.c //内核模块的初始化 │ ├── loader │ │ └── loader.c ////加载所需模块 │ ├── main.c │ ├── module.c //内核模块隐藏 │ ├── network.c //网络地址隐藏 │ ├── proc.c //进程隐藏 │ ├── string_helpers.c //获取命令行参数,转为可打印的字符 │ └── util.c //访问和操作进程的命令行参数 ```