· Droidwatch Security Research team · 7 min read · Threat Research android-malware static-analysis mitre-attack threat-research

We Ran 10 Real Android Malware Samples Through Droidwatch — Here's What Static Analysis Caught

We ran the first 10 samples from a public Android malware corpus through Droidwatch's static pipeline. 9 Malicious, 1 High Risk — here are the recurring signals

We Ran 10 Real Android Malware Samples Through Droidwatch — Here's What Static Analysis Caught

Published 2026-06-07 by the Droidwatch Security Research team


Most "how good is your scanner" posts use one cherry-picked sample. We wanted
something more honest, so we did the opposite: we grabbed 10 real Android
malware samples
off the top of a public research corpus — no curation, just
the first ten files in alphabetical order — and pushed every one of them through
Droidwatch's static pipeline. No dynamic sandbox, no manual triage, no
hints. Just the verdict the platform produces on upload.

This post is the raw result: the scores, the recurring signals, the MITRE
ATT&CK Mobile coverage, and the two samples that are more interesting than the
headline number suggests.

Reproducibility & safety. Samples come from a public Android malware
corpus (collected Feb 2021) and are referenced by SHA-256 so anyone can match
them. Droidwatch's static pipeline never executes the APK — it unzips,
parses the manifest and DEX, decompiles with JADX, and runs the rule + YARA +
ML engines. Nothing here ran on a device.


The headline

Metric Value
Samples analyzed 10
Verdict: Malicious 9
Verdict: High Risk 1
Verdict: Benign / Suspicious 0
Mean risk score 65.3 / 100 (range 49–74)
Total findings raised 446 (36 critical · 177 high · 163 medium · 39 low · 31 info)
Mean static analysis time ~94 s/app (full pipeline incl. JADX + call graph)

Ten uploads, ten flagged. That's the easy part — anything labelled "malware
sample" should trip a scanner. The useful question is why each one tripped,
and whether the reasons hold up.


Per-sample results

SHA-256 App label Verdict Score Lead finding
020cb2661836… 极游市场 (cn.ggg.market) Malicious 74 SMS Read + Send (OTP-theft pattern)
062050ed8715… Installer (google.Jk7H.PwcD) Malicious 65 Exported activity without permission
078e4e4f4f92… (manifest hidden) Malicious 65 Binary-obfuscated AndroidManifest
0aa75f0754ec… SMS Watcher Lite Malicious 66 5 dangerous permissions + SMS intercept
0ad36f46238c… NissanGo Theme Malicious 65 Overlay + dangerous permissions
14475b04ba91… Coronavirus Help High Risk 49 Exported components, weak crypto
1eebd349166e… Media Player Malicious 65 No signing certificate
21b4cafde043… Parse Error Malicious 65 Manifest parse failed (tamper)
23394c24bb53… GO SMS Pro Malicious 68 18 dangerous permissions
23cc19e8b943… VidMate Malicious 71 6 dangerous permissions + dynamic loading

A few of these names are worth a second look — GO SMS Pro and VidMate are
real, widely-installed apps that have shipped versions with serious security
problems (GO SMS Pro's unauthenticated media-link exposure; VidMate's
aggressive ad-fraud and subscription-fraud SDKs). Droidwatch doesn't care
whether an app is "famous" — it scores the bytecode in front of it.


What actually gave them away

Family labels are nice for headlines, but verdicts come from behavioural
signals
. These are the findings that recurred across the ten samples (counts
are number of samples, out of 10):

None of these is conclusive on its own — a legitimate SMS-backup app reads SMS,
a legitimate launcher draws overlays. The verdict comes from the weighted
combination
, which is why the scores cluster in the 65–74 band rather than
maxing out: the rule engine is adding up corroborating signals, not pattern-
matching a single string.


MITRE ATT&CK Mobile coverage

Every finding is mapped to ATT&CK for Mobile. Aggregated across the ten samples,
the technique frequency reads like a textbook mobile-malware kill chain:

Technique Samples Tactic
T1437 Application Layer Protocol (web C2) 10/10 Command & Control
T1406 Obfuscated Files or Information 9/10 Defense Evasion
T1533 Data from Local System 8/10 Collection
T1422 System Information Discovery 7/10 Discovery
T1432 Access Contact List 6/10 Collection
T1521 Encrypted Channel (asymmetric) 6/10 Command & Control
T1398 Boot or Logon Autostart 5/10 Persistence
T1412 Capture SMS Messages 4/10 Collection
T1417.002 GUI Input Capture 2/10 Credential Access
T1575 Native API 2/10 Execution

Ten out of ten talk to a web back-end; nine out of ten obfuscate something. That
combination — C2 + obfuscation — is the single most reliable static tell for
"this isn't a normal app."

One YARA family rule also fired: Joker / Bread matched on one sample, the
SMS/premium-billing fraud family that has repeatedly slipped past Play Protect.


The interesting one: "Coronavirus Help" (High Risk, not Malicious)

Nine samples scored Malicious; one — a 5.9 MB App-Inventor build called
Coronavirus Help (14475b04ba91…) — landed at High Risk (49). That's the
verdict engine doing its job, not failing it.

This sample is a MIT App Inventor app: its real logic lives in a runtime
interpreter, so there's far less native bytecode for the static analyzers to
chew on. What Droidwatch can see — exported components without permissions,
weak crypto, suspicious manifest posture — is enough to push it well past
benign, but not enough to assert Malicious with high confidence on static
evidence alone. A "High Risk, needs a human / dynamic run" verdict is the honest
answer there, and it's exactly the kind of case the dynamic sandbox (Android)
exists to resolve.


Per-sample deep dives

Each sample gets its own full walkthrough — the analyzers that ran, every top
finding, the score breakdown and the MITRE ATT&CK mapping:


Run it yourself

Every number above came from the default static pipeline — the same one behind
the free anonymous upload:

# Upload + analyze any APK via the REST API
curl -s -X POST https://droidwatch.app/api/upload \
  -H "X-Upload-Consent: 1" \
  -F "[email protected]" | jq -r .upload_id
# → then POST /api/analyze with that upload_id, poll /api/jobs/<id>,
#   and read the report (verdict, MITRE mapping, STIX 2.1) when done.

Or just drag an APK (or iOS .ipa) onto the homepage. Static analysis is free,
needs no account, and returns the full report — verdict, MITRE ATT&CK Mobile
mapping, YARA hits and a STIX 2.1 bundle for your SIEM — in about a minute.


Caveats, stated plainly: this was static-only analysis; the dynamic Frida
sandbox (Android) was not used. Family attribution is intentionally
conservative — Droidwatch would rather under-name a family than mislabel a
legitimate app. VirusTotal enrichment ran only where an API key was configured.
Samples are from a public 2021 corpus and may not reflect the current threat
landscape; the point of the exercise is the
process, not a benchmark claim.

Threat Research

Droidwatch's research team analyzes Android & iOS malware — banking trojans, spyware, droppers and overlay kits — and writes up the static and dynamic signals that give them away. Every post is grounded in real platform output.

Analyze your first app free — drag an APK or iOS .ipa onto the homepage for a full static report in about a minute. Get started free