逆向工程专家 Agent 实战指南:基于 agents24 插件的二进制分析、反汇编与安全研究方法论
【免费下载链接】agentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity项目地址: https://gitcode.com/GitHub_Trending/agents24/agents
本篇技术指南围绕开源仓库 agents24/agents 中plugins/reverse-engineering/agents/reverse-engineer.md这一专项 Agent 定义展开,系统讲解其内置的二进制分析、反汇编/反编译、动态调试与漏洞研究能力体系,并结合同插件下binary-analysis-patterns、anti-reversing-techniques、memory-forensics、protocol-reverse-engineering四个配套技能库的源码级细节进行纵深扩充。读完本文,你将掌握一套可复用的逆向工程方法论:从文件侦察、静态分析到动态调试与文档化产出的完整工作流,以及反调试/反虚拟机识别、内存取证、私有协议还原等进阶实战方案,并明确在任何逆向任务中都必须遵守的授权边界。
一、Agent 定位:一个内置完整 RE 方法论的专项专家
reverse-engineer是plugins/reverse-engineering插件中的核心专家 Agent,其完整定义存放于plugins/reverse-engineering/agents/reverse-engineer.md。文件头部 YAML frontmatter 定义了它的身份元数据:
--- name: reverse-engineer description: Expert reverse engineer specializing in binary analysis, disassembly, decompilation, and software analysis. Masters IDA Pro, Ghidra, radare2, x64dbg, and modern RE toolchains. Handles executable analysis, library inspection, protocol extraction, and vulnerability research. Use PROACTIVELY for binary analysis, CTF challenges, security research, or understanding undocumented software. model: opus ---从这段元数据可以读出三个关键事实:
- 触发时机(Use PROACTIVELY):该 Agent 面向二进制分析、CTF 挑战、安全研究、理解无文档软件(undocumented software)四类任务主动启用,不需要用户显式点名;
- 模型分配(model: opus):按
docs/agents.md的模型分级标准,Opus 层(共 54 个 Agent)承担"关键架构、安全、代码审查、生产编码"类高复杂度任务,逆向工程正属于高推理密度的安全分析场景; - frontmatter 解析机制:模型字段由适配器层统一读取,
tools/adapters/base.py中的解析逻辑为self.frontmatter.get("model") or "inherit",即未显式指定 model 的 Agent 会回退为inherit(运行时由用户选择模型),而本 Agent 显式锁定为opus。
此外,同一插件还提供firmware-analyst(固件分析)与malware-analyst(恶意样本分析)两个细分角色,三者构成"通用逆向 + 固件 + 恶意软件"的互补矩阵。从源码结构看,该插件遵循仓库统一的"agent + skill"组织规范:Agent 定义负责角色人格与方法论,技能库(skills)负责沉淀可复用的专项技术与脚本片段。
二、四大核心能力域
Agent 的系统提示词将专业知识划分为四个能力域,构成后续所有方法论与工具选型的知识基础。
2.1 二进制分析(Binary Analysis)
- 可执行文件格式:PE(Windows)、ELF(Linux)、Mach-O(macOS)、DEX(Android);
- 架构支持:x86、x86-64、ARM、ARM64、MIPS、RISC-V、PowerPC;
- 静态分析技术:控制流图(CFG)、调用图(call graph)、数据流分析、符号恢复;
- 动态分析技术:调试(debugging)、追踪(tracing)、插桩(instrumentation)、模拟执行(emulation)。
2.2 反汇编与反编译(Disassembly & Decompilation)
- 反汇编器:IDA Pro、Ghidra、Binary Ninja、radare2/rizin、Hopper;
- 反编译器:Hex-Rays(IDA 商业插件)、Ghidra decompiler、RetDec、snowman;
- 签名匹配:FLIRT 签名库、函数识别、库函数检测(用于从反汇编中剥离标准库噪声);
- 类型恢复:结构体重构、vtable 分析、RTTI 解析(C++ 对象模型还原的关键路径)。
2.3 调试与动态分析(Debugging & Dynamic Analysis)
- 调试器:x64dbg、WinDbg、GDB、LLDB、OllyDbg;
- 追踪工具:DTrace、strace、ltrace、Frida、Intel Pin;
- 模拟执行:QEMU、Unicorn Engine、Qiling Framework;
- 插桩框架:DynamoRIO、Valgrind、Intel PIN。
2.4 安全研究(Security Research)
- 漏洞类别:缓冲区溢出、格式化字符串、释放后使用(use-after-free)、整数溢出、类型混淆;
- 利用技术:ROP、JOP、堆利用、内核利用;
- 缓解机制:ASLR、DEP/NX、栈金丝雀(Stack canaries)、CFI、CET、PAC(ARM 指针认证);
- 模糊测试:AFL++、libFuzzer、honggfuzz、WinAFL。
三、工具链全景
3.1 主力工具
IDA Pro - Industry-standard disassembler with Hex-Rays decompiler Ghidra - NSA's open-source reverse engineering suite radare2/rizin - Open-source RE framework with scriptability Binary Ninja - Modern disassembler with clean API x64dbg - Windows debugger with plugin ecosystem3.2 辅助工具
binwalk v3 - Firmware extraction and analysis (Rust rewrite, faster with fewer false positives) strings/FLOSS - String extraction (including obfuscated) file/TrID - File type identification objdump/readelf - ELF analysis utilities dumpbin - PE analysis utility nm/c++filt - Symbol extraction and demangling Detect It Easy - Packer/compiler detection其中binwalk v3是值得注意的版本信息:原文档明确指出其基于 Rust 重写、速度更快且误报更少——这类版本细节在实战选型时应优先采信仓库内文档的说法。
3.3 脚本与自动化环境
# Common RE scripting environments - IDAPython (IDA Pro scripting) - Ghidra scripting (Java/Python via Jython) - r2pipe (radare2 Python API) - pwntools (CTF/exploitation toolkit) - capstone (disassembly framework) - keystone (assembly framework) - unicorn (CPU emulator framework) - angr (symbolic execution) - Triton (dynamic binary analysis)这条工具链从"反汇编指令级"(capstone)到"汇编生成级"(keystone)、"CPU 模拟级"(unicorn)、"符号执行级"(angr/Triton)逐层递进,覆盖了从指令解码到程序语义提取的完整自动化层次。配套技能库binary-analysis-patterns中给出的 IDAPython/Ghidra 脚本即建立在这些框架之上(详见第六节)。
四、分析方法论:四阶段工作流
Agent 内置的分析方法论是全文最具可操作性的部分,它将一次逆向任务拆解为四个阶段。
Phase 1:侦察(Reconnaissance)
- 文件识别:确定文件类型、架构、编译器;
- 元数据提取:字符串(strings)、导入表、导出表、资源段;
- 加壳检测:识别 packer、protector、obfuscator;
- 初步分诊(triage):评估复杂度,标记值得深挖的区域。
配套技能binary-analysis-patterns进一步补充了该阶段的落地要点:strings应优先关注错误信息与提示文本(它们通常是定位核心逻辑的锚点),同时配合file、Detect It Easy完成文件类型与编译器识别(见plugins/reverse-engineering/skills/binary-analysis-patterns/SKILL.md)。
Phase 2:静态分析(Static Analysis)
- 载入反汇编器:按目标架构配置分析选项;
- 定位入口点:main 函数、导出函数、回调;
- 绘制程序结构:函数、基本块、控制流;
- 代码注释:重命名函数、定义结构体、添加注释;
- 交叉引用分析:追踪数据与代码引用(xref)。
Phase 3:动态分析(Dynamic Analysis)
- 环境搭建:隔离虚拟机、网络监控、API 挂钩;
- 断点策略:入口点、API 调用、关键地址;
- 执行追踪:记录程序行为、API 调用、内存访问;
- 输入操纵:测试不同输入,观察行为变化。
Phase 4:文档化(Documentation)
- 函数文档:用途、参数、返回值;
- 数据结构文档:内存布局、字段含义;
- 算法文档:伪代码、流程图;
- 发现汇总:关键发现、漏洞、行为。
这套四阶段方法论与行业通用的"先静态后动态、先宽后深"分析范式一致,且每一阶段的产出都向后一阶段输入,形成闭环。实战中建议按plugins/reverse-engineering/skills/binary-analysis-patterns/SKILL.md给出的 7 步最佳实践工作流执行:初始分诊 → 字符串分析 → 函数识别 → 控制流映射 → 数据结构恢复 → 算法识别 → 文档化。
五、代码模式识别与调用约定
逆向的核心在于从汇编/伪代码中快速认出"高级语言语义"。Agent 内建了如下高频模式库:
5.1 常见反编译模式(C 视角)
// String obfuscation (XOR) for (int i = 0; i < len; i++) str[i] ^= key; // Anti-debugging (IsDebuggerPresent) if (IsDebuggerPresent()) exit(1); // API hashing (common in malware) hash = 0; while (*name) hash = ror(hash, 13) + *name++; // Stack string construction char s[8]; *(DWORD*)s = 0x6C6C6548; // "Hell" *(DWORD*)(s+4) = 0x6F; // "o\0"5.2 调用约定速查
- x86 cdecl:参数压栈,调用者清理栈;
- x86 stdcall:参数压栈,被调用者清理栈;
- x64 Windows:RCX、RDX、R8、R9,其余压栈(含 32 字节 shadow space);
- x64 System V:RDI、RSI、RDX、RCX、R8、R9,其余压栈;
- ARM:R0-R3,其余压栈。
配套技能库plugins/reverse-engineering/skills/binary-analysis-patterns/references/details.md将调用约定扩展到了完整的汇编层面:System V AMD64 下调用func(a,b,c,d,e,f,g)时前 6 参数依次放入 RDI/RSI/RDX/RCX/R8/R9、第 7 参数压栈;Microsoft x64 下则需要先sub rsp, 0x28预留 shadow space 与对齐空间,第 5 参数写入[rsp+0x20];ARM64(AArch64)前 8 参数使用 X0-X7、帧指针为 X29、返回地址在链接寄存器 X30,函数序言用stp x29, x30, [sp, #-16]!成对保存 FP 与 LR。这些细节直接决定了反编译时参数与局部变量位置的判读。
5.3 控制流与数据结构模式(skill 级补充)
在 Agent 方法论之上,binary-analysis-patterns技能沉淀了可直接对照汇编识别的模式库:
- 条件分支:
cmp eax, ebx; jne skip_block对应if (a == b);有符号比较用jge(jump if greater or equal),无符号比较用jae(jump if above or equal); - 循环:
xor ecx, ecx+cmp/jge+inc+jmp是典型的for循环;do-while则表现为循环体在前、条件跳转在后; - switch 跳转表:
cmp eax, max_case; ja default_case; jmp [jump_table + eax*8]是编译器为多 case 生成跳转表的特征;case 数量少时退化为顺序cmp/je链; - 数组/结构体寻址:
mov rax, [rbx + rcx*8]即 8 字节元素数组访问;结构体字段访问依赖字段偏移(如s->b在 char 对齐后位于偏移 4、s->c为 long 时位于偏移 8); - 链表遍历:
test rdi, rdi; jz list_done+ 每次迭代mov rdi, [rdi+8]向后移动 next 指针; - 常用库函数内联模式:
strlen是"逐字节判 0"循环,memcpy常被优化为rep movsb; - 常数乘法优化:
x*3编译为lea eax, [rax + rax*2],x*5为lea eax, [rax + rax*4],识别这类 LEA 模式可以反向推导源码中的乘数; - 位操作:
test eax, 0x80; jnz判定位 7,popcnt eax, ecx统计置位数,bsr+xor eax, 31计算前导零。
六、反汇编/反编译纵深:类型恢复与脚本自动化
binary-analysis-patterns技能还给出了从汇编反推高级语言类型的判读规则(变量恢复与类型恢复),这是把"一堆 mov"还原成"可读 C 代码"的关键:
; 1-byte operations suggest char/bool movzx eax, byte [rdi] ; Zero-extend byte movsx eax, byte [rdi] ; Sign-extend byte ; 4-byte operations suggest int/float mov eax, [rdi] movss xmm0, [rdi] ; Float ; 8-byte operations suggest long/double/pointer mov rax, [rdi] movsd xmm0, [rdi] ; Double6.1 Ghidra 脚本:修正签名与结构体
// In Ghidra scripting // Fix function signature Function func = getFunctionAt(toAddr(0x401000)); func.setReturnType(IntegerDataType.dataType, SourceType.USER_DEFINED); // Create structure type StructureDataType struct = new StructureDataType("MyStruct", 0); struct.add(IntegerDataType.dataType, "field_a", null); struct.add(PointerDataType.dataType, "next", null); // Apply to memory createData(toAddr(0x601000), struct);6.2 Ghidra 模式匹配:批量定位危险函数调用
# Find all calls to dangerous functions for func in currentProgram.getFunctionManager().getFunctions(True): for ref in getReferencesTo(func.getEntryPoint()): if func.getName() in ["strcpy", "sprintf", "gets"]: print(f"Dangerous call at {ref.getFromAddress()}")6.3 IDAPython:追踪指定函数的所有调用点
import idaapi import idautils import idc # Find all function calls def find_calls(func_name): for func_ea in idautils.Functions(): for head in idautils.Heads(func_ea, idc.find_func_end(func_ea)): if idc.print_insn_mnem(head) == "call": target = idc.get_operand_value(head, 0) if idc.get_func_name(target) == func_name: print(f"Call to {func_name} at {hex(head)}")这类脚本正是"漏洞审计自动化"的起点:对 strcpy/sprintf/gets 的交叉引用扫描可以直接生成危险函数调用清单。需要警惕的实践误区(skill 中明确列出)包括:优化器产物可能不再对应源码结构、内联函数导致函数边界消失、尾调用优化表现为jmp而非call + ret、死代码残留、以及 PIC 代码的 RIP 相对寻址。
七、反逆向技术识别与绕过(anti-reversing-techniques 技能库)
逆向过程中必然遇到保护机制。配套技能plugins/reverse-engineering/skills/anti-reversing-techniques/SKILL.md是双用途(dual-use)技能,其前置声明强调:任何绕过或分析操作前必须验证授权(软件所有者书面许可、或处于 CTF/授权渗透/恶意软件分析/学术研究等合法场景),并理解 CFAA、DMCA 反规避条款等法律风险。
7.1 反调试(Anti-Debugging)识别与绕过
Windows 侧高频检测手法及其绕过策略(详见plugins/reverse-engineering/skills/anti-reversing-techniques/references/details.md):
| 检测手法 | 识别特征 | 典型绕过 |
|---|---|---|
| IsDebuggerPresent | 导入表含该 API,直接调用 | 强制返回 0;x64dbg 下用 ScyllaHide 自动修补 |
| PEB.BeingDebugged | 直接读取gs:[0x60](x64)或fs:[0x30](x86) | 在 Dump 窗口将该标志位(偏移 +2)清零 |
| NtGlobalFlag | 检测 0x70 标志(堆尾检查/空闲检查/参数校验) | 清除偏移 +0xBC 处标志 |
| RDTSC 计时 | 0F 31字节序列(RDTSC 指令) | 硬件断点(无 INT3 开销)、NOP 掉比较与条件跳转 |
| 异常分发(SEH/VEH) | INT3 应触发自己的处理器而非落入 exit | x64dbg 设置 "Pass exception to program"(0x80000003) |
details.md中提供了一个可直接落地的 Python 扫描器原型:以字节模式匹配RDTSC(\x0f\x31)、RDTSCP(\x0f\x01\xf9)、GetTickCount、QueryPerformanceCounter等字符串/指令特征,输出命中偏移后到 IDA/Ghidra 中交叉引用定位检测逻辑。这展示了"特征扫描 → 偏移定位 → 人工确认"的自动化分诊流程。
Linux 侧则以ptrace(PTRACE_TRACEME)自跟踪检测、/proc/self/status的TracerPid字段、父进程名检查为代表;绕过方案包括LD_PRELOAD挂钩 ptrace 返回 0、GDB 的catch syscall ptrace+set $rax = 0命令序列等。
7.2 反虚拟机(Anti-VM)检测
- CPUID 检测:检查 ECX 位 31(hypervisor 位),或读取
0x40000000leaf 的厂商字符串("VMwareVMware"、"Microsoft Hv"、"KVMKVMKVM"、"VBoxVBoxVBox"); - 特征文件/注册表:VMware Tools、VirtualBox Guest Additions 的注册表键与驱动文件(
vmmouse.sys、VBoxMouse.sys); - 计时侧信道:CPUID/IN 指令会触发 VM exit,使 RDTSC 前后差值显著放大(裸机约 150-300 cycles,VM 内常超 1000 cycles)。
7.3 代码混淆(Obfuscation)
- 控制流平坦化(CFF):
if/else被改写成while(1) + switch(state)分发器。分析方法:识别状态变量 → 绘制状态转移 → 还原原始流程,工具如 D-810(IDA)、SATURN; - 不透明谓词:
(x*x) >= 0恒真、(x*(x+1)) % 2 == 1恒假,用于制造"看似有分支实则无分支"的假象,可用 angr/Triton 符号执行剔除; - 字符串加密:XOR 加密、栈上逐字节拼装,用 FLOSS 自动解密,或用 IDAPython 写解密脚本;
- API 混淆:动态
GetProcAddress+ API 哈希(如 ROR-13 哈希)解析,分析时需识别哈希算法并用 HashDB 等插件还原 API 名。
7.4 加壳与虚拟化保护(advanced-techniques 参考文档)
plugins/reverse-engineering/skills/anti-reversing-techniques/references/advanced-techniques.md进一步覆盖加壳与代码虚拟化:
- 常见壳:UPX(
upx -d直接脱)、Themida/VMProtect(基于 VM 的商用保护)、ASPack、MPRESS(LZMA,常被恶意软件使用); - 动态脱壳四步:找到原始入口点(OEP)→ 在 OEP 下断点 → OEP 到达时 dump 内存 → 用 Scylla/ImpREC 修复导入表;
- ESP 技巧:在 x64dbg 中对
[ESP]设硬件访问断点,POPAD恢复栈后程序即跳到 OEP(通常是远跳转); - VMProtect 特征:
.vmp0/.vmp1节、movzx eax, byte ptr [esi]; jmp [eax*4+handler_table]分发器特征;开源的 NoVmp 可对 VMProtect 3 做反虚拟化; - 反汇编对抗:重叠指令(跳转落在多字节指令中间)、垃圾字节插入、自修改代码(对代码区设内存写断点抓解密)、ROP 化混淆;
- PE 加壳特征清单:可写+可执行节、VirtualSize 远大于 RawSize、导入表仅剩 1-3 项、入口不在 .text、节熵值 > 7.2、TLS 回调存在。
八、内存取证(memory-forensics 技能库)
动态分析的进阶形态是内存取证。技能plugins/reverse-engineering/skills/memory-forensics/SKILL.md覆盖从内存获取到 Volatility 3 分析的全流程。
8.1 内存获取(Acquisition)
- Windows:
winpmem_mini_x64.exe memory.raw、DumpIt、Belkasoft RAM Capturer; - Linux:
sudo insmod lime.ko "path=/tmp/memory.lime format=lime"(LiME 内核模块)、dd if=/dev/mem、cp /proc/kcore; - 虚拟机:VMware 的
.vmem文件即裸内存;VirtualBox 用vboxmanage debugvm "VMName" dumpvmcore --filename memory.elf;QEMU/KVM 用virsh dump <domain> memory.raw --memory-only。
8.2 Volatility 3 恶意样本分析工作流
# 1. Initial process survey vol -f memory.raw windows.pstree > processes.txt vol -f memory.raw windows.pslist > pslist.txt # 2. Network connections vol -f memory.raw windows.netscan > network.txt # 3. Detect injection vol -f memory.raw windows.malfind > malfind.txt # 4. Analyze suspicious processes vol -f memory.raw windows.dlllist --pid <PID> vol -f memory.raw windows.handles --pid <PID> # 5. Dump suspicious executables vol -f memory.raw windows.pslist --pid <PID> --dump # 6. Extract strings from dumps strings -a pid.<PID>.exe > strings.txt # 7. YARA scanning vol -f memory.raw windows.yarascan --yara-rules malware.yar8.3 注入检测与 Rootkit 发现
- 进程注入特征:
PAGE_EXECUTE_READWRITE内存保护、非镜像 VAD 区域出现 MZ 头、分配区起始即 shellcode;常见注入手法包括经典 DLL 注入(VirtualAllocEx + WriteProcessMemory + CreateRemoteThread)、进程镂空(Process Hollowing)、APC 注入、线程执行劫持; - Rootkit 检测:
windows.pslist与windows.psscan的结果 diff 可以发现隐藏进程(DKOM 特征),windows.ssdt检查系统服务描述表挂钩; - YARA 内存规则:在
plugins/reverse-engineering/skills/memory-forensics/SKILL.md中给出了检测注入 shellcode(55 8B EC 83 EC函数序言、68 ?? ?? ?? ?? 68 ?? ?? ?? ?? E8推哈希后调用)以及 Cobalt Strike Beacon 配置特征的规则示例; - 字符串分析:
strings -a提 ASCII、strings -el提 Unicode,FLOSS 可提取混淆字符串。
九、协议逆向(protocol-reverse-engineering 技能库)
对于无文档的私有协议,技能plugins/reverse-engineering/skills/protocol-reverse-engineering/SKILL.md提供了"抓包 → 结构识别 → 文档化 → 验证"的完整链路。
9.1 流量捕获
# tcpdump 全包捕获与实时查看 tcpdump -i eth0 -s 0 -w capture.pcap # Full packet tcpdump -i eth0 -X port 80 # Wireshark 显示过滤器示例 tcp.port == 8080 frame contains "password" # TLS 解密:导出会话密钥 export SSLKEYLOGFILE=/tmp/keys.log9.2 二进制协议结构识别
协议头部通常由固定模式构成:魔数/签名(message start 标志)、版本字段、长度字段(变长数据前必有)、类型/操作码、序列号、校验和(CRC32)与时间戳。对应的 Python 解析器可以直接用struct模块实现:
import struct from dataclasses import dataclass @dataclass class MessageHeader: magic: bytes version: int msg_type: int length: int @classmethod def from_bytes(cls, data: bytes): magic, version, msg_type, length = struct.unpack( ">4sHHI", data[:12] ) return cls(magic, version, msg_type, length) def parse_messages(data: bytes): offset = 0 messages = [] while offset < len(data): header = MessageHeader.from_bytes(data[offset:]) payload = data[offset+12:offset+12+header.length] messages.append((header, payload)) offset += 12 + header.length return messages9.3 加密识别与文档化
- 熵分析:熵值 < 6.0 多为明文/结构化数据,6.0-7.5 可能压缩,> 7.5 大概率加密或随机;AES 加密数据长度常为 16 字节块大小的倍数,CBC 模式开头可能有 IV;
- Wireshark Lua dissector:技能中提供了完整的自定义协议 dissector 模板(
Proto("custom", "Custom Protocol")定义字段、按 TCP 端口 8888 注册); - 主动测试:用 boofuzz 按协议结构定义
s_initialize("HELLO")模板做协议 fuzzing,或用 scapy 对抓包做改包重放(需删除pkt[IP].chksum/pkt[TCP].chksum让内核重算校验和); - 协议规格模板:技能给出了 Markdown 格式的协议规范模板(Overview/Transport/Message Format/State Machine/Examples),确保分析产出可被工程团队直接复用。
十、响应流程与示例交互
10.1 六步响应框架
Agent 的响应方式被固化为六个步骤:澄清范围(确保授权)→ 理解目标 → 推荐工具 → 给出方法论 → 解释发现(附证据)→ 记录模式。
10.2 实战示例一:CTF 密码校验题
1. 识别二进制类型:$ file challenge 与 $ checksec --file=challenge 2. 载入 Ghidra/IDA 定位 main() 3. 查找三类特征: - 字符串比较(strcmp、memcmp) - 加密函数(xor 循环、0x5A827999 等常数——SHA-1 轮常数) - 输入校验逻辑 4. 在 GDB 中对比较函数下断点:break strcmp; run 5. 在比较点检查内存中的期望值其中0x5A827999是 SHA-1 第一轮轮常数,这类"加密常数识别"正是工具链中密码学模式匹配能力的具体体现。
10.3 实战示例二:闭源 DLL 认证逻辑分析
对授权范围内的 DLL 分析:静态侧用dumpbin /exports library.dll列出导出函数,按名称模式筛选认证相关函数,在 IDA/Ghidra 中分析;动态侧用 Frida 挂钩 API 调用、监控网络流量、追踪函数参数;最后产出函数签名文档、数据结构映射与安全注意事项。
十一、安全与伦理边界
Agent 系统提示词以明确段落划定了合法使用与绝对禁止的边界,这是使用该 Agent 的前置条件而非可选项:
仅限授权场景:经授权的安全研究、CTF 竞赛与教育挑战、防御目的的恶意软件分析、通过负责任渠道的漏洞披露、为互操作性理解软件。
绝不协助:未授权访问系统、出于恶意目的制造恶意软件、非法绕过软件许可、窃取知识产权、任何违法活动。
配套技能库进一步强化了这一约束——anti-reversing-techniques的 SKILL 文件开头即是 "AUTHORIZED USE ONLY" 警示块,要求分析前验证授权、记录范围、理解法律合规(CFAA、DMCA 反规避条款),其 references 文档的总结部分再次强调:"此知识仅应用于授权安全研究、恶意软件防御分析、CTF、合法目的理解与教育,绝不可用于软件盗版、未授权访问或恶意目的。"
十二、在 agents24 生态中的使用方式
reverse-engineerAgent 遵循仓库统一的插件规范:docs/agents.md中说明所有 Agent 均通过 frontmatter 声明 name/description/model,再由适配器层(tools/adapters/base.py)解析后接入 Claude Code、Codex、Cursor、OpenCode、GitHub Copilot、Google Antigravity 等多 harness 环境。使用时直接在对话中描述逆向任务(如 "分析这个二进制中的认证逻辑"、"帮我脱壳并还原 OEP"),Agent 会依据其内置方法论主动规划四阶段流程,并调用配套技能库中的模式库与脚本片段。由于该 Agent 锁定为opus模型,任务会被路由到最高推理能力档位;技能库中超过 8KB 的细节内容(如 binary-analysis-patterns 的反汇编基础、memory-forensics 的 Volatility 3 框架)被拆分为 references 子文档,以适应不同 harness 对技能正文体积的限制(详见各 skill 的 SKILL.md 说明),阅读时注意按需翻阅 references 目录获取完整内容。
总而言之,这份 Agent 定义的价值在于它把"资深逆向工程师"的经验系统化为可执行的四阶段方法论、九大工具族、五类代码模式与明确的安全红线,配合四个专项技能库形成了从文件侦察到协议还原、从反调试识别到内存取证的全链路能力闭环。无论是 CTF 选手、安全研究员还是需要理解无文档软件的程序员,都可以直接将其作为可复用的分析工作台。
【免费下载链接】agentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity项目地址: https://gitcode.com/GitHub_Trending/agents24/agents
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考