Install any skill in seconds. Free to start, no credit card required.
Get Started Free →transilienceai/mobile-security
Mobile application security testing (Android + iOS) mapped to OWASP MASVS/MASTG — static reversing (Flutter AOT, Unity IL2CPP, React Native/Hermes, native ARM64, Mach-O/Swift), SAST (manifest/IPC, storage, crypto, signing), dynamic analysis (Frida/objection, TLS-pinning + root/jailbreak bypass, traffic interception), and privacy testing.
Passed 16 of 22 test cases with the skill, and 13 of 22 without it.
and 2 more in the full report
4 fixed12 passed either way5 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
During a re-test of an Android APK, grep shows `CertificatePinner` exists in the decompiled Java code, leading the client to claim TLS pinning is fully implemented and secure. What static script or procedure should we run to verify whether this pinning control is actually attached to active network requests or merely orphaned?
| Checked | Without skill | With skill |
|---|---|---|
| Directs running the apk_control_wiring.py script to detect orphaned controls. | Missed | Passed |
| Verifies whether CertificatePinner is actively attached to an OkHttpClient instance. | Passed | Passed |
The instructions your model reads when the skill loads.
End-to-end mobile application VAPT for Android (APK/AAB) and iOS (IPA), aligned to the OWASP MASVS v2.x control groups and the MASTG testing process. Four complementary tiers:
.so/Mach-O, smali. Recover secrets, endpoints, and the crypto contract without a device.Info.plist, exported-component & IPC surface, WebView, local storage, cryptographic-primitive weakness, code-signing, and automated baseline (MobSF/apkid/apkleaks) → then manual deep-dive.Static dump first (faster, no device); dynamic is a first-class phase whenever a control can only be proven at runtime (enforced pinning, Keystore-backed keys, root reaction, IPC guards). Cross-asset stitching, scoring, and reporting are owned by sibling skills — this skill produces MASVS/MASTG-tagged findings and hands them off.
In a coverage-mode engagement (pentest-engagement mobile mode) completion is code-enforced, not narrative. Two surfaces are gated, and both are mandatory:
| Surface | File | Classes |
|---|---|---|
| The app bundle | recon/inventory/mobile-surface.json | the 15 MAS-* MASVS classes |
| The backend recovered from the bundle | <apex>-api/recon/inventory/surface.json | the ordinary OWASP API/web classes |
The second row is where the material risk has historically been. A decompiled bundle hands you the full server contract, and that surface is not browser-reachable — so it is systematically under-tested by everyone, including the app's own developers. Recovering the endpoint inventory and driving it through the API classes is not an optional extra; a bundle that yields zero endpoints is treated as a failed acquisition.
Per-class detail: reference/masvs-class-map.md. Two rules worth internalising before you write a negative:
proof_mode: runtime cannot be closed statically. Pinning and root detection are the classic traps: static analysis can prove a control is inert (a CertificatePinner built and never attached, a RootBeer that no DEX references) — raise that as a positive. It can never prove the control is effective; that needs a bypass attempt that failed, and a failed bypass is a legitimate, reportable result.proof_mode: static can never be device-deferred. No device does not excuse the manifest, the signature, the bundled dependencies, or the secrets in the artifact.lib/arm64-v8a/libapp.so / iOS App.framework), Unity (libil2cpp.so + global-metadata.dat), or React Native + Hermes (libhermes.so + index.android.bundle) — needs a runtime-aware decompiler, not just jadx.test cases passed, vs 13 / 22 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.