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

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

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

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

工具目录

分类

查看所有分类
Loading categories
goblin — 一个顽皮的跨平台二进制解析库,用 Rust 编写 | Kitploit
工具/GitHubGitHub/m4b/goblin
逆向工程模糊测试二进制分析
GitHubm4b/goblin

goblin

一个顽皮的跨平台二进制解析库,用 Rust 编写

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

libgoblin

Actions crates.io version

say the right words

文档

https://docs.rs/goblin/

变更日志

使用

Goblin 需要 rustc 1.85.0(Rust 2024 版本)。

在 Cargo.toml 中添加:

[dependencies]
goblin = "0.10"

特性

  • 超棒的 crate 名称
  • 零拷贝、跨平台、端序感知的 ELF64/32 实现——哇!
  • 零拷贝、跨平台、端序感知的 32/64 位 Mach-o 解析器——好家伙!
  • PE 32/64 位解析器——咚!
  • 支持 Unix 和 BSD 风格的存档解析器(后者感谢 [@willglynn])——万岁!
  • 多种 cfg 选项——让你头晕目眩,阅读源码时让你愤怒!
  • 经过模糊测试——“我很高兴地报告,goblin 经受住了 1 亿次模糊测试运行,种子 1~100 各 100 万次。”—— [@sanxiyn]
  • 测试

libgoblin 旨在成为你进行二进制解析、加载和分析的一站式解决方案。

使用场景

Goblin 主要支持以下重要使用场景:

  1. 核心、无 std 的 #[repr(C)] 结构体,编译时间极短,可自由选择 32/64 位(或两者)。

  2. 类型双关。在类型上定义一次函数,但使其同时适用于 32 位和 64 位变体——几乎无需修改,且无需宏!请参见 examples/automagic.rs 的基本示例。

  3. std 模式。通过 Pread 和 Pwrite 提供读取和写入实现,支持从文件读取、便捷分配、额外方法等。适用于能够分配内存并希望从磁盘读取二进制的用户。

  4. Endian_fd。一个糟糕的名字 😆 适用于像 panopticon 或 falcon 这样的二进制分析工具,它需要读取外部端序的二进制文件,或作为构建跨平台外部架构二进制工具的基础,例如 cargo-sym 和 bingrep 是简单的例子,但潜力无限。

以下是一些你可以使用此 crate 实现的功能(或帮助实现以便达成的):

  1. 编写编译器并使用它生成二进制文件(所有原始 C 结构体都派生自 Pwrite)。
  2. 编写一个加载、解析和分析各种二进制格式的二进制分析工具,例如 panopticon 或 falcon。
  3. 编写一个半功能动态链接器。
  4. 编写一个内核并使用 no_std 配置加载二进制文件。即,它基本上只是结构体和常量定义(如同 C 头文件)——无文件描述符、无输出、无 std。
  5. 编写一个 bin2json 工具,二进制格式为什么不可以是 JSON 呢?

编译配置

libgoblin 设计为高度可配置。当前的标志如下:

  • elf64 - 64 位 ELF 二进制文件,repr(C) 结构体定义
  • elf32 - 32 位 ELF 二进制文件,repr(C) 结构体定义
  • mach64 - 64 位 Mach-O repr(C) 结构体定义
  • mach32 - 32 位 Mach-O repr(C) 结构体定义
  • pe32 - 32 位 PE repr(C) 结构体定义
  • pe64 - 64 位 PE repr(C) 结构体定义
  • te - 简洁可执行文件(TE)repr(C) 结构体定义
  • archive - Unix 存档解析器
  • endian_fd - 根据二进制文件中的端序进行解析
  • std - 允许 no_std 环境

维护者

  1. PE: [@kkent030315]
  2. Elf: [@m4b],欢迎申请
  3. Mach-o: [@m4b],欢迎申请

维护者是特定后端的首要联系人审阅者。根据先前的贡献、活跃度、基础知识以及友善和蔼的性格选定 :D

目前,我([@m4b])对所有 PR 拥有合并权限。未来,给定后端的维护者很可能也将拥有合并权限。

最后,我仍可能对所有 PR 进行粗略审阅,但将主要/完全依赖该后端的维护者。

始终铭记比尔和泰德的智慧:“对彼此友善!”

贡献者

感谢大家 ❤️ !

按字典序排列:

  • [@000lbh]
  • [@2vg]
  • [@5225225]
  • [@alessandrod]
  • [@amanieu]
  • [@anfedotoff]
  • [@apalm]
  • [@baloo]
  • [@BinFlip]
  • [@burjui]
  • [@CalebFenton]
  • [@chf0x]
  • [@connorkuehl]
  • [@dancrossnyc]
  • [@DreydenGys]
  • [@dureuill]
  • [@Evian-Zhang]
  • [@ExPixel]
  • [@flanfly]
  • [@glandium]
  • [@glslang]
  • [@Gelbpunkt]
  • [@gunbux]
  • [@h33p]
  • [@hannahfluch]
  • [@Hexorg]
  • [@ibabushkin]
  • [@ideeockus]
  • [@ivlzme]
  • [@jackcmay]
  • [@jan-auer]
  • [@Javagedes]
  • [@jessehui]
  • [@jdub]
  • [@Jhynjhiruu]
  • [@johannst]
  • [@JohnScience]
  • [@joschock]
  • [@jrmuizel]
  • [@jsgf]
  • [@Jvlegod]
  • [@keith]
  • [@kjempelodott]
  • [@kkent030315]
  • [@ko1n]
  • [@le-jzr]
  • [@Lichtso]
  • [@lion128]
  • [@lissyx]
  • [@llogiq]
  • [@lumag]
  • [@lzutao]
  • [@lzybkr]
  • [@m-hilgendorf]
  • [@makubacki]
  • [@mmaekr]
  • [@m4b]
  • [@messense]
  • [@mitsuhiko]
  • [@mkroening]
  • [@mre]
  • [@Mrmaxmeier]
  • [n01e0]
  • [nathaniel-daniel]
  • [@nick96]
  • [@nico-abram]
  • [@npmccallum]
  • [@pchickey]
  • [@philipc]
  • [@PJB3005]
  • [@prettyroseslover]
  • [@Pzixel]
  • [@quake]
  • [@raindev]
  • [@RaitoBezarius]
  • [@ReturnRei]
  • [@rocallahan]
  • [@sanxiyn]
  • [@SAY-5]
  • [@skdltmxn]
  • [@sollyucko]
  • [@supervacuus]
  • [@Swatinem]
  • [@SweetVishnya]
  • [@SquareMan]
  • [@tathanhdinh]
  • [@Techno-coder]
  • [@tiann]
  • [@ticki]
  • [@Timmmm]
  • [@Tiwalun]
  • [@track-5]
  • [@tux3]
  • [@wickerwacka]
  • [@willglynn]
  • [@woodruffw]
  • [@wyxloading]
  • [@xcoldhandsx]
  • [@x0rb3l]
  • [@x64k]
下载工具