bmax121/KernelPatch
GitHub: bmax121/KernelPatch
KernelPatch 是一个无需源码和符号信息、仅凭 stripped Linux 内核镜像即可实现内核 patch 和 hook 的底层框架。
Stars: 1455 | Forks: 359
# KernelPatch
**仅需被 strip 过的 Linux 内核镜像即可对 Linux 内核进行 patch 和 hook。**
```
_ __ _ ____ _ _
| |/ /___ _ __ _ __ ___| | _ \ __ _| |_ ___| |__
| ' // _ \ '__| '_ \ / _ \ | |_) / _` | __/ __| '_ \
| . \ __/ | | | | | __/ | __/ (_| | || (__| | | |
|_|\_\___|_| |_| |_|\___|_|_| \__,_|\__\___|_| |_|
```
- 无需源码和符号信息即可获取所有符号信息。
- 向内核注入任意代码。(静态 patch 内核镜像或运行时动态加载)。
- 提供内核函数 inline hook 和 syscall table hook。
- 针对 Android 的额外 SU。
如果您使用的是 Android,[APatch](https://github.com/bmax121/APatch) 会是更好的选择。
## 要求
CONFIG_KALLSYMS=y
## 支持版本
目前仅支持 arm64 架构。
Linux 3.18 - 6.6(理论上)
## 更多信息
[文档](./doc/)
## 致谢
- [vmlinux-to-elf](https://github.com/marin-m/vmlinux-to-elf):解析内核符号的部分思路。
- [android-inline-hook](https://github.com/bytedance/android-inline-hook):修复 arm64 inline hook 指令的部分代码。
- [tlsf](https://github.com/mattconte/tlsf):用于 KPM 的内存分配器。(需要另一个分配器来分配 ROX 内存。)
## 许可证
KernelPatch 采用 **GNU General Public License (GPL) 2.0** () 授权。
标签:arm64, Linux内核, 云资产清单, 内核Hook, 内核补丁, 安全渗透, 安卓, 客户端加密, 逆向工程