Skip to main content

elf-analyzer

Linux ELF 二进制格式深度分析。覆盖 ELF 结构解析(header/program/section)、 安全特征评估(RELRO/Canary/NX/PIE/seccomp)、静态反汇编、动态调试、加壳检测与脱壳。 当用户提供 ELF/.so 文件并请求分析、triage、安全评估时触发。

Source facts

Repository
ForceInjection/elf-skill
Last source activity
June 8, 2026 at 06:00
Detected SKILL.md language
Chinese
Stars
8
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
8 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
elf-analyzer
description
Linux ELF 二进制格式深度分析。覆盖 ELF 结构解析(header/program/section)、 安全特征评估(RELRO/Canary/NX/PIE/seccomp)、静态反汇编、动态调试、加壳检测与脱壳。 当用户提供 ELF/.so 文件并请求分析、triage、安全评估时触发。
allowed-tools
Bash, Read, Write, Glob, Grep, WebFetch, WebSearch
trust-level
L1
# ELF Analyzer — ELF 格式深度分析 Linux ELF 二进制文件的格式分析专项技能。采用六阶段工作流 + 条件路由架构, 从取样到安全态势报告的完整链路。聚焦于 ELF 结构本身的分析,而非漏洞利用。 ## Safety Warning > **Warning**: 二进制分析仅应在隔离实验环境或一次性 VM 中进行。 > 切勿在个人设备或生产服务器上执行动态分析。 > 执行动态分析(Phase 3)前必须获得用户明确授权。 ## Trigger Conditions - 提供了 ELF 文件、.so 共享库的路径 - 请求分析/triage 某个 Linux 二进制 - 询问 ELF 结构、安全特征、加壳检测相关问题 - 作为其他技能(linux-pwn、binary-reverse)的前置分析步骤 ## Tool Discovery ```bash command -v file readelf objdump nm strings xxd hexdump python3 checksec \ radare2 rabin2 r2 gdb strace ltrace objcopy upx \ analyzeHeadless capa \ ldd lddtree scanelf execstack dumpelf eu-readelf 2>/dev/null | sort # 关键后备链 # readelf 不可用 → python3 -c "import struct; ..." 手动解析 # objdump 不可用 → radare2 → llvm-objdump → python3 capstone # checksec 不可用 → readelf -l (GNU_STACK) + readelf -d (BIND_NOW) # ldd 不可用(或不安全) → readelf -d | grep NEEDED # Ghidra 不可用 → radare2 + r2ghidra → objdump + 手工分析 ``` ## Adjacent Skills | 技能 | 何时切换 | | ---------------- | ------------------------------------------------------------------------------------------- | | `binary-reverse` | ELF triage 完成后需要:反汇编模式识别、密码学算法定位、反分析绕过、Go/Rust/C++ 语言专项分析 | | `linux-pwn` | 安全态势评估完成后需要:漏洞利用开发、堆利用、ROP 链、格式化字符串攻击、内核提权 | ## Workflow Engine ### Phase 0: Intake 1. 保存原始样本副本到 `case/00-intake/` 2. 计算哈希: `md5sum` / `sha1sum` / `sha256sum` 3. 创建案例目录: `case/{01-triage,02-strings,03-static,04-decoding,05-config,06-extracted,07-stages,09-reports,10-iocs}` 4. 初始化 `case/AGENTS.md` ### Phase 1: ELF Triage **加载 `references/elf-triage.md`** 获取完整命令序列和输出解析模板。 核心步骤: 1. `file` → 架构、端序、链接方式、stripped 状态 2. `checksec` → RELRO / Canary / NX / PIE / FORTIFY / RPATH 3. `readelf -h` → ELF header (Type/Entry/PH/SH) 4. `readelf -l` → Program Headers (GNU_STACK/GNU_RELRO/TLS/LOAD) 5. `readelf -d` → Dynamic Section (NEEDED/BIND_NOW/RPATH/RUNPATH) 6. `ldd` / `lddtree` → 库依赖分析 7. `readelf -s` → Symbol Table (stripped 判定) 8. `strings` + 模式搜索 → URL/IP/路径/敏感关键字/编译器指纹 **路由规则** — 根据 triage 结果自动加载后续 reference: | 发现 | 行动 | | ----------------------------- | ---------------------------------------------------- | | `stripped` | 加载 `references/static-analysis.md` (stripped 策略) | | `Full RELRO` | 加载 `references/elf-security.md` | | `UPX/加壳标记` | 加载 `references/unpacking.md`,优先脱壳 | | `加密字符串 (高熵)` | 建议切换到 `binary-reverse` (密码学算法定位) | | `反调试引用 (ptrace/seccomp)` | 建议切换到 `binary-reverse` (反分析绕过) | | `可疑漏洞迹象` | 建议切换到 `linux-pwn` (漏洞利用) | ### Phase 2: Static Analysis **加载 `references/static-analysis.md`。** 如需要反汇编模式解读,建议切换到 `binary-reverse`。 核心步骤: 1. `objdump -d -M intel` → 反汇编全部代码段 2. **Stripped**: 使用 radare2 `aaa; afl` heuristic 函数识别 3. **Non-stripped**: 基于符号表定位关键函数 + 交叉引用追踪 4. 敏感函数调用检测 5. Ghidra/radare2 深度分析(如可用) ### Phase 3: Dynamic Analysis **仅在用户明确授权且环境隔离后执行。加载 `references/dynamic-analysis.md`。** ### Phase 4: Security Assessment **加载 `references/elf-security.md`。** 评估安全缓解措施组合及可利用性评分 (0-10)。 ### Phase 5: Report 更新 `case/REPORT.md` 和 `case/AGENTS.md`,输出: - 案例摘要 + 样本清单(含哈希) - 安全态势总结 - 关键发现(解码/C2/持久化/反分析) - IOC 清单 - 进一步分析建议(推荐切换的相邻技能) ## Reference Loading Guide | 场景 | 加载的 Reference 文件 | | --------------------------- | -------------------------------- | | 任何 ELF 分析的起点 | `references/elf-triage.md` | | 理解 ELF 结构细节 | `references/elf-headers.md` | | 动态链接/GOT/PLT/LD_PRELOAD | `references/elf-dynamic.md` | | 安全特征分析/漏洞评估 | `references/elf-security.md` | | Ghidra/radare2/objdump 使用 | `references/static-analysis.md` | | GDB/strace/Frida 调试 | `references/dynamic-analysis.md` | | 加壳检测与脱壳 | `references/unpacking.md` | ## Token Budget 1. **聊天只放结论**: 不粘贴冗长的命令输出 2. **输出落盘**: 反汇编、strings、日志写入 `case/`,用 `rg`/`head`/`tail` 检索 3. **两击失败即转向**: 同一分支两次失败后记录 blocker,切换方法 4. **脚本持久化**: 重复使用的逻辑写入 `case/04-decoding/` ## Output Template ```text ## ELF 分析结果: <sample_name> ### 基本信息 - 架构: <arch> | 端序: <endian> | 链接: <dynamic/static> - Stripped: <yes/no> | 加壳: <yes/no/type> ### 安全态势 | RELRO | Canary | NX | PIE | seccomp | FORTIFY | |-------|--------|----|-----|---------|---------| ### 关键发现 - ... ### 进一步分析建议 - 建议切换到: `binary-reverse` / `linux-pwn` ```
View on GitHub