We work through the app the way an attacker would: first, we pull the binary apart, watch what it writes to the device, intercept what it sends, and probe the servers it talks to.
Tokens, PINs, card data and personal records cached in SQLite databases, shared preferences, plists and logs.
TLS configuration, certificate validation and pinning. Whether traffic can be read or altered by an attacker on public Wi-Fi or a hostile network.
Login auth flows, biometric fallback, token lifetime and device binding, session persistence.
What the decompiled binary reveals: hardcoded secrets, disabled checks, and whether the app can be repackaged and re-signed to run modified.
Exported components, deep links, WebView settings, clipboard and IPC.
The endpoints behind the app carry the real business logic: transfers, limits, account data.
An Android package is straightforward to unpack and read, so hardcoded keys and debug leftovers are found relatively quickly. Android also carries the weight of the second-hand market: a large share of devices in Nigeria run older OS versions that no longer receive security patches, and an app that depends on the platform for protection inherits every one of those flaws. Exported activities, intents and backup flags can give a malicious app installed on the same phone a pathway into yours.
iOS security is tighter by default, and that is exactly why testing it matters: some dev teams assume the sandbox has done the work for them. Keychain entries stored under the wrong protection class, App Transport Security exceptions added during debugging and never removed, and sensitive data left in screen snapshots or the pasteboard all pass functional testing. On a jailbroken device, the sandbox security assumptions would fall away entirely.
We test both builds against the same MASVS profile, so the report is written as one assessment of one product rather than two disconnected exercises.
Every screen in the app is a front end to a request, and the hope is that authorization lives on the server, not the device. The binary can be hardened to a high standard and the product still broken, because an attacker with an intercepting proxy is not using your app at all; they are speaking to your API directly. In our experience, the findings that have real impact (account takeover paths, object-level authorization failures, logic abuse in transfers and limits) are located in the API layer more often than in the app itself.
For that reason the endpoints the app calls are in scope by default, tested with the same depth as our dedicated API penetration testing service. Where the same backend also serves web, USSD or agent channels, we check whether a control enforced in the app, a transaction limit or an OTP step for instance, is actually enforced on the wire.
AI analysis extends static review and test-case coverage. Senior penetration testers verify every finding at runtime, trace its impact through the backend APIs, and document the proof of concept: the request, the response, and in some cases, the screenshot. After remediation, we retest the findings as part of the engagement, and the retest reports states what was fixed and what issues remains open. The full engagement structure, from scoping through retest, is set out on our testing methodology page.
No. Most engagements run grey box: we test the release build the way an attacker would, decompiling the binary rather than reading your repository. If you can share source we will use it, because it shortens the path from symptom to root cause, but it is not a requirement.
Yes. Both builds are tested if available, and reported as one assessment, with platform-specific findings marked as such.
Yes, the endpoints the app calls are in scope by default. The app is a client; the controls that stop fraud live on the server, so a test that stops at the binary misses the half of the product attackers care about most.
We normally test against a staging or UAT build with test accounts, so customers see nothing. Where production is the only option, we agree rules of engagement, accounts, and timing in advance, and destructive testing are not included.
Send us the platforms, we will come back with a scoped plan and a timeline that fits it.