dharnesh08/recon

GitHub: dharnesh08/recon

一款基于C++17的自动化固件与二进制漏洞分析命令行工具,集成逆向工程与源码及二进制安全扫描功能。

Stars: 0 | Forks: 0

# recon — 二进制逆向工程与漏洞扫描器 一个基于 C++17 的命令行工具,用于对原始二进制文件进行逆向工程,并扫描源代码/二进制文件以查找漏洞。 ## 构建 ``` make # standard build make debug # with AddressSanitizer make install # copy to /usr/local/bin ``` 依赖要求:支持 C++17 的 `g++`(`sudo apt install g++` 或 `brew install gcc`) ## 用法 ``` recon [OPTIONS] ``` ### 二进制分析选项 | 标志 | 描述 | |------|-------------| | `-b, --binwalk` | 运行 binwalk 提取(如果未安装,则回退到 magic-byte 扫描器) | | `-s, --strings` | 提取可打印字符串 | | `-x, --hexdump` | 十六进制转储 | | `-d, --disasm` | 使用 objdump/ndisasm 进行反汇编 | | `-H, --header` | ELF/PE/Mach-O 头信息 + 安全缓解措施 | | `-e, --entropy` | 每 4KB 块的熵分析 | | `-a, --all` | 运行所有模块 | ### 漏洞扫描选项 | 标志 | 描述 | |------|-------------| | `-V, --vuln` | 自动检测并扫描漏洞 | | `--vuln-src` | 强制进行源代码级别的漏洞扫描 (C/C++) | | `--vuln-bin` | 强制进行二进制级别的漏洞扫描 | ### 输出选项 | 标志 | 描述 | |------|-------------| | `-o, --output ` | 将结果保存到文件 | | `-w, --width ` | 十六进制转储列宽(默认:16) | | `-m, --min-len ` | 提取时的最小字符串长度(默认:4) | | `--no-color` | 禁用 ANSI 颜色 | | `-v, --verbose` | 详细模式 | ## 示例 ``` # 对固件二进制文件的 Full analysis ./recon -a firmware.bin # Extract 并扫描,同时保存输出 ./recon -b -s -H -o results.txt firmware.bin # 扫描 C 源代码以发现 vulnerabilities ./recon -V --vuln-src main.c # Narrow hex dump(8 列)并进行 string 提取 ./recon -x -w 8 -s -m 6 mystery.bin # Disassemble + 检查 security mitigations ./recon -d -H target_binary # 仅进行 Entropy analysis(检测 encrypted/packed sections) ./recon -e suspicious.bin ``` ## 漏洞扫描器 ### 检测到的源代码模式 - **缓冲区溢出** — `gets`、`strcpy`、`strcat`、`scanf("%s")`、`sprintf`、`memcpy` - **格式化字符串** — `printf(user_input)`、带有变量格式的 `fprintf` - **整数溢出** — `(int)strlen`、带有乘法运算的 `malloc` - **命令注入** — `system()`、`popen()`、`execl/execv` - **竞态条件** — `access()` + open TOCTOU、`tmpnam()` - **弱随机性** — `rand()`、`srand(time(...))` - **弱加密** — MD5、SHA-1、DES - **不安全的输入** — `atoi`、`atof`、`atol` - **栈安全** — `alloca()`、VLA - **内存管理** — 未检查的 `free()`、未验证的 `malloc` 返回值 ### 二进制级别检查 - 针对嵌入式文件系统/归档文件的 magic-byte 扫描 - ELF 安全缓解措施检测:NX、Stack Canary、PIE、RELRO - 符号表中的危险导入函数检测 - 硬编码凭证/机密字符串检测 ## 可选系统工具(增强分析) | 工具 | 用途 | 安装 | |------|---------|---------| | `binwalk` | 固件提取 | `pip install binwalk` | | `strings` | 字符串提取 | 通常已预装 | | `objdump` | 反汇编 | `sudo apt install binutils` | | `readelf` | ELF 分析 | `sudo apt install binutils` | | `checksec` | 安全标志 | `sudo apt install checksec` | | `file` | 文件类型检测 | 通常已预装 | 所有工具在未安装的情况下均具有内置的回退机制。
标签:C++17, DAST, DNS 反向解析, DNS 解析, ELF解析, HTTP头分析, Mach-O解析, PE解析, SecOps, Wayback Machine, 二进制分析, 云安全架构, 云安全运维, 云资产清单, 代码生成, 十六进制转储, 反汇编, 固件安全, 固件提取, 字符串提取, 安全缓解措施检测, 开发安全, 恶意软件分析, 渗透测试工具, 源码扫描, 漏洞分析, 熵分析, 物联网安全, 网络安全, 自动化漏洞扫描, 路径探测, 逆向工程, 配置审计, 错误基检测, 隐私保护, 静态代码分析