analysis
Analyze binaries with ghidrasql using safe, high-signal query patterns.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Analyze binaries with ghidrasql using safe, high-signal query patterns.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Apply persistent ghidrasql annotations such as names, comments, signatures, and local-variable edits.
Connect to ghidrasql sources, verify live access, and route to the right analysis skill.
Query strings, bytes, data items, memory blocks, and relocations through ghidrasql.
Manage breakpoints and patch bytes through ghidrasql — the breakpoints table and bytes single-byte UPDATE.
Decompile functions with ghidrasql and work with pseudocode, locals, parameters, and ctree pattern views safely.
Inspect code structure through ghidrasql tables for functions, instructions, blocks, CFG, loops, switches, dominators, and tail calls.
| name | analysis |
| description | Analyze binaries with ghidrasql using safe, high-signal query patterns. |
| allowed-tools | ["Bash","Read","Glob","Grep"] |
Use this skill when the user asks:
Route to:
xrefs for deeper caller/callee tracingdecompiler for concrete function interpretationannotations once a function is understood well enough to clean updebugger when triage uncovers patches or breakpoints worth inspectingre-source for a structured bottom-up campaign over the binaryGet a quick structural snapshot:
SELECT * FROM binary;
SELECT COUNT(*) AS funcs, SUM(size) AS total_bytes
FROM funcs;
Then use bounded, high-signal summaries:
SELECT name, printf('0x%X', addr) AS addr, size
FROM funcs
ORDER BY size DESC
LIMIT 20;
SELECT func_name, printf('0x%X', func_addr) AS addr, hotness_score
FROM function_metrics_scored
ORDER BY hotness_score DESC
LIMIT 20;
-- Or the ranked projection (hot_rank = DENSE_RANK over hotness_score):
SELECT func_name, printf('0x%X', func_addr) AS addr, hot_rank, hotness_score
FROM function_metrics_ranked
ORDER BY hot_rank
LIMIT 20;
Most called functions:
SELECT dst_func_name, printf('0x%X', dst_func_addr) AS addr, COUNT(*) AS caller_count
FROM callgraph_edges
GROUP BY dst_func_addr, dst_func_name
ORDER BY caller_count DESC
LIMIT 20;
String-heavy functions:
SELECT func_name, printf('0x%X', func_addr) AS addr, COUNT(*) AS string_count
FROM string_refs
GROUP BY func_addr, func_name
ORDER BY string_count DESC
LIMIT 20;
Functions calling a suspicious import:
SELECT DISTINCT src_func_name, printf('0x%X', src_func_addr) AS addr
FROM callgraph_edges
WHERE dst_func_name LIKE '%Crypt%'
ORDER BY src_func_name;
callgraph_edges, callers, callees, and string_refs over rebuilding those joins yourself.decompiler or annotations.--binary-imported PE resolve by name by default, but external
system libraries are not loaded (fast imports). If an import shows as an ordinal
or a callee to a library function is unresolved, re-import with --load-libraries.LIMITdecompiler