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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
sleigh — Ghidra SLEIGH 处理器规范库的 CMake 构建,为逆向工程工具提供独立的反汇编和 p-code 提升引擎。 | Kitploit
工具/GitHubGitHub/lifting-bits/sleigh
静态分析代码分析动态代码分析 (DAST)逆向工程脚本与自动化实用工具与框架二进制分析
GitHublifting-bits/sleigh

sleigh

Ghidra SLEIGH 处理器规范库的 CMake 构建,为逆向工程工具提供独立的反汇编和 p-code 提升引擎。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Sleigh 库

Sleigh 是一种用于描述通用微处理器指令集语义的语言,其细节足以支持对为这些架构编译的软件进行逆向工程。它是 Ghidra 逆向工程平台 的一部分,并支撑着该平台的两个主要组件:反汇编引擎和反编译引擎。

本仓库提供了一个基于 CMake 的 Sleigh 构建项目,使其能够作为独立库进行构建和打包,并可在 Ghidra 之外的项目中复用。

支持的平台

名称支持情况
Linux是
macOS是
Windows是

依赖项与先决条件

必需

名称版本需安装的 Linux 软件包需安装的 macOS Homebrew 软件包
(HEAD 构建) zlib近期版本zlib1g-devzlib
Git最新版git不适用
CMake3.18+cmakecmake

注意:此 CMake 项目在配置期间会从互联网拉取 Ghidra 源代码。更多详情请参阅 关于 Ghidra 源代码的说明部分。

可选

用于构建文档:

名称版本需安装的 Linux 软件包需安装的 macOS Homebrew 软件包
Doxygen最新版doxygendoxygen
GraphViz最新版graphvizgraphviz

构建并安装 Sleigh 库

# Clone this repository (CMake project for sleigh)
git clone https://github.com/lifting-bits/sleigh.git
cd sleigh

# Configure CMake
cmake -B build -S .

# Build Sleigh
cmake --build build --parallel 8

# Install Sleigh
cmake --install build --prefix ./install

关于 Ghidra 源代码的说明

Ghidra 源代码实际上并未包含在此 git 仓库中,默认情况下,CMake 会自动从互联网拉取一个稳定版本供你使用。

有关如何自定义使用/编译哪个 Ghidra 源代码提交(包括指定你自己的本地 Ghidra 源代码副本)的更多信息,请参阅 src/README.md。

打包

CMake 配置还支持为 Sleigh 构建软件包。

例如:

# Package Sleigh
cmake --build build --target package

API 用法

我们包含了一个名为 sleigh-lift 的示例程序,用于演示如何使用 Sleigh API。它接受一个十六进制字节字符串,可以对其进行反汇编或将其提升为 p-code。该程序可按如下方式调用,其中 action 参数必须为 disassemble 或 pcode:

sleigh-lift [action] [sla_file] [bytes] [-a address] [-p root_sla_dir] [-s pspec_file]

例如,要反汇编以下字节字符串:

$ sleigh-lift disassemble x86-64.sla 4881ecc00f0000
0x00000000: SUB RSP,0xfc0

并将其提升为 p-code:

$ sleigh-lift pcode x86-64.sla 4881ecc00f0000
(register,0x200,1) = INT_LESS (register,0x20,8) (const,0xfc0,8)
(register,0x20b,1) = INT_SBORROW (register,0x20,8) (const,0xfc0,8)
(register,0x20,8) = INT_SUB (register,0x20,8) (const,0xfc0,8)
(register,0x207,1) = INT_SLESS (register,0x20,8) (const,0x0,8)
(register,0x206,1) = INT_EQUAL (register,0x20,8) (const,0x0,8)
(unique,0x12c00,8) = INT_AND (register,0x20,8) (const,0xff,8)
(unique,0x12c80,1) = POPCOUNT (unique,0x12c00,8)
(unique,0x12d00,1) = INT_AND (unique,0x12c80,1) (const,0x1,1)
(register,0x202,1) = INT_EQUAL (unique,0x12d00,1) (const,0x0,1)

如果你不想构建 sleigh-lift,你必须在 CMake 配置期间将 CMake 变量 sleigh_BUILD_EXTRATOOLS 选项设置为 OFF。

辅助工具

本仓库包含一个不属于 Sleigh/Ghidra 的辅助工具,你可以在 support 目录中找到它。它具有以下签名,可以帮助用户在系统中查找给定 spec 文件的位置:

std::optional<std::filesystem::path>
FindSpecFile(std::string_view file_name,
             const std::vector<std::filesystem::path> &search_paths =
                 gDefaultSearchPaths);

sleigh::FindSpecFile 函数将在用户通过 search_paths 参数提供的路径中搜索名为 file_name 的 spec 文件。search_paths 的默认参数为 sleigh::gDefaultSearchPaths,其中包含 CMake 配置期间生成的安装/构建目录以及一组常见的安装位置。

如果你不想构建这些辅助工具,你必须在 CMake 配置期间将 CMake 变量 sleigh_BUILD_SUPPORT 选项设置为 OFF。

作为依赖项集成

Sleigh 的安装提供了一套 CMake 接口,你可以在构建项目时使用。

你可以在 find_package 示例中找到如何使用 CMake 包配置文件的一个示例。

我们还提供了一个 CMake 辅助函数 sleigh_compile,用于使用 sleigh 编译器编译你的 .slaspec 文件。

你可以在 example 目录中找到一个更复杂的、包含编译 Sleigh 规范的 CMake 示例,该示例使用了上游提供的 sleigh 示例源代码。

最后,你可以通过 CMake 变量 sleigh_INSTALL_SPECDIR 定位已安装的编译后的 sleigh 文件,该变量是编译后的 sleigh 文件根目录的绝对路径——你应该手动检查它以了解预期内容。

还建议参考 CMake 配置文件 和 specfiles CMake 文件,以了解更多关于所暴露的 CMake 变量和模块的信息。

许可证

请参阅 LICENSE 文件。

下载工具