12 Red Team Tools Used Against Mobile Banking Apps, And What They Reveal

Most lists of red team tools are written for enterprise networks, so they cover command-and-control frameworks, credential dumpers and phishing kits. The tools used against a mobile banking app look very different. They are mostly free and well documented, and they are built for a device the attacker fully controls. That means the same toolkit a red team uses to test your app is available to the fraud ring trying to break it.
This article lists the 12 red team tools used most often against mobile banking apps on Android and iOS. For each one, it explains what the tool reveals in a banking app, what it leaves behind in your runtime telemetry and which control stops it.
TLDR
- Red teams test mobile banking apps with 12 core tools across five stages: static analysis, device compromise, runtime instrumentation, traffic interception and automated triage.
- Most of these tools are free and open source, so an attacker can use them as easily as a red team can.
- No single control stops all 12. Code hardening, runtime protection and server-side validation each close a different set of gaps.
Red team tools at a glance
The table below lists all 12 tools, the attack stage they belong to, and what they typically expose in a mobile banking app. Each tool is covered in more detail in the sections that follow.
| # | Tool | Stage | Platform | Licence | What it reveals in a banking app |
|---|---|---|---|---|---|
| 1 | jadx | Static analysis | Android | Open source | Hardcoded keys, API endpoints and client-side business logic |
| 2 | apktool | Static analysis | Android | Open source | Whether a modified, re-signed app still works against production |
| 3 | Ghidra | Static analysis | Android and iOS | Open source | Security logic hidden in native libraries and iOS binaries |
| 4 | Magisk | Device compromise | Android | Open source | Whether root detection survives root-hiding modules |
| 5 | KernelSU and SukiSU | Device compromise | Android | Open source | Whether detection misses kernel-level root |
| 6 | palera1n | Device compromise | iOS | Open source | Whether jailbreak detection holds on supported devices |
| 7 | Frida | Runtime instrumentation | Android and iOS | Open source | Whether security checks can be patched while the app runs |
| 8 | Objection | Runtime instrumentation | Android and iOS | Open source | How little effort it takes to bypass default protections |
| 9 | LSPosed | Runtime instrumentation | Android | Open source | Whether persistent hooks defeat checks that run only at launch |
| 10 | Burp Suite | Traffic interception | Android and iOS | Commercial, with a free edition | Weak pinning, broken authorisation and replayable API requests |
| 11 | MobSF | Automated triage | Android and iOS | Open source | A fast first map of an app’s weak spots |
| 12 | Emulators and Corellium | Automation at scale | Android and iOS | Free and commercial | Whether emulator detection stops device-farm abuse |
Static analysis tools
Static analysis is where almost every attack on a banking app begins. The attacker downloads the app, takes it apart without running it and builds a map of where the valuable logic and secrets sit.
1. jadx
jadx decompiles an Android app back into readable Java or Kotlin-like code.
- What it reveals in a banking app: Hardcoded API keys and secrets, the full list of backend endpoints, and business rules enforced on the device, such as transaction limits or the order of checks in a UPI flow. If class and method names are left readable, the attacker can find the root check or the device-binding routine in minutes.
- Signals it leaves: None. Decompilation happens offline on the attacker’s machine, so the bank sees nothing at this stage.
- What stops it: Code obfuscation and string encryption make the output far harder to read. Secrets should not live in the app at all where it can be avoided.
Our guide on how to prevent reverse engineering in Android and iOS apps covers these controls in more depth.
2. apktool
apktool unpacks an APK into editable resources and bytecode, then rebuilds it into a working app.
- What it reveals in a banking app: Whether a modified copy of your app can be rebuilt, re-signed and run against your production APIs. This is the first step in producing a fake banking app that looks and behaves like yours, with a payload or a disabled security check added.
- Signals it leaves: A repackaged app carries a different signing certificate and a changed file hash, which runtime integrity checks can detect when the app launches.
- What stops it: Runtime integrity and signature verification, backed by server-side checks that refuse requests from apps that fail attestation.
Our guide on preventing app repackaging explains why repackaging is so common in banking fraud.
3. Ghidra
Ghidra is an open-source reverse engineering suite that disassembles and decompiles native code, including Android native libraries and iOS binaries.
- What it reveals in a banking app: Security logic that developers moved into native (.so) libraries on the assumption that native code is harder to read, such as cryptographic routines, key derivation or root checks. On iOS, it exposes the same kind of logic in the app binary.
- Signals it leaves: None, because the analysis is offline.
- What stops it: Encrypting native libraries and hardening native code, so that the security logic is not readable even to a skilled reverse engineer with time to spend.
Device compromise tools
A banking app trusts the device it runs on more than it should. Device compromise tools give the attacker full control of that device and then hide the evidence, which tests whether your root and jailbreak detection can hold up against a determined user.
4. Magisk, with Zygisk and root-hiding modules
Magisk is the most widely used Android rooting tool. Its Zygisk layer lets modules run inside app processes, and root-hiding modules use it to conceal root from specific apps.
- What it reveals in a banking app: Whether your root detection still works once root is deliberately hidden from your app. Many detection libraries check for known files, packages and properties, and root-hiding modules exist specifically to remove or mask those traces.
- Signals it leaves: Well-designed runtime protection can still spot inconsistencies that hiding modules leave behind, such as mount anomalies or tampered system properties. A basic check will simply report the device as clean.
- What stops it: Layered root detection that looks at several independent signals, combined with hardware-backed device attestation that the attacker cannot fake from inside the device.
Our explainer on GhostLock and the limits of Android root detection shows how far these hiding techniques have gone.
5. KernelSU and SukiSU
KernelSU grants root at the kernel level rather than by modifying the system partition, and SukiSU is a community fork of it.
- What it reveals in a banking app: Whether your root detection only looks for traces of app-level rooting tools. Because kernel-based root leaves fewer of the traces that classic detection looks for, an app that only checks for Magisk-style artefacts can report a rooted device as safe.
- Signals it leaves: Detection needs kernel-aware checks and integrity signals, since file- and package-based checks may see nothing unusual.
- What stops it: Runtime protection that includes kernel-level root detection, with hardware-backed attestation as a second, independent signal.
6. palera1n
palera1n is a jailbreak for iOS devices affected by the checkm8 bootrom vulnerability, which covers a range of older iPhone and iPad models.
- What it reveals in a banking app: Whether your iOS jailbreak detection holds on a device where the attacker has full control. Because checkm8 is a hardware-level flaw, Apple cannot patch it on affected devices, so these phones remain jailbreakable regardless of the iOS version installed.
- Signals it leaves: Jailbreak artefacts such as unexpected files, writable system paths and injected libraries, which good detection checks for continuously rather than only at launch.
- What stops it: Jailbreak detection that runs throughout the session and feeds a response policy, such as blocking high-risk transactions on jailbroken devices.
Our explainer on jailbreak detection in mobile app security covers the basics of how these checks work.
Runtime instrumentation tools
Static analysis shows an attacker where the interesting security logic sits. Runtime instrumentation goes a step further and changes what that logic does while the app is running. This is where controls that look solid in a code review can fail, because the attacker can alter function behaviour, inspect values in memory and interfere with security checks without rebuilding the app.
7. Frida
Frida is a dynamic instrumentation toolkit for Android and iOS that lets a tester inject code into a running app and observe or change its behaviour in memory.
- What it reveals in a banking app: Whether security decisions made inside the app can be changed while it is running. A red team can test whether root or jailbreak checks, certificate pinning, biometric flows or transaction controls still protect the app when the functions behind them are instrumented at runtime.
- Signals it leaves: Runtime protection can detect signs of instrumentation such as injected libraries, modified functions, suspicious process behaviour or other inconsistencies inside the app’s runtime environment.
- What stops it: Anti-instrumentation and anti-hooking controls that run continuously rather than once at startup, combined with integrity checks and server-side validation for decisions that should never depend entirely on the client.
8. Objection
Objection is a mobile runtime exploration toolkit built on top of Frida. It packages common mobile security testing actions into ready-made commands, which lowers the amount of custom scripting needed to test an app.
- What it reveals in a banking app: How much of the app's protection can be bypassed using standard techniques rather than custom exploit development. A tester can quickly assess areas such as certificate pinning, local storage, runtime classes and common device-security checks.
- Signals it leaves: Because Objection relies on Frida for instrumentation, many of the runtime indicators are similar: injected components, hooked functions and changes to the expected execution environment.
- What stops it: Runtime protection that detects instrumentation and tampering, backed by controls that do not rely on a single client-side check. If a default bypass works immediately, the underlying protection is too easy to remove.
9. LSPosed
LSPosed is an Android hooking framework that allows modules to change the behaviour of applications and system components without modifying the original APK.
- What it reveals in a banking app: Whether security checks remain effective when an attacker can persistently alter Java or native behaviour inside the app process. This is particularly relevant when a bank checks device integrity only during launch, because hooks can remain active throughout the rest of the session.
- Signals it leaves: A protected app can look for evidence of hooking frameworks, unexpected modifications to its runtime environment and inconsistencies between the code that was shipped and the code actually executing.
- What stops it: Continuous anti-hooking and integrity monitoring rather than one-time launch checks, with sensitive decisions independently verified by the backend.
Traffic interception tools
Once an attacker can control the device and app runtime, the next target is the connection between the banking app and its APIs. Traffic interception tests whether an attacker can observe, modify or replay requests that should only make sense inside a legitimate banking session.
10. Burp Suite
Burp Suite is an interception proxy widely used in application security testing. A mobile device can be configured to send its HTTP and HTTPS traffic through Burp so the tester can inspect and modify requests and responses.
- What it reveals in a banking app: Whether certificate pinning can be bypassed, whether sensitive information appears in network traffic, whether APIs properly enforce authorisation and whether captured requests can be modified or replayed. It can expose cases where the server trusts parameters such as account identifiers, transaction values or workflow state simply because the app supplied them.
- Signals it leaves: Interception itself may be blocked or exposed by certificate and pinning failures on the device. If the tester begins modifying or replaying requests, the backend may also see unusual request sequences, invalid integrity signals or requests that do not match the expected session state.
- What stops it: Correctly implemented certificate pinning makes interception harder, but the stronger control is server-side validation. The backend should independently validate authorisation, transaction state and request freshness rather than assuming a request is legitimate because it came through the mobile app.
Automated analysis and testing at scale
Manual testing shows how an individual technique works. Automated tools and virtual devices let a red team repeat those tests faster, across builds, operating-system versions and device configurations. For a bank, this tests whether security controls still hold once an attacker can industrialise the process.
11. MobSF
Mobile Security Framework, or MobSF, is an automated mobile application security platform that supports static and dynamic analysis of Android and iOS apps.
- What it reveals in a banking app: A fast first map of weaknesses worth investigating further. Static analysis can flag insecure configurations, exposed components, weak cryptographic choices, permissions, embedded secrets and other suspicious code patterns, while dynamic analysis adds runtime and network observations.
- Signals it leaves: Static scanning happens away from the bank's systems and therefore produces no runtime signal. Dynamic testing may produce the same kinds of indicators as other instrumented, rooted or emulated testing environments.
- What stops it: MobSF is primarily a discovery tool rather than an attack that one control can block. The useful question is whether the issues it identifies are exploitable. Code hardening reduces what automated static analysis can find, while runtime protection and server-side validation address findings that matter once the app is running.
12. Emulators and Corellium
Android emulators and virtual-device platforms such as Corellium give security teams repeatable devices to install, instrument and test mobile apps. Instead of maintaining a large physical device lab, a red team can reproduce different environments and rerun the same tests across many configurations.
- What it reveals in a banking app: Whether the app can distinguish an expected customer environment from an automated or virtualised one, and whether that distinction actually matters to its risk controls. At scale, virtual devices can also expose security checks that behave inconsistently across OS versions, rooted environments or different device configurations.
- Signals it leaves: Virtual environments can differ from physical devices in hardware properties, device characteristics, integrity or attestation results and other runtime signals. A security system that combines several of these indicators can identify higher-risk sessions more reliably than one that checks a single emulator property.
- What stops it: Emulator and virtual-device detection can contribute to the decision, but it should not be the only defence. Hardware-backed attestation, runtime integrity checks and server-side risk controls should determine what a suspicious device is allowed to do. The response can then be proportional, such as allowing low-risk activity while requiring stronger verification or blocking a high-value transaction.
Mapping what the tools reveal to defences
The tools in this list target three different layers of a mobile banking app, so no single control can stop all of them. Resilient banking apps combine build-time hardening, runtime protection and server-side validation, with each layer covering the gaps the others leave.
| Defence layer | What it protects | Attack stages it answers | Main trade-off |
|---|---|---|---|
| Build-time hardening | Code, strings, native libraries and business logic | Static analysis and repackaging | Adds build complexity on every release |
| Runtime protection | App integrity and device trust while the app runs | Device compromise, runtime instrumentation and automation | Poorly tuned checks can add latency or flag real users |
| Server-side validation | Trust between the app and the backend | Traffic interception, replayed requests and modified apps | Needs backend changes and app-API coordination |
Build-time hardening
Build-time hardening makes the app expensive to understand before it ever runs. Obfuscation and encryption of strings and native libraries make security checks harder to locate, which raises the cost of every later stage of an attack.
Runtime protection with a response policy
Runtime protection watches the app and device during use, which matters because a banking app cannot trust the device. Each detection needs a clear response, such as blocking a high-risk transaction or alerting the fraud team, and checks must run throughout the session rather than only at launch.
Server-side validation
Server-side validation stops the bank from trusting what the device says about itself. The backend should confirm that each request comes from a genuine, unmodified app and reject reused or out-of-context requests, because any signal checked only on the device can be altered there.
Common trade-offs to plan for
Heavier runtime checks can slow budget Android phones, and aggressive detection can lock out genuine customers. A good implementation lets the bank tune responses by risk, so a root signal blocks a large transfer but still allows a balance check.
How Bugsmirror approaches this
ThreatLock is Bugsmirror's red teaming service for mobile apps. Its researchers test Android and iOS apps with the same class of tools covered in this article. Every finding comes with a proof of concept, threat modelling and remediation guidance, followed by regression testing once fixes are in place. Findings then map to a protection product for each defence layer:
- Build-time hardening: Bugsmirror Shield encrypts strings, DEX files and native libraries and decrypts them only at runtime.
- Runtime protection: Bugsmirror Defender detects more than 50 runtime threats, including root, jailbreak, emulators, hooking frameworks and repackaged apps, and can block them in real time.
- Server-side validation: Trust API Bind binds every API call to a trusted app, runtime and session, and blocks replayed requests.
Because these all sit within MASST, each red team finding becomes a lasting control at the build, runtime or API layer.
For more on choosing a runtime protection product, read our guide on how to choose the right runtime application self-protection tool.
To see what these tools would reveal in your banking app, book a free ThreatLock assessment. We will show you which defence layer needs attention first.
FAQs:
Is it legal to use red team tools against a banking app?
Ans: Only with the app owner's written authorisation, which is why every red team engagement starts with an agreed scope and rules of engagement. Unauthorised use can breach India's Information Technology Act, 2000.
Is code obfuscation enough to protect a mobile banking app?
Ans: No. Obfuscation raises the cost of static analysis, but it does not stop runtime attacks or requests sent directly to your APIs, so it needs runtime protection and server-side validation alongside it.
Should security checks run on the device or on the server?
Ans: Both. Device-side checks catch a compromised environment in real time, while server-side checks ensure the backend never relies on the device's own report of its security.
How often should a banking app be tested with red team tools?
Ans: Most banks test at trigger points such as a major release, a new payment feature or a rise in app-related fraud, alongside their regular penetration testing. Our guide on red teaming vs penetration testing for mobile banking apps explains how to choose.
How can a bank tell if these tools are being used against its app?
Ans: Only if the app reports runtime threat events, such as a compromised device or failed integrity check, to a central dashboard, so security and fraud teams see attacks as they happen.
Share this article
Help others discover this content
Don’t give fraud a way in. Secure every layer of your mobile app.
100M+
Users Protected
100+
Apps Secured
1000+
Apps Hardened