Application security feature

Mobile app shielding

Otukan app shielding combines obfuscation, tamper resistance and runtime checks, matched to your threat model and built into your existing release pipeline.

  • Android
  • iOS
  • Flutter
  • React Native
Reverse engineering is met at the static and runtime boundary before it reaches the appReverse engineeringStatic and runtimeYour app
  • Layers that reinforce

    Obfuscation hides the checks, integrity checks notice when they are removed, and runtime checks watch the live app. Each layer closes a gap the others leave.

  • Built into your release

    Shielding fits your existing build, signing and store delivery. Your keys stay with you and your crash reports stay readable.

  • Proved on your build

    Every layer is tested against static and dynamic analysis on your own signed build, with a clean run on legitimate devices.

What shielding stops attackers doing

Pick a threat to see how Otukan detects it, how your app responds and what your team receives.

Reading decompiled code

  1. Detect

    Analysis happens offline, so Otukan acts first: renamed identifiers and restructured control flow leave a decompiler little that explains itself.

  2. Respond

    Your algorithms, checks and business rules take much longer to understand and reuse.

  3. Report

    Your team keeps a private mapping for each release, so its own stack traces stay readable.

Extracting strings and endpoints

  1. Detect

    Otukan stores endpoints, keys used for lookups and configuration in protected form, decoded only when the code needs them.

  2. Respond

    A text search of the package no longer maps your backend or feature flags.

  3. Report

    Protected material is listed per release, so your team knows what is covered.

Repackaged copies

  1. Detect

    Integrity checks compare code, resources and signing identity with the release you shipped.

  2. Respond

    Observe, warn, restrict or terminate, as your policy sets for each flow.

  3. Report

    A tamper signal reaches your backend with the request it concerns.

Hooking and instrumentation

  1. Detect

    Runtime checks detect instrumentation frameworks and injected code inside the app's process.

  2. Respond

    Sensitive steps such as login or payment follow the action you chose.

  3. Report

    Runtime threat signals go to your backend and security team.

Debuggers and compromised devices

  1. Detect

    Otukan recognises attached debuggers, emulators and rooted or jailbroken devices, with checks built for each platform.

  2. Respond

    Allow in test builds; restrict or step up authentication in production.

  3. Report

    Device and session context is recorded for investigation.

What Otukan shielding combines

One shielding profile per app, assembled from controls that each cover a different attack.

  • Code obfuscation

    Renames identifiers and restructures code so decompiled output stops explaining your business logic.

  • String and resource protection

    Keeps endpoints, messages and embedded configuration out of reach of a simple text search of the package.

  • Anti-tampering

    Confirms the running app's code, resources and signing certificate match the release you shipped.

  • Repackaging detection

    Spots copies of your app that were modified, re-signed with another certificate and distributed outside your channels.

  • Runtime self-protection

    Detects debuggers, instrumentation and modified operating systems inside the running app, with a response policy you choose.

  • Hooking detection

    Detects code injected into the app's process to read or change what individual functions do.

  • OS integrity signals

    Tells your app when the operating system no longer enforces the platform's normal security model.

  • Signals to your backend

    Sends runtime results with login and transaction requests, so your server makes the final decision.

You choose the response

Set a response for each user flow. Start by observing, then tighten flow by flow as the signals prove themselves.

Observe

Signal sent to your backend

Rolling out a new policy and measuring real-world signals.

Warn

This device looks modified. Continue with care.

Conditions some genuine users create, such as developer settings.

Restrict

Payments are unavailable on this device.

Payments, stored data and account changes.

Terminate

Session closed for your security.

Clear tampering on a high-risk flow.

How Otukan shielding works

  1. Map the threat

    We start from what an attacker gains from your app, not from a feature list.

  2. Build the profile

    Choose the static and runtime controls for each platform and each sensitive flow.

  3. Ship as usual

    Shielding runs inside your existing build and release pipeline; signing keys stay with your team.

  4. Prove it

    Test the protected build against static and dynamic analysis, then on legitimate devices.

  5. Act on signals

    Runtime and integrity signals reach your backend, where your policy decides.

Free for app publishers

Check your app's exposure

A passive review of your published app by an Otukan engineer. No files, no access to your systems. Findings go by email to the verified publisher.

You finish the request on the next page.

Most mobile apps need static and runtime protection working together, and Otukan shielding delivers both in one profile. Static protection makes the shipped package hard to read and change: obfuscated code, protected strings and built-in integrity data. Runtime checks notice when the running app is debugged, hooked, modified or placed on a compromised device, and apply the response you choose. The right mix depends on what an attacker gains from your app, so Otukan starts from your threat model rather than a feature list. Android and iOS each get controls built for that platform, proved on your own signed build.

For runtime mechanics, see mobile RASP.

Shielding layers

Each layer answers a different attacker question. Obfuscation decides how long it takes to understand your code. Tamper resistance decides whether a changed copy goes unnoticed. Runtime checks decide whether someone can watch or change the app while it runs.

LayerWhat it stops attackers doingWhen it actsHow Otukan strengthens it
ObfuscationReading logic, algorithms and endpoints from decompiled codeBuilt into the package, with no runtime switch to turn offHides the integrity and runtime checks, so they are hard to find and remove
Tamper resistanceShipping modified code or resources, or re-signing your appIntegrity data built in, checked while the app runsRepeats checks before sensitive steps, not only at launch
Runtime checksDebugging, hooking, emulation, rooted or jailbroken devicesWhile the app runs, at launch and before sensitive stepsSends signals to your backend, so the decision is made where the attacker cannot patch it

The layers are designed to reinforce each other. Obfuscation makes runtime checks hard to locate. Integrity checks notice when someone strips those checks out and re-signs the app. Runtime checks catch attacks on the live process that no static protection can see. Together they turn quick analysis into slow, costly work.

Choosing a mix

A content app with no account data may need little beyond platform defaults and obfuscation. A banking or payments app usually needs all three layers, with runtime signals sent to the backend. A government or identity app often adds data protection on the device. Otukan builds one profile per app and adjusts it as your risk changes. For a comparison of the two approaches, see app shielding vs RASP.

Deployment fit

Shielding only works if it ships with every release. Otukan fits the pipeline you already run, and we agree each touchpoint with your team before the first protected build.

TouchpointAndroidiOSHow Otukan handles it
Build inputAndroid App Bundle or APK, DEX after R8, native libraries per ABIXcode archive or IPA, Mach-O executable, embedded frameworks and extensionsProtects the artefacts you ship, including Flutter and React Native framework code
SigningWith Play App Signing, Google holds the app signing keyApple re-signs App Store builds for distributionIntegrity checks expect the certificate or team identifier your users actually receive
Crash reportingR8 mapping files for deobfuscationdSYM files for symbolicationEach protected release comes with its own private mapping, so stack traces stay readable
DeliveryGoogle Play, managed enterprise channels, device makers’ storesApp Store, TestFlight, custom and enterprise distributionEach channel’s build is protected and tested
VariantsFlavours and build typesSchemes and configurationsDebug and internal builds are kept free of checks that would block your testers

Your signing keys stay in your hands. Otukan does not ask for them, because a shielding step that needs your private key widens the set of people and systems able to publish your app. For platform detail, see Android app security and iOS app security.

Validation

Otukan proves every layer on the build your users will receive. We run the plan with your team in an authorised lab, and record what each test shows.

  1. Static analysis. Decompile or disassemble the protected build with common public tools and compare how much logic, naming and string content remains readable against the unprotected build.
  2. Integrity. Modify a resource, re-sign the package with a different certificate, install it and confirm the expected tamper signal.
  3. Dynamic analysis. Attach a debugger and an instrumentation framework, on a rooted or jailbroken test device where relevant, and confirm each runtime check fires with the response you chose.
  4. Negative control. Run the same user journeys on a legitimate, supported device and confirm nothing fires for real users.
  5. Regression. Run install, update, sign-in and your most sensitive flow on the protected build, and compare launch time and size with the unprotected build.

Every result is recorded with OS versions, devices, expected and actual outcomes and the reviewer. Attackers adapt their tools, so Otukan treats validation as a repeatable part of each release rather than a one-off sign-off.

The mobile app security evaluation checklist lists the questions to cover. For the wider protection model, return to mobile app security. If your app is already published, start with a free App Exposure Check of the public store release.

Common questions

  • Is app shielding the same as RASP?

    RASP is one part of shielding: the checks that run inside the app while it executes. Otukan shielding also includes static protection built into the package, such as obfuscation and integrity data. Most threat models benefit from both, because static protection slows analysis of the package and runtime checks catch attacks on the running app.

  • Can Otukan shield an app that is already published?

    Yes. Shielding becomes part of your next build, and the protected build reaches users as a normal store update. Before that release we agree with your team how shielding meets your pipeline, your signing and each store channel, and we confirm on the protected build that installs, updates and crash reporting behave as expected.

  • Does shielding slow the app down?

    Every check has a cost, so Otukan lets you choose where protection runs: heavier techniques on the code and flows that matter, lighter ones elsewhere. We measure launch time, key journeys and app size on your protected build against the unprotected one, on your devices, before you release.

  • Which layer should we start with?

    Start from what an attacker gains. If the risk is copied logic or exposed endpoints, lead with obfuscation. If modified copies are circulating, lead with integrity checks. If the risk is fraud through hooked or automated sessions, lead with runtime checks linked to your backend. Otukan combines all three in one profile as your needs grow.

On the mobile engineering team?

How protection fits your build, signing and release, platform by platform.

Shield your app before attackers study it

Tell us the platform, the app framework and the attack you most want to make harder, such as reverse engineering, repackaged copies or hooked sessions. We do not ask for binaries, signing keys or production credentials.

Or request a technical demo