欢迎使用 salt,一个用于逆向和学习内核堆内存管理的工具。它可用于开发漏洞利用、调试自己的内核代码,更重要的是,用于操作内核堆分配并学习其内部机制。
该工具有助于跟踪现代 Linux 内核中 SLUB 分配器的分配情况和当前状态。
它作为 gdb 插件编写,允许您跟踪和记录内存分配,并按进程名称或缓存过滤。该工具还可以转储活动缓存列表并打印相关信息。
该仓库还包含一个游乐场可加载内核模块,可以随心所欲地触发分配和释放,既可作为调试工具,也可作为学习工具,帮助更好地理解分配器的工作原理。
有关 SLUB 分配器内部机制、如何开始、插件的详细文档 以及 游乐场模块说明 的更多信息,请参阅 docs 文件夹。
以下是命令的完整列表:
> salt help
Possible commands:
filter -- manage filtering features by adding with one of the following arguments
enable -- enable filtering. Only information about filtered processes will be displayed
disable -- disable filtering. Information about all processes will be displayed.
status -- display current filtering parameters
add process/cache <arg>-- add one or more filtering conditions
remove process/cache <arg>-- remove one or more filtering conditions
set -- specify complex filtering rules. The supported syntax is "salt filter set (cache1 or cache2) and (process1 or process2)".
Some variations might be accepted. Checking with "salt filter status" is recommended. For simpler rules use "salt filter add".
record -- manage recording features by adding with one of the following arguments
on -- enable recording. Information about filtered processes will be added to the history
off -- disable recording.
show -- display the recorded history
clear -- delete the recorded history
trace <proc name> -- reset all filters and configure filtering for a specific process
walk -- navigate all active caches and print relevant information
walk_html -- navigate all active caches and generate relevant information in html format
walk_json -- navigate all active caches and generate relevant information in json format
help -- display this message
以下是 salt 的实际运行效果:

本项目是在 EURECOM 开发的,作为 2018 年春季的学期项目。
非常感谢我的导师 Yanick、Fabio、Emanuele、Dario、Marius,以及 S3 团队 的其他成员,感谢他们的帮助和支持。
作为项目的一部分,我还向 EURECOM 安全团队做了一个演示。幻灯片可在 此处 获取。
Perla E, Oldani M (2010) - A Guide to Kernel Exploitation: Attacking the Core