Skills Plugins MCP Prompt Model 博客 我的中心

reverse-engineering

逆向工程工具链 — Ghidra, radare2, Frida, apktool, jadx, angr, pwntools

DeepseekModel Curated skill Quality Good · 48 v1.0.0

Get

https://deepseekmodel.com/api/download.php?id=aivos-xie-hermes-skills-security-reverse-engineering-skill-md&format=skill
Download .skill Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name reverse-engineering description 逆向工程工具链 — Ghidra, radare2, Frida, apktool, jadx, angr, pwntools version 1.0.0 author Hermes Agent license MIT metadata {"hermes":{"tags":["reverse-engineering","binary-analysis","decompilation","debugging","android","exploitation"]}} 逆向工程工具链 核心工具一览 工具 用途 语言 Ghidra NSA开源反编译器,支持多架构 Java radare2/rizin 命令行逆向框架 C Frida 动态插桩,运行时hook Python/JS apktool APK反编译/重打包 Java jadx APK/DEX反编译为Java源码 Java angr 符号执行/二进制分析框架 Python pwntools CTF/exploit开发框架 Python Capstone 多架构反汇编引擎 C/Python Keystone 多架构汇编引擎 C/Python Binwalk 固件分析/提取 Python strings 提取可打印字符串 系统自带 file 文件类型识别 系统自带 objdump 目标文件反汇编 系统自带 readelf ELF文件分析 系统自带 strace 系统调用跟踪 Linux ltrace 库函数调用跟踪 Linux 1. Ghidra — 反编译神器 安装 sudo apt install openjdk-21-jdk wget unzip wget https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_12.1.2_build/ghidra_12.1.2_PUBLIC_20260605.zip unzip ghidra_*.zip -d /opt/ /opt/ghidra_*/ghidraRun # 无头模式 /opt/ghidra_*/support/analyzeHeadless /tmp/project MyProject -import /path/to/binary -postScript /path/to/script.java # PyGhidra (Python无头模式) /opt/ghidra_*/support/pyghidraRun 核心用法 1. File -> Import File -> 选择二进制 2. 自动分析(Analysis -> Auto Analyze) 3. 左侧Symbol Tree -> Functions查看函数列表 4. 双击函数进入反编译视图 5. Ctrl+E 打开脚本管理器 GhidraScript 自动化(Java) // 找所有字符串引用 import ghidra.program.util.DefinedDataIterator; for ( var data : DefinedDataIterator.definedStrings(currentProgram)) { println(data.getAddress() + ": " + data.getDefaultValueRepresentation()); } 无头批量分析 /opt/ghidra_*/support/analyzeHeadless /tmp/ghidra_projects batch \ -import /path/to/binary \ -postScript FindStrings.java \ -scriptPath /path/to/scripts \ -deleteProject 2. radare2/rizin — 命令行逆向 安装 # radare2 git clone https://github.com/radareorg/radare2 && cd radare2 && sys/install.sh # rizin git clone https://github.com/rizinorg/rizin && cd rizin && meson build && ninja -C build && sudo ninja -C build install 常用命令 r2 -A ./binary # 打开并自动分析 r2 -A -d ./binary # 调试模式 aaa # 全面分析 afl # 列出所有函数 pdf @main # 反汇编main s sym.main # 跳转到main V # 可视化模式 VV # 图形可视化 iz # 列出字符串 axt @str.0x401000 # 交叉引用 db main # 设置断点 dc # 继续执行 pxr 64 @rsp # 查看栈 dr # 查看寄存器 r2pipe 自动化 import r2pipe r2 = r2pipe. open ( "./binary" ) r2.cmd( "aaa" ) functions = r2.cmdj( "aflj" ) for func in functions: print ( f" {func[ 'offset' ]} : {func[ 'name' ]} " ) r2.quit() 3. Frida — 动态插桩 安装 pip install frida-tools frida # Android: 下载frida-server推送到设备 adb push frida-server /data/local/tmp/ adb shell "chmod 755 /data/local/tmp/frida-server" adb shell "/data/local/tmp/frida-server &" 核心用法 frida-ps # 列出进程 frida-ps -U # USB设备(手机) frida -U -n com.target.app -l hook.js # 注入 frida -U -f com.target.app -l hook.js --no-pause # spawn模式 Hook Java方法(hook.js) Java . perform ( function ( ) { var LoginActivity = Java . use ( "com.target.app.LoginActivity" ); LoginActivity . checkPassword . implementation = function ( password ) { console . log ( "Password: " + password); var result = this . checkPassword (password); console . log ( "Result: " + result); return result; }; }); Hook Native函数(hook.js) Interceptor . attach ( Module . findExportByName ( "libnative.so" , "encrypt" ), { onEnter : function ( args ) { console . log ( "encrypt input: " + Memory . readUtf8String (args[ 0 ])); }, onLeave : function ( retval ) { console . log ( "encrypt output: " + retval); } }); Python控制Frida import frida device = frida.get_usb_device() session = device.attach( "com.target.app" ) js_code = """ Java.perform(function() { var cls = Java.use("com.target.app.Crypto"); cls.encrypt.overload("java.lang.String").implementation = function(input) { send({type: "plaintext", data: input}); var result = this.encrypt(input); send({type: "ciphertext", data: result}); return result; }; }); """ script = session.create_script(js_code) def on_message ( message, data ): print ( f"[Frida] {message} " ) script.on( "message" , on_message) script.load() input () 4. Android逆向 (apktool + jadx) apktool wget https://github.com/iBotPeaches/Apktool/releases/latest/download/apktool.jar sudo mv apktool.jar /usr/local/bin/ # 反编译 java -jar /usr/local/bin/apktool.jar d target.apk -o output_dir # 重打包 java -jar /usr/local/bin/apktool.jar b output_dir -o modified.apk # 签名 keytool -genkey -v -keystore my.keystore - alias my -keyalg RSA -keysize 2048 -validity 10000 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore modified.apk my jadx wget https://github.com/skylot/jadx/releases/download/v1.5.5/jadx-1.5.5.zip unzip jadx-*.zip -d /opt/jadx # GUI /opt/jadx/bin/jadx-gui target.apk # 命令行 /opt/jadx/bin/jadx target.apk -o output_dir grep -r "password\|api_key\|secret" output_dir/ APK分析流程 1. jadx-gui打开APK -> 查看Java源码逻辑 2. apktool反编译 -> 查看smali、AndroidManifest.xml、资源 3. Frida动态hook -> 运行时抓取密钥/加密结果 4. 修改smali -> 重打包绕过检测 5. angr — 符号执行 安装 pip install angr 密码验证绕过 import angr, claripy proj = angr.Project( "./crackme" , auto_load_libs= False ) flag = claripy.BVS( "flag" , 32 * 8 ) state = proj.factory.entry_state(stdin=flag) simgr = proj.factory.simgr(state) simgr.explore(find= 0x401337 ) # 成功地址 if simgr.found: found = simgr.found[ 0 ] print ( "Flag:" , found.solver. eval (flag, cast_to= bytes )) 6. pwntools — CTF/Exploit框架 安装 pip install pwntools 基本用法 from pwn import * r = remote( "challenge.ctf.com" , 1337 ) r.recvuntil( b"Enter password: " ) r.sendline( b"admin" ) # 自动找偏移 cyclic( 100 ) cyclic_find( 0x6161616b ) # 构造payload payload = b"A" * offset payload += p64( 0x401234 ) # ret2libc elf = ELF( "./binary" ) libc = ELF( "./libc.so.6" ) rop = ROP(elf) rop.call(elf.plt[ "system" ], [ next (elf.search( b"/bin/sh" ))]) # shellcode context.arch = "amd64" shellcode = asm(shellcraft.sh()) r.sendline(payload) r.interactive() 7. 系统自带工具 strings binary | grep -i "password\|key\|secret\|flag" strings -n 8 binary strings -el binary # 宽字符 file binary objdump -d binary # 反汇编 objdump -t binary # 符号表 readelf -h binary # ELF头 readelf -S binary # 段表 strace ./binary # 系统调用跟踪 strace -e trace=open, read ./binary ltrace ./binary # 库函数跟踪 # binwalk v3 (Rust重写!) — 推荐用cargo安装 # cargo install binwalk # 或从源码: git clone https://github.com/ReFirmLabs/binwalk && cd binwalk && cargo build --release binwalk firmware.bin # 固件扫描 binwalk -e firmware.bin # 提取嵌入文件 binwalk -E firmware.bin # 熵分析 binwalk -Me firmware.bin # 递归提取 checksec pip install checksec.py checksec ./binary # RELRO / Stack Canary / NX / PIE 8. CTF逆向常用流程 1. file binary -> 识别架构和类型 2. strings binary -> 快速找flag/密码/提示 3. checksec binary -> 检查保护 4. r2 -A binary -> 快速分析 5. ghidra -> 深度反编译理解逻辑 6. angr -> 符号执行自动求解 7. pwntools -> 写exploit打远程 Pitfalls Ghidra需要JDK21+ — v12.x要求JDK21,低版本启动失败 radare2命令多 — 先学 aaa + afl + pdf + iz 四个就够 Frida需要root — Android必须root或用模拟器 apktool签名问题 — 重打包后必须重新签名 angr路径爆炸 — 复杂程序会卡住,加约束限制路径 pwntools架构设置 — 必须 context.arch = "amd64" 或 "i386" strace对静态链接无效 — ltrace看不到静态编译的库调用 Frida版本匹配 — frida-tools和frida-server版本必须一致 9. 新增工具速查 blutter — Flutter逆向 git clone https://github.com/worawit/blutter.git && cd blutter sudo apt install python3-pyelftools python3-requests git cmake ninja-build build-essential pkg-config libicu-dev libcapstone-dev # 从APK提取libapp.so和libflutter.so后: python3 blutter.py /path/to/arm64-v8a/ /path/to/output/ PINCE — Linux游戏逆向 (Cheat Engine替代) git clone https://github.com/korcankaraokcu/PINCE.git && cd PINCE sudo sh install_pince.sh ghidra-mcp — AI驱动的Ghidra逆向 # Ghidra MCP Server — 200+ MCP工具,让AI/LLM辅助二进制分析 # https://github.com/bethington/ghidra-mcp # 安装: 按README安装Ghidra插件 + 无头服务器 ida-pro-mcp — AI驱动的IDA Pro逆向 # IDA Pro + LLM桥接,通过MCP协议让AI直接操作IDA # https://github.com/mrexodia/ida-pro-mcp # 安装: 按README安装IDA插件
Keywords that activate this skill. Click one to copy it.

This skill does not provide trigger words.

The downloaded .skill package contains the following fields.
Field Description
formatFormat tag (skill/v1)
skill_idUnique skill ID
nameSkill name
versionVersion
descriptionDescription
categoryCategories (array)
trigger_wordsTrigger words
tagsTags
sourceSource
source_urlSource URL (this page)
exported_atExported at (set per download)
system_promptSystem prompt body
model_configModel config: provider / model / temperature / max_tokens / top_p
examplesExamples
install_guideImport guide for Coze / Dify / Claude / custom frameworks
The same skill can be exported in different platform formats.
.skill Standard format with system_prompt and model_config, ready for any agent framework Download
.skillpro Enhanced format with scripts, tools, dependencies and hooks Download
.json Plain JSON export with system_prompt and model parameters only Download
Coze Markdown with frontmatter, for Coze platform import Download
Dify Dify DSL, import directly after creating an app Download

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

验证码 --

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。