AtharvaG109/binscope

GitHub: AtharvaG109/binscope

一款用于快速分类与初步分析 PE、ELF 和 Mach-O 二进制文件的静态工具,帮助识别打包器与可疑特征。

Stars: 0 | Forks: 0

# binScope [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/419cc8abc5094906.svg)](https://github.com/AtharvaG109/binscope/actions/workflows/ci.yml) [![Release](https://img.shields.io/github/v/release/AtharvaG109/binscope)](https://github.com/AtharvaG109/binscope/releases) [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE) `binscope` 是一个用于分类 PE、ELF 和 Mach-O 二进制文件的 Rust CLI 工具,能够识别打包器信号、提取字符串,并生成可供分析师进一步完善的 YARA 规则骨架。 ## 为什么使用 binscope 逆向工程师经常需要一个快速初步分析工具,在不打开完整反汇编器的情况下回答一些高价值问题: - 这个二进制文件是什么格式?看起来可疑吗? - 哪些节看起来被打包或加密了? - 哪些导入和提取的字符串指向注入、网络通信、注册表滥用或加密行为? - 我能快速将这些最有趣的特征转化为 YARA 起点规则吗? `binscope` 为这种快速初步分析循环而构建。 ## 功能特性 - 使用 `object` reader API 解析 PE、ELF 和 Mach-O 二进制文件 - 计算每个节和每 256 字节块的 Shannon 熵 - 标记可疑的导入组合,例如 `VirtualAlloc` + `WriteProcessMemory` + `CreateRemoteThread` - 构建导入指纹,包括一个面向 PE 的 `imphash` 风格 MD5 - 提取 ASCII 和 UTF-16LE 字符串,然后分类 URL、IP 地址、注册表键、文件路径、加密术语和可疑的 WinAPI 引用 - 检测通用打包器提示,包括 UPX、Themida、MPRESS、ASPack、Petite 以及可疑的节名称 - 提取 PE Rich 头信息和基本的 PE 资源元数据 - 报告 ELF 加固信号,例如 PIE、NX、RELRO、剥离状态、解释器以及类似 `DT_NEEDED` 的依赖提示 - 输出彩色终端报告和机器友好的 JSON - 从提取的字符串、熵和导入指纹生成 YARA 规则骨架 - 汇总整个目录并提供聚合风险概览 - 在 `summarize` 期间递归扫描 `zip`、`jar`、`tar`、`tgz` 和 `tar.gz` 容器 ## 安装 从本仓库安装: ``` cargo install --path . ``` 或本地构建: ``` cargo build --release ./target/release/binscope --help ``` ## 用法 ``` binscope analyze /path/to/binary binscope analyze /path/to/binary --json binscope analyze /path/to/binary --yara binscope analyze /path/to/binary --strings-interesting-only binscope summarize /path/to/folder binscope summarize /path/to/folder --json binscope summarize /path/to/archive.zip --json binscope summarize /path/to/archive.tar.gz ``` ## 示例输出 ``` binscope sample_pe.exe (PE) Risk score: 68/100 Size: 65536 bytes SHA256: 1d1f... Machine: X86_64 Entry point: 0x14b0 Sections: 4 Imports: 52 Strings: 14 interesting / 173 total Import hash: 2f3f... Findings [critical] Suspicious API combo: injector: Classic remote-thread injection chain [high] High-entropy section .packed: Entropy 7.91 suggests compression, encryption, or packed payloads [medium] Suspicious import libraries: kernel32.dll, ntdll.dll ``` ## 本地验证 ``` cargo fmt cargo check --offline cargo test --offline ``` ## 基于测试用例的测试 干净的示例二进制文件位于 [`testdata/fixtures`](./testdata/fixtures): - `sample_pe.exe` - `sample_elf` - `sample_macho` 它们是有意设计的良性测试用例,用于 CI 中的解析器和报告覆盖率测试。 ## 测试数据 [`testdata`](./testdata) 目录包含两部分内容: - `fixtures/`:提交到仓库中用于自动化测试的干净二进制文件 - `samples.json`:真实世界家族或打包器的仅元数据哈希和引用 本仓库不存储实际的恶意软件样本。 ## 查找测试文件 最快的方法: - 使用 [`testdata/fixtures`](./testdata/fixtures) 中提交的测试用例 - 在已有目录上运行查找脚本 在本开发过程中已知可用的文件包括: - `/Users/atharvagham/Downloads/rev_satellitehijack/satellite` - `/Users/atharvagham/Downloads/job_scout_opt_starter/.venv/lib/python3.11/site-packages/setuptools/cli.exe` - `/usr/bin/true` 然后分析其中一个: ``` binscope analyze testdata/fixtures/sample_pe.exe binscope analyze testdata/fixtures/sample_elf --json binscope analyze testdata/fixtures/sample_macho --strings-interesting-only binscope summarize testdata/fixtures --json ``` 递归进入归档文件: ``` binscope summarize suspicious_bundle.zip --json binscope summarize dropper_samples.tar.gz ``` ## GitHub 自动化 本仓库包含: - 推送和拉取请求上的 CI - 错误和特性请求的 issue 模板 - 拉取请求模板 - Dependabot 用于 Cargo 和 GitHub Actions 更新 - 针对标记版本的自动化构建发布 ## 文档 仓库示例和示例输出位于 [docs/README.md](./docs/README.md)。 ## 路线图想法 - 更丰富的 PE 资源解码 - 嵌套归档策略控制和大小阈值 - 延迟导入分析 - 可配置的风险配置文件 - 超出 JSON 的批量导出格式 ## 贡献 欢迎贡献。请参考 [CONTRIBUTING.md](./CONTRIBUTING.md) 了解开发流程,[CHANGELOG.md](./CHANGELOG.md) 了解发布说明,以及 [`.github/CODEOWNERS`](./.github/CODEOWNERS) 了解审查所有权。 ## 安全 如果您认为在 `binscope` 中发现了安全问题,请不要首先在公共 GitHub 上打开 issue。请遵循 [SECURITY.md](./SECURITY.md) 中的指导。 ## 说明 - `binscope` 是一个静态初步分析工具,不会执行二进制文件。 - 本地的 PE `imphash` 实现有意保持轻量和透明,而不是试图镜像其他生态系统中的每一个边缘情况。 - 本实现使用本地缓存的 `object` crate 而非 `goblin`,以便项目可以在离线环境中构建。
标签:DAST, DNS信息、DNS暴力破解, ELF, Mach-O, PE, Rust, SEO: 二进制分析工具, SEO: 恶意软件检测, SEO: 逆向工程工具, YARA规则, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 内存注入检测, 加密货币相关, 可执行文件, 可视化界面, 威胁情报, 字符串提取, 开发者工具, 开源安全工具, 恶意软件分析, 打包器检测, 文件格式识别, 注册表操作, 熵分析, 网络流量审计, 网络行为分析, 逆向工程, 逆向工程平台, 通知系统, 静态分析