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

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

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

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

工具目录

分类

查看所有分类
Loading categories
sharem — SHAREM是一个shellcode分析框架,能够模拟超过45,000个WinAPI和几乎所有Windows系统调用。它还包含自己的自定义反汇编器,具有许多创新功能,例如能够显示编码shellcode的去混淆反汇编,或集成仿真数据以增强反汇编。 | Kitploit
工具/GitHubGitHub/bw3ll/sharem
动态分析 (沙盒)逆向工程Shellcode调试器模糊测试恶意软件分析二进制分析AI 安全
GitHubbw3ll/sharem

sharem

SHAREM是一个shellcode分析框架,能够模拟超过45,000个WinAPI和几乎所有Windows系统调用。它还包含自己的自定义反汇编器,具有许多创新功能,例如能够显示编码shellcode的去混淆反汇编,或集成仿真数据以增强反汇编。

查看仓库
491685个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

SHAREM

欢迎使用 SHAREM!

SHAREM 在 DEFCON 31 的“Game-Changing Advances in Windows Shellcode Analysis”以及 Black Hat USA Arsenal 上进行了展示。Trellix 的 Max Kersten 提供了一个配套的 Ghidra 插件(单独发布)。因此,如果你愿意,可以将 SHAREM 的强大功能扩展到 Ghidra。

SHAREM 旨在成为终极的 Windows shellcode 工具,支持模拟超过 45,000 个 WinAPI、几乎所有用户模式 Windows 系统调用,并提供了许多新功能。SHAREM 包含一个模拟器、一个反汇编器、永恒调试、暴力去混淆以及许多其他功能。SHAREM 的模拟器还可以显示完整结构体(甚至是结构体中的结构体),并允许编码的 shellcode 自行去混淆。SHAREM 会记录所有分析的 WinAPI 和 Windows 系统调用的输出,并将其分为多个类别和子类别。SHAREM 的完整代码覆盖还能发现无法到达的功能。

SHAREM 的反汇编器能够将发现的函数集成到反汇编中,并在反汇编器中为每个函数标注名称。SHAREM 还会在反汇编器中显示编码 shellcode 的解密形式,因此无需调试 shellcode。

我们创建了一个 SHAREM Wiki,提供了一些关于 SHAREM 使用的指导信息,但目前还有大量内容和功能未记录。SHAREM 由多人共同开发了两年。SHAREM 的反汇编器比主流反汇编器要精确得多。此外,SHAREM 可以将模拟数据集成到反汇编器中,从而获得几乎完美的反汇编结果。

请注意,由于 SHAREM 刚刚发布,这里的文档有点简略。我们将在未来几周内更新 GitHub,提供更多信息。

如果你刚接触 SHAREM,可以观看一个简短的演示视频,展示其部分功能。点击图片观看演示: 观看视频

近期更新

2026 年 3 月:SHAREM 启动时会加载多达 61 个 DLL,但在最新更新中,它现在可以支持 369 个 DLL 和 45538 个独特的 WinAPI。此外,DLL 会在需要时按需加载。Windows 内部特性(如模块列表、flinks、blinks 等)在需要加载额外 DLL(例如通过 LoadLibraryA)时会自动更新。还进行了许多其他更新以改进功能。针对一些用户报告的安装问题进行了优化。

2026 年 3 月 22 日:跳出循环的逻辑经过完善,更加细致。其中大部分内容已被重写并重新测试。我们不建议一般用户更改 config.cfg 中的默认设置,如果你决定使用此功能。

2024/2025:SHAREM 可以选择利用 AI 分析结果,需要用户提供 OpenAI 密钥。请注意,SHAREM 是在近期 AI 进步之前开发的,它仅在 SHAREM 初始分析完成后才使用 AI。这个可选功能可以检查已发现的内容,并将其应用于 MITRE ATT&CK 框架等。

安装说明

Windows

SHAREM 作为本地 Python 包安装,以便我们在其他项目中访问它。这样允许导入 SHAREM 的部分功能。因此,它必须作为包安装。注意:我听说有报告称安装遇到一些问题。最近的更改应该可以解决这个问题。

  1. 安装 sharem 需要 Git。 可以从 https://git-scm.com/download/win 安装。安装后重启计算机,然后继续安装 SHAREM。Git 用于自动化安装 Windows SSDeep。你也可以手动完成此操作,并修改 .bat 文件以排除 SSDeep(如果你自己安装)。手动安装避免了使用 Git 的需要。注意:对于 Windows,我们正在迁移到 Bw3ll 账户上的 SSDeep 分支,该分支修正了先前版本的一些安装问题。这个版本和之前的版本都是 SSDeep 的包装器。

  2. 运行 .bat 文件。它会调用 setup.py 文件。根据你调用 Python 的方式,你可能需要调用备用的 .bat 文件,或者如果使用非标准方式,可能需要稍作修改。

  3. 执行 py -m pip list 或 python3 -m pip list 来验证 SHAREM 是否已作为本地包安装。它必须作为包安装才能工作。如果看不到它怎么办?那么它就没有作为包安装,SHAREM 将无法工作。确保你正在使用 .bat 文件,并且在 Windows 命令提示符下从 installers 目录运行。如果不起作用,请查找任何错误消息。如果有错误,请尝试纠正。你可能需要尝试几次。如果仍然不行,请提交 issue,并尽可能包含所有这些信息,以便我们找出问题所在。通常不需要这样,但偶尔可能需要。如果你曾经卸载过又决定重新安装,可能需要再次运行安装脚本。一旦在 py -m pip list 中看到 sharem 出现,你就知道它已正确安装为本地包。

安装 SHAREM 后,当你第一次运行 shellcode 时,你需要位于 sharem_cli 文件夹中。例如,在该目录中,你可以运行 py main.py -r32 shellcode.bin。没有 shellcode?没关系,你可以在单独的仓库中找到一些样本。

注意:在 Windows 上第一次尝试模拟 shellcode 时,它会尝试收获并膨胀 Windows DLL。此过程在首次尝试模拟 shellcode 时自动开始。它会复制 DLL,将复制(并随后膨胀)的 DLL 移动到 SHAREM 目录。还有其他步骤,但整个初始过程可能需要几分钟,甚至 10-15 分钟(如果 CPU 很旧)。完成后,你无需再次执行此操作。对于 32 位和 64 位 shellcode,必须分别执行此操作。你可以导航到 sharem/sharem/sharem/sharem/DLLs/x86 - 你应该会看到 DLL 慢慢出现。这些 DLL 从操作系统中取出,经过修改以模拟操作系统可能对它们执行的操作,并保存到此目录。会有大约 60 多个。如果你看到大约这个数量的 DLL,并且没有更多 DLL 被保存,则可能只是卡住了。只需再次按回车键。如果失败,只需重新启动并再次尝试模拟。一旦 DLL 保存完毕,你无需再次执行此操作;只有第一次可能需要等待,具体取决于 CPU 速度。完成后,你会看到模拟结果,例如列出的不同 WinAPI 或 Windows 系统调用。

如果文件以 .txt 结尾,它将假定 shellcode 是十六进制的 ASCII 表示(而不是纯十六进制),并据此解释。这适用于在网上找到的内容。使用 ASCII 表示的十六进制时,文件名必须以 .txt 结尾。

Linux

  1. chmod +x linux_installer.sh 启用安装程序的执行权限
  2. sudo ./linux_installer.sh 执行安装程序
  3. 添加 DLL 文件

你需要添加 Windows DLL 文件。我们目前还没有为 Linux 用户单独提供这些文件下载。目前,用户需要先在 Windows 上安装并收获它们。(注意:这些 DLL 必须由 SHAREM 膨胀。未膨胀的 DLL 无法使用。大多数(尽管可能不是全部)如果未适当膨胀将会失败。)稍后我们可能在几周内提供单独下载。但与此同时,用户可以按照 Windows 步骤生成它们并将其移动到 Linux,放置在 sharem\sharem\sharem\DLLs\x64 和 sharem\sharem\sharem\DLLs\x86 中。你还需要 foundDLLAddresses32.json 和 FoundDLLAddresses64.json,它们应放在 sharem\sharem\sharem 中。

OpenAI

SHAREM 在 2024 年增加了对 OpenAI 的支持,因此我们可以利用 AI 自动化一些分析任务。这可以通过主菜单中的 A 键激活——“利用 AI”。为此,你必须拥有 OpenAI 密钥,并将其放入 config.cfg 文件中,该文件位于 sharem/sharem/sharem/sharem/config.cfg。此外,在允许你利用 AI 之前,你必须先模拟一个 shellcode。目前这是使用 AI 的唯一方式——它不支持无头模式——但如果有人有这种需求,请提交 issue,我将为此添加支持,作为可以通过配置选择的另一个选项。如果你已经安装了 SHAREM 并获取了更新版本,你可能只想手动安装 OpenAI,例如 pip install openai。我已将其添加到 setup.py 文件的 requirements 中,该文件在运行初始安装脚本时被激活。

Ghidra 脚本

Max Kersten 的优秀 Ghidra 脚本(如 2023 年 8 月在 Black Hat 和 DEFCON 上展示)可在此处找到:https://github.com/advanced-threat-research/GhidraScripts/blob/main/Sharem.java Max 的一些说明在此处:https://github.com/advanced-threat-research/GhidraScripts/ 这个 Ghidra 插件由 Trellix 提供!你仍需要使用 SHAREM。该插件读取 SHAREM 生成的 JSON 输出,并将其转换为 Ghidra 可用的格式。更多关于 Max 本人的信息,请访问 https://maxkersten.nl/。

文档

文档可以在 SHAREM Wiki 找到,它提供了一些关于 SHAREM 使用的指导信息,尽管目前还有大量内容和功能未记录。

更新

  • 2022 年 9 月 29 日:我们对 setup.py 进行了非常小的更新,涉及 numpy,这可能影响部分使用最新版本 Python 的用户。
  • 2022 年 11 月 25 日:拖延已久,我们进行了一些更改以支持 ShellWasp 风格的系统调用。虽然我们之前已经实现了对系统调用的支持,但 ShellWasp 风格无法工作,仅支持硬编码的 SSN(系统调用号)。OSMajorVersion、OSMinorVersion 和 OSBuild 已针对 32 位和 64 位初始化。用户在配置或 UI 中设置的任何操作系统版本现在都会在内部反映——例如,选择 Windows 10 20H2 将填充正确的值,从而使 ShellWasp 技术能够工作,如这个示例输出所示。目前仅支持 Windows 7、10 和 11 的 ShellWasp 技术仿真。
  • 2022 年 11 月 29 日:添加了对新 OSBuild(Windows 10 和 11 的 22H2)的仿真支持。这仅与模拟 Windows 系统调用相关。许多次要错误修复和生活质量改进。更好地区分了 SHAREM 用于 shellcode(其主要焦点)和用于分析 PE 文件时的功能。
  • 2022 年 12 月 1 日:更改了 bins/ASCII 输出的默认文件位置,移至 logs。添加了使用此命令输出去混淆的 bins/ASCII 的功能。去混淆后的 ASCII 已添加到 logs 中——之前似乎 logs 中也缺少 bin 的 ASCII——现已修正。
  • 2022 年 12 月 29 日:我添加了一项 可选的堆栈永恒调试 功能。以前,永恒调试只捕获执行的指令和寄存器值(前后)。现在我们可以看到 ESP 的 0xA0 范围内。不幸的是,它有点慢。这需要单独启用。此外,我发现了一些错误,这些错误导致了跳出循环的错误结果,在某些情况下可能导致模拟过早终止。我已修正了这个问题。我现在还让 SHAREM 在跳出循环时输出,指示它跳转到哪里。
  • 2023 年 1 月 4 日:我对完整代码覆盖进行了大幅改进,增强了其性能。我还公开了几个可选功能,专家用户可以根据具体情况通过 UI 或配置文件进行调整。更多信息请参见完整代码覆盖 wiki 页面。
  • 2023 年 1 月 5 日:在模拟器菜单中添加了完整代码覆盖子菜单的快捷键。对于已经下载昨天更新的用户,快捷键是字母“o”。
  • 2023 年 1 月 16 日:为生成的反汇编 JSON 文件添加了三个新字段。此更新对于不使用这些 JSON 的用户(这是使用 SHAREM 的非标准方式)不是必需的。
  • 2023 年 8 月 3 日:从大约 30 个额外的 DLL 中添加了大约 5000-6000 个 API。其他增强功能用于支持这一点。
  • 2024/2025:SHAREM 可以选择利用 AI 分析结果,需要用户提供 OpenAI 密钥。请注意,SHAREM 是在近期 AI 进步之前开发的,它仅在 SHAREM 初始分析完成后才使用 AI。这个可选功能可以检查已发现的内容,并将其应用于 MITRE ATT&CK 框架等。
  • 2026 年 3 月:SHAREM 启动时会加载多达 61 个 DLL,但在最新更新中,它现在可以支持 369 个 DLL 和 45538 个独特的 WinAPI。还进行了许多其他更新以改进功能。针对一些用户报告的安装问题进行了优化。
  • 2026 年 3 月 22 日:跳出循环的逻辑经过完善,更加细致。

截图

SHAREM 是一个非常强大的框架,具有众多功能,有些有详细记录,有些则没有。本部分将展示其中一小部分功能。

SHAREM 可以接受编码的 shellcode 并通过仿真去混淆。它不仅捕获所有 WinAPI 或系统调用信息,而且如果你选择在反汇编器中查看,它还会显示 shellcode 的解码形式:

image

SHAREM 不仅可以枚举 12,000 多个 WinAPI 函数,还可以对几乎所有用户模式 Windows 系统调用进行枚举。此外,对于某些函数,它会显示结构体信息。对于处理注册表的函数,它会提取注册表信息并将其添加到我们的注册表管理器中:

image

SHAREM 还具有通过 UrlDownloadToFileA 下载文件(如果存在)的能力。这些文件会下载到模拟器的内存中,而不是保存到磁盘。如果成功,它将捕获哈希。还有一个有限的伪文件系统,因此你可以看到关联,例如一个文件被下载为某物然后重命名为其他名称。如果所需的下载不可用,则只会模拟为成功下载。实时下载是一个可以在配置中启用或禁用的选项:

image

合著者和贡献者

Dr. Bramwell Brizendine, Austin Babcock, Jake Hince, Shelby VandenHoek, Sascha Walker, Evan Read, Dylan Park, Kade Brost, James Tate Forcella, William Lochte, Hunter Murphy, 和 Tarek Abdelmotaleb。

致谢

本研究及部分合著者得到了 NSA 基金 H98230-20-1-0326 的支持。

下载工具