Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
like-dbg — 完全容器化的 Linux 内核调试环境,适用于 Linux 和 MacOS | Kitploit
工具/GitHubGitHub/0xricksanchez/like-dbg
漏洞利用调试器模糊测试CTF二进制利用
GitHub0xricksanchez/like-dbg

like-dbg

完全容器化的 Linux 内核调试环境,适用于 Linux 和 MacOS

查看仓库
77057226天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

LIKE-DBG

LIKE-DBG

License: MIT Python: 3.12+ Linting: ruff Types: mypy

LIKE-DBG(LInux-KErnel-DeBuGger)是一个完全容器化的 Linux 内核调试与漏洞利用实验环境。它会构建或采用一个内核和根文件系统,在 QEMU 下启动它们,并将你带入一个交互式 GDB 会话(pwndbg 或 GEF),把所有组件接入同一个 tmux 窗口。

其目的在于省去繁琐的准备工作,让你的时间花在内核本身,而不是搭建环境上。每一步都在 Docker 内运行,因此你在宿主机上只需安装 Docker、tmux、Python 和 uv。选择一个内核版本(或交给它一个 CTF 挑战),运行一条命令,即可带着完整符号停在 start_kernel。

功能

一条命令即可解析你的配置、构建或复用内核与 rootfs、启动客户机,并附加调试器:

uv run ./start_kgdb

整个流程是一个你始终身处其中的循环:构建或采用一个内核与 rootfs,在 QEMU(被调试端)下启动它,附加 GDB(调试器),然后编辑、投递、运行、触发崩溃、定位根因,再重复。

获取内核有两种方式:

  • 自行构建。 选择一个版本、一个调试配置和一个编译器;LIKE-DBG 会下载、配置并构建一次,然后将其缓存。这是内核研究与漏洞利用开发的日常主力方式。参见 docs/build-your-own-kernel.md。
  • 引入 CTF 或外部内核。 将某个挑战的 bzImage/Image(以及你手头有的 vmlinux 和 initramfs)交给它,它会在 GDB 下原样启动该内核。参见 docs/ctf-foreign-kernel.md。

亮点

  • 可在 macOS 和 Linux 上运行,自动检测宿主环境。 Apple Silicon 通过原生 HVF 加速启动 arm64 客户机;Mac 上的 x86_64 以及没有 KVM 的 Linux 会回退到容器内 TCG;有 KVM 的 Linux 则使用 KVM。存储、加速和网络按宿主环境选择,并按每次运行记录。
  • 架构:x86_64 和 arm64。
  • 带调试配置的 TOML 配置。 分层 TOML 栈(项目默认值、个人本地覆盖、命名场景、CLI)加上命名配置(exploit-dev、hardened、kasan、ubsan、lockdep 等),这些配置会解析为内核配置片段和运行时默认值。构建后的 .config 校验可发现未生效的配置。请注意,exploit-dev(默认配置)只会关闭 KASLR;除非你切换配置或自行切换,否则 SMEP、SMAP 和 KPTI 仍保持开启(参见 docs/configuration.md)。
  • 现代调试器。 内核运行默认使用 pwndbg,以获得其内核命令集(KASLR 基址、slab、current、任务与模块遍历、符号查找);GEF 只需一行切换。
  • 漏洞利用开发内循环。 --run 和 --upload 通过 9p 共享或 SSH 将漏洞利用投递到运行中的客户机。单个无标志的 .c 文件会自动以 static-musl 编译为目标架构;其他内容则按原样投递。参见 exploit/README.md。
  • 自定义模块。 针对运行中的内核构建树外模块,并通过 --insmod 和 --rmmod 按命令加载它们;其符号会自动加载到 GDB 中。参见 modules/README.md。
  • 崩溃情报。 字节精确的串口控制台接收器、panic/oops/KASAN/UBSAN 解析器,以及一个自动断点,可在故障点捕获 GDB 并给出符号化回溯。--analyze-crash 可离线重新生成报告。
  • 并发会话。 每次启动都会获得一个以其调试对象命名的独立 tmux 会话、独立的宿主端口和独立的写时复制 rootfs 覆盖层,因此可以并排调试两个挑战,并且 --run/--insmod 始终会落到你输入命令所在窗格对应的客户机中。
  • 运行产物。 每个会话都会写入一个带时间戳的 artifacts/runs/<id>/,其中包含解析后的设置、宿主配置、命令记录、日志和窗格记录。

要求

  • Docker
  • tmux
  • Python 3.12 或更新版本
  • uv

以 docker 组中的非 root 用户运行。交叉编译和 initramfs 工作都在容器内完成(使用 zig cc musl 工具链),因此无需宿主交叉工具链。

快速开始

# 1. Install dependencies
uv sync

# 2. Start the project tmux server (loads the shipped .tmux.conf)
tmux -L likedbg -f .tmux.conf new -s LIKE-DBG

# 3. Inside that tmux session: build-or-reuse a kernel, boot it, attach the debugger
uv run ./start_kgdb

首次运行会构建容器镜像和一个内核,因此需要一些时间;后续运行会复用缓存,几秒内即可启动。

每次启动都会根据正在调试的对象来命名其会话(LIKE-DBG-pawnyable-lk01、LIKE-DBG-6_6_30-exploit-dev),因此你遗留运行的会话永远不会阻塞下一个会话,并且可以同时调试两个挑战。使用 C-b d 分离;tmux -L likedbg ls 显示正在运行的内容,下面的 = 是 tmux 的精确匹配形式(没有它,-2 会话可能会胜出):

tmux -L likedbg attach -t =LIKE-DBG-6_6_30-exploit-dev

从这里开始,请阅读 docs/build-your-own-kernel.md 了解完整工作流程,或者如果你有需要调试的挑战,请阅读 docs/ctf-foreign-kernel.md。如需针对捆绑的易受攻击驱动对整个循环进行动手实践,请按照 LK01 演练操作。

文档

文档涵盖内容
docs/walkthrough-lk01.md从这里开始:针对捆绑的易受攻击驱动进行引导式端到端示例,从构建到释放后使用再到崩溃报告。
docs/build-your-own-kernel.md从源码构建内核、启动它,然后调试并迭代。
docs/ctf-foreign-kernel.md采用提供的 CTF 或外部内核,并向其投递漏洞利用。
docs/configuration.mdTOML 配置栈、调试配置文件以及每一个可调项。
exploit/README.md漏洞利用开发循环:自动编译边界与逃生通道。
modules/README.md树外自定义模块与 GDB 符号自动加载。

modules/lk01/ 附带一个小型、故意易受攻击的训练驱动以及一个崩溃 PoC,已接入完整的构建、加载和漏洞利用循环,作为完整示例。

展示

一个 LIKE-DBG 会话:反汇编与源码视图、线程列表以及符号化回溯

贡献

Python 代码位于 src/likedbg/,旨在保持可读性。just test 运行测试套件,just lint 运行 ruff 和 mypy,just build-images 在 Dockerfile 或内置脚本更改后重新构建容器镜像。欢迎通过问题跟踪器和讨论页面提交错误报告、功能请求和 PR。

许可证

MIT。参见 LICENSE。

下载工具