Case study · Sample Analysis
Analysis of an Android Remote Access Trojan (RAT)
A mobile security analyst submits a commercially packed, obfuscated Android APK to AVL Code with one natural-language instruction. Under read-only sandbox, VT disabled and no way to unpack, entropy plus string/resource static analysis alone identifies a banking trojan/RAT targeting Huawei, Xiaomi, OPPO, vivo and Samsung — a Critical-rated full report with IOC list, deployable YARA rules and five remediation steps, usable the same day.
AVL Code · Landi N2.5-Flash (provided by AVL-Zero)· Android · 4,917,977-byte APK · overall entropy 7.72· Constraints: VT disabled · read-only sample sandbox · unpacking/depacking unavailable· Deliverable: full analysis report · IOC list · YARA rules· Threat level Critical
Session replays & reports are original records in Simplified Chinese · Built with AVL Code + the Landi model
Overview
- 01
Submission probe — entropy 7.72 nails it as a "packed APK"
You hand AVL Code the MD5-named sample: format probing says APK, string extraction measures entropy, and 7.72 plus walls of random garbage fixes the "commercial-grade packer" verdict — while predicting the unpacking route will hit walls.
- 02
Breaking through — three failed unpacking rounds, one brand string rewrites the direction
You watch Python, PowerShell and 7z all fall short; back on the built-in string engine, the brand-detection string huawei,hinova,tianyi turns the verdict around.
- 03
Evidence chains up — five malicious behaviors match five brands
Round after round of targeted sec.strings extraction surfaces fake lock screens, screen recording, camera capture, overlay windows and accessibility configs, while five brands’ icons confirm the interface-disguise capability.
- 04
Verdict and delivery — Critical report + IOCs + YARA
You receive the integrated report: RAT/banking-trojan verdict, inferred attack chain, hash and component-path IOCs, deployable YARA rules and five remediation steps.
Task for AVL Code
Help me analyze a94f85b04bafce6a961d989f46f481e8 and produce a complete analysis report covering basic information, malicious harm, main malicious behaviors, IOCs and more Prerequisites: The sample file (named by MD5) is already in the workspace and read-only; AVL Code is logged in. VT was disabled and the Python/unpacking toolchain unavailable during the session — neither blocks the main flow, which falls back to string/resource forensics after unpacking fails
Reproduction materials at the end of this article Try it yourself ↓
Submission Probe
One instruction sends the sample in. AVL Code does not run a sandbox first — VT is disabled, so it goes straight to file-format probing plus pure static analysis:
Help me analyze a94f85b04bafce6a961d989f46f481e8 and produce a complete analysis report covering basic information, malicious harm, main malicious behaviors, IOCs and moreVT disabled → switches to file-format probing + static analysis
→ File header: PK — ZIP/APK
→ Structure: an Android APK built on the Material Design 3 component library
→ Overall entropy 7.72 · 99% of printable strings are random garbage
→ Verdict: a heavily packed/obfuscated commercial-grade APK; the normal unpacking route is expected to failUnpacking and Degradation
The entropy verdict already predicted unpacking would fail, but the route has to be walked to count. Within the same instruction AVL Code tries and fails in a chain:
Help me analyze a94f85b04bafce6a961d989f46f481e8 …… (the same instruction still running, no new input)Unpacking attempts in a chain: Python → PowerShell → 7z all fail; plaintext Manifest not obtained
→ Falls back to built-in capability: repeated targeted sec.strings extraction of readable strings
→ Key strings surface: huawei,hinova,tianyi — brand-targeted detection
→ Followed to xiaomi,mi,redmi and the activity_* family of suspicious component namesResource Forensics
With the direction fixed, string extraction becomes search-by-map, and the resource directory names that survived the packer hand over the malicious capabilities one by one:
…… a complete analysis covering basic information, malicious harm, main malicious behaviors, IOCs and moresec.strings keeps extracting, and component/resource evidence chains up
→ Fake lock screen / screen recording / camera capture / phishing pages / authorization-bait activities
→ Three overlay windows · accessibility-abuse configs · privacy-bypass routes
→ Brand icons: Huawei / Xiaomi / OPPO / vivo / Samsung
→ Final pass hunts URLs and network strings: no network IOCs inside the packerVerdict and Delivery
The evidence chain closes; AVL Code archives every finding and integrates them into a report you can take straight into a ticket:
…… produce a complete analysis reportmemory.memorize archives all findings → integrates them into the full analysis report
→ Verdict: Android remote-access trojan (RAT) / banking trojan · threat level Critical
→ Attack chain (inferred): accessibility authorization bait → background listening/auto-clicking → overlay + fake lock screen → camera capture/recording → data exfiltration
→ IOCs: 3 file hashes + component paths + string traits · 1 YARA rule (fires on 5 of 10 traits)
→ Five remediation steps: hash blocklist / unpack and deep-reverse / monitor accessibility permissions / official channels only / audit installed devicesTry it yourself
Reproducing this case takes one instruction: import the sample (named by MD5) into the workspace and paste the following, or import the session to replay the full process:
› Help me analyze <sample MD5> and produce a complete analysis report covering basic information, malicious harm, main malicious behaviors, IOCs and more - VT disabled, read-only sample sandbox and no unpacking — none of these three constraints breaks the main flow: AVL Code automatically degrades to string/resource forensics when unpacking fails; on replay, whether unpacking tools are available only changes the intermediate path, not the final deliverable. If your threat-intel channel is available, you can add a lane of online corroboration. The session export is the summary variant (tool calls folded into counts); component and resource details live in the report.pdf published with the case.
Next question: The report lists "extract the original DEX from the packer for deep reversing" as remediation step 2 — the natural next task is obtaining the unpacked DEX, recovering C2 communication and the exfiltration channel, and upgrading these string traits into network-layer IOCs.
