Skip to main content

Reading analysis.json

Kong’s JSON output has three top-level sections:

binary — metadata

This comes from Ghidra’s analysis and tells you what you’re looking at.

stats — aggregate results

Key fields:
  • renamed — functions where Kong chose a new name (the interesting ones)
  • confirmed — functions where Kong agreed the existing name was already correct
  • signature_matches — functions identified by signature matching without LLM analysis
  • skipped — functions too small (trivial/thunk) to analyze

functions — per-function results

Each function in the array includes:

Confidence tiers

Kong reports confidence as a percentage (0-100) per function, then aggregates into three tiers:
These thresholds are provisional and may be recalibrated in future versions.

Classification categories

LLM-assigned classifications

During analysis, the LLM classifies each function by purpose:

Triage size classifications

Separately, during triage, functions are classified by size: These determine which functions enter the analysis queue. The size classification appears in kong info output; the LLM classification appears in the analysis results.

Source export

The source format groups functions by classification and annotates each with a JSDoc-style comment including name, description, confidence, classification, and address. This is designed to be readable as a standalone document — you can skim the annotated source to understand the binary’s functionality without loading it in Ghidra.

Obfuscation indicators

If a function was deobfuscated, the obfuscation_techniques field lists what was detected (e.g., ["cff", "bogus_cf"]), and deobfuscation_tool_calls shows how many tool invocations the LLM used during the agentic deobfuscation loop.

Variable renames and struct proposals

In the full analysis output, each function may also include:
  • variables — a list of renamed local variables (local_10buffer, param_1request)
  • struct_proposals — proposed struct definitions inferred from pointer access patterns, which feed into type recovery

Further reading

Last modified on March 20, 2026