Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
qiling — 一个真正的可插桩二进制仿真框架 | Kitploit
工具/GitHubGitHub/qilingframework/qiling
渗透测试框架动态分析 (沙盒)漏洞利用逆向工程调试器模糊测试恶意软件分析二进制分析学习与教育固件分析固件分析 分类第 19 名
6.1k79671天前Kitploit 审核通过
GitHubqilingframework/qiling

qiling

一个真正的可插桩二进制仿真框架

查看仓库网站

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Documentation Status Downloads Chat on Telegram


Qiling 的使用案例、博客及相关工作

Qiling 是一个高级二进制模拟框架,具有以下特性:

  • 模拟多平台:Windows、macOS、Linux、Android、BSD、UEFI、DOS、MBR。
  • 模拟多架构:8086、X86、X86_64、ARM、ARM64、MIPS、RISC-V、PowerPC。
  • 支持多种文件格式:PE、Mach-O、ELF、COM、MBR。
  • 通过 Demigod 支持 Windows 驱动 (.sys)、Linux 内核模块 (.ko) 及 macOS 内核 (.kext)。
  • 在隔离环境中模拟并沙箱化代码。
  • 提供完全可配置的沙箱。
  • 提供深入的内存、寄存器、操作系统级别及文件系统级别 API。
  • 细粒度插桩:允许在各级别进行钩子(指令/基本块/内存访问/异常/系统调用/IO 等)。
  • 提供虚拟机级别 API,例如保存和恢复当前执行状态。
  • 支持跨架构和跨平台的调试能力。
  • 内置调试器,具备逆向调试功能。
  • 允许对正在运行的代码(包括已加载的库)进行动态热补丁。
  • 真正的 Python 框架,便于在此基础上构建自定义的安全分析工具。

Qiling 也已在多个国际会议上亮相。

2022 年:

  • Black Hat, 欧洲
  • Black Hat, MEA

2021 年:

  • Black Hat, 美国
  • Hack In The Box, 阿姆斯特丹
  • Black Hat, 亚洲
  • 2020 年:

    • Black Hat, 欧洲
    • Black Hat, 美国
    • Black Hat, 美国 (Demigod)
    • Black Hat, 亚洲
    • Hack In The Box, Lockdown 001
    • Hack In The Box, Lockdown 002
    • Hack In The Box, Cyberweek
    • Nullcon

    2019 年:

    • DEFCON, 美国
    • Hitcon
    • Zeronights

    Qiling 基于 Unicorn Engine。

    访问我们的 网站 获取更多信息。


    许可证

    本程序为自由软件;您可以依据自由软件基金会发布的 GNU 通用公共许可证(GPL)第二版或(根据您的选择)任何后续版本的条款重新分发和/或修改它。


    Qiling 与其他模拟器对比

    有许多开源模拟器,但与 Qiling 最接近的两个项目是 Unicorn 和 QEMU user mode。 本节将说明 Qiling 相对于它们的主要差异。

    Qiling vs. Unicorn 引擎

    Qiling 构建于 Unicorn 之上,但两者本质不同。

    • Unicorn 仅是一个 CPU 模拟器,专注于模拟 CPU 指令,并能理解模拟器的内存。除此之外,Unicorn 不了解更高级别的概念,例如动态库、系统调用、I/O 处理或 PE、Mach-O、ELF 等可执行格式。因此,Unicorn 只能模拟原始机器指令,而缺乏操作系统上下文。
    • Qiling 被设计为更高级的框架,它利用 Unicorn 模拟 CPU 指令,但能理解操作系统:它具有可执行格式加载器(目前支持 PE、Mach-O 和 ELF)、动态链接器(因此可以加载和重定位共享库)、系统调用和 I/O 处理程序。因此,Qiling 可以在不依赖原生操作系统的情况下运行可执行二进制文件。
    Qiling vs. QEMU user mode

    QEMU user mode 与我们的模拟器所做的工作类似,即以跨架构的方式模拟整个可执行二进制文件。 然而,Qiling 在以下几个方面与 QEMU user mode 有显著差异:

    • Qiling 是一个真正的分析框架,允许您在此基础上构建自己的动态分析工具(使用 Python)。而 QEMU 仅是一个工具,而非框架。
    • Qiling 可以执行动态插桩,甚至可以在运行时对代码进行热补丁。QEMU 两者都不支持。
    • Qiling 不仅支持跨架构,还支持跨平台。例如,您可以在 Windows 上运行 Linux ELF 文件。相比之下,QEMU user mode 只能运行相同操作系统的二进制文件,例如 Linux 上的 Linux ELF,这是因为其将模拟代码的系统调用转发到原生操作系统的方式。
    • Qiling 支持更多平台,包括 Windows、macOS、Linux 和 BSD。QEMU user mode 只能处理 Linux 和 BSD。

    安装

    请参阅 setup guide 文件了解如何安装 Qiling Framework。


    示例

    下面的示例演示了如何以最直接的方式使用 Qiling 框架模拟 Windows 可执行文件。

    root@kitploit:~
    from qiling import Qiling
    
    if __name__ == "__main__":
        # 初始化 Qiling 实例,指定要模拟的可执行文件及模拟系统根目录。
        # 注意:当前工作目录假定为 Qiling 主目录
        ql = Qiling([r'examples/rootfs/x86_windows/bin/x86_hello.exe'], r'examples/rootfs/x86_windows')
    
        # 开始模拟
        ql.run()
    
    • 以下示例展示了如何动态修补一个 Windows crackme,使其始终显示“Congratulation”对话框。
    root@kitploit:~
    from qiling import Qiling
    
    def force_call_dialog_func(ql: Qiling):
        # 从当前栈帧获取 DialogFunc 地址
        lpDialogFunc = ql.stack_read(-8)
    
        # 为 DialogFunc 设置栈内存
        ql.stack_push(0)
        ql.stack_push(1001)     # IDS_APPNAME
        ql.stack_push(0x111)    # WM_COMMAND
        ql.stack_push(0)
    
        # 压入返回地址
        ql.stack_push(0x0401018)
    
        # 从 DialogFunc 地址恢复模拟
        ql.arch.regs.eip = lpDialogFunc
    
    
    if __name__ == "__main__":
        # 初始化 Qiling 实例
        ql = Qiling([r'rootfs/x86_windows/bin/Easy_CrackMe.exe'], r'rootfs/x86_windows')
    
        # NOP 掉一些代码
        ql.patch(0x004010B5, b'\x90\x90')
        ql.patch(0x004010CD, b'\x90\x90')
        ql.patch(0x0040110B, b'\x90\x90')
        ql.patch(0x00401112, b'\x90\x90')
    
        # 在某个地址处钩子,设置回调函数
        ql.hook_address(force_call_dialog_func, 0x00401016)
        ql.run()
    

    以下 YouTube 视频展示了上述示例的工作原理。

    在 Ubuntu x64 主机上模拟 ARM 路由器固件

    Qiling Framework 在 x86_64 Ubuntu 主机上热修补并模拟了一个 ARM 路由器的 /usr/bin/httpd。

    Qiling Tutorial: Emulating and Fuzz ARM router firmware

    Qiling 的 IDA Pro 插件:插桩并解密 Mirai 的秘密

    该视频演示了 Qiling 的 IDA Pro 插件如何使 IDA Pro 与 Qiling 插桩引擎一起运行。

    Qiling's IDA Pro Plugin: Instrument and Decrypt Mirai's Secret

    与 IDA Pro 配合使用的 GDB 服务器演示

    使用 Qiling Framework 和 IDA Pro 解决一个简单的 CTF 挑战

    Solving a simple CTF challenge with Qiling Framework and IDA Pro

    模拟 MBR

    Qiling Framework 模拟 MBR

    Qiling DEMO: Emulating MBR


    Qltool

    Qiling 还提供了一个便捷的工具 qltool,用于快速模拟 shellcode 和可执行二进制文件。

    使用 qltool,可以轻松执行:

    使用 shellcode:

    root@kitploit:~
    $ ./qltool code --os linux --arch arm --format hex -f examples/shellcodes/linarm32_tcp_reverse_shell.hex
    

    使用二进制文件:

    root@kitploit:~
    $ ./qltool run -f examples/rootfs/x8664_linux/bin/x8664_hello --rootfs  examples/rootfs/x8664_linux/
    

    启用 GDB 调试器与二进制文件:

    root@kitploit:~
    $ ./qltool run -f examples/rootfs/x8664_linux/bin/x8664_hello --gdb 127.0.0.1:9999 --rootfs examples/rootfs/x8664_linux
    

    收集代码覆盖率(目前仅支持 UEFI):

    root@kitploit:~
    $ ./qltool run -f examples/rootfs/x8664_efi/bin/TcgPlatformSetupPolicy --rootfs examples/rootfs/x8664_efi --coverage-format drcov --coverage-file TcgPlatformSetupPolicy.cov
    

    输出 JSON 格式(主要针对 Windows):

    root@kitploit:~
    $ ./qltool run -f examples/rootfs/x86_windows/bin/x86_hello.exe --rootfs  examples/rootfs/x86_windows/ --console False --json
    

    联系方式

    从我们的网站 https://www.qiling.io 获取最新信息。

    通过电子邮件 [email protected] 联系我们, 或通过 Twitter @qiling_io。


    核心开发者、关键贡献者等

    请参阅 CREDITS.md。

    下载工具