LLM-powered scanning
Targeted scans hunt for specific behaviors — exfiltration, credential theft, persistence — with an agent that reads bytecode the way an analyst reads code.
AppReagent is a reverse engineering operative for Android. It tears apart APKs, traces data flows, and pulls the mask off suspicious behavior — with receipts, not vibes.
“Scan my phone for malware, make no mistakes.”
What you get
Targeted scans hunt for specific behaviors — exfiltration, credential theft, persistence — with an agent that reads bytecode the way an analyst reads code.
Decompile APKs, disassemble smali and ELFs, grep and xref across the project, query the database with raw SQL. All the tools a human analyst reaches for.
Every finding comes with evidence: class names, method names, API calls, string constants, data-flow paths. No ghost findings. No hallucinated indicators.
How it thinks
AppReagent doesn't wander. Every investigation follows a deliberate sequence — cheap tools first, LLM calls where they earn their cost.
Decompile the APK, read the manifest, map the terrain. Know what you're dealing with before you open a single smali file.
Fast, free passes first. Pull URLs, IPs, hardcoded secrets, reflection targets, and crypto constants. Flag anything sketchy for deeper work.
Targeted LLM scans for specific behaviors. Disassemble suspicious methods, follow the bytecode, trace from entry points to sinks.
Connect findings across files. One indicator is a clue. Two correlated indicators are a pattern. Three are a verdict.
Structured markdown with the full kill chain: entry → collection → processing → exfiltration. Every claim backed by evidence.
The toolbelt
Rules of engagement
Every tool call has a theory behind it. After the result, did it confirm or bust the theory? This keeps investigations sharp and stops aimless wandering.
STRINGS and GREP are free. SCAN costs tokens. Narrow the field with static analysis before burning LLM calls on files that weren't the targets.
One indicator is a clue; three are a verdict. A single suspicious API call isn't malware — trace its callers, the data flow, and the sink before you call it.
Before you cry malware — could it be an ad SDK? Crash reporter? OTP flow? Kill the mundane explanation first, then escalate.
Three tiers, no sugarcoating: relevant = malicious, partially_relevant = suspicious, not_relevant = clean. No hedging.
“Reads SMS and the same class has a network sink — possible exfil, tracing XREFS to confirm” beats “this exfiltrates SMS.”
Get started
$ git clone https://github.com/AppReagent/AppReagent.git
$ cd AppReagent
$ make
$ ./area
Requires CMake, a recent C++ compiler, libpq, libcurl, and libssl.
Configure your LLM provider in config.json —
see config.example.json
for the schema.