Application security feature

Anti Frida

Otukan anti Frida detects instrumentation agents in your Android or iOS app, acts before a sensitive step completes and tells your backend what it saw.

  • Android
  • iOS
  • Flutter
  • React Native
Instrumented app session is met at the instrumentation checks boundary before it reaches the appInstrumented app sessionInstrumentation checksYour app
  • Every arrival route

    An agent can attach to a running app, start with it or ride inside a modified copy. Otukan looks for it along each route.

  • Checked where it counts

    Instrumentation checks repeat just before the steps you name, so a script attached after launch still meets a check.

  • Quiet for your own code

    Validation runs with your crash, analytics and test tooling switched on, so enforcement targets instrumentation and leaves your SDKs alone.

Instrumentation routes Otukan covers

Choose a route to see how Otukan notices the agent, how the app reacts and what reaches your backend.

Attach to a running session

  1. Detect

    Otukan notices an agent loaded into the process after launch, the route attackers use on rooted Android devices and jailbroken iPhones.

  2. Respond

    The current flow follows your policy, from recording the signal to closing the session.

  3. Report

    Your backend receives an attach signal with the next request the session sends.

Launched under instrumentation

  1. Detect

    Checks that run before your first screen find an agent that was present from the moment the process started.

  2. Respond

    Sensitive screens stay closed until the environment is clean.

  3. Report

    The launch result is held and sent with the first authenticated request.

Agent embedded in a copy

  1. Detect

    Otukan pairs instrumentation checks with signature checks, catching an agent packaged into a re-signed copy that runs on an unmodified device.

  2. Respond

    The copy is refused access to sign-in and payment flows.

  3. Report

    The signal carries both findings: foreign agent and unexpected signing identity.

Scripted return-value changes

  1. Detect

    Otukan verifies that protected functions on the paths you mark still start with the instructions you shipped.

  2. Respond

    The protected step is refused before a rewritten function hands back a forged answer.

  3. Report

    Your security team sees which protected path was targeted.

Agent control channel

  1. Detect

    Otukan recognises the threads and communication endpoints an instrumentation agent opens to receive its script.

  2. Respond

    The app applies the response you set for the flow in progress.

  3. Report

    The channel finding is reported per platform for trend analysis.

Controls that work alongside anti Frida

Instrumentation is one step in a longer attack, so these controls share its signals and its response policy.

  • Hooking detection

    Extends interception checks to method replacement and symbol redirection, whichever toolkit put them there.

  • Anti-debugging

    Catches a debugger attached to a release build, often the first tool used to find functions worth scripting.

  • Code obfuscation

    Renames and reshapes the code an attacker reads to decide which function to target with a script.

  • Threat response

    Sets observe, warn, restrict or terminate per check and per flow, so instrumentation meets a decision you designed.

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 it works

  1. Mark sensitive paths

    Name the flows and functions where a changed return value would cost you most.

  2. Protect the release

    Otukan fits your existing build and release pipeline, and signing keys stay with your team.

  3. Check before each step

    Instrumentation checks run at launch and again before each marked step.

  4. Tell the server

    The signal and the route it detected travel with the request they concern.

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.

Frida is a widely used dynamic instrumentation toolkit: it places an agent inside a running app and rewrites functions from a script. Evaluate anti Frida protection by what happens when an instrumented session tries to change an outcome. Otukan detects the agent whichever way it arrived, attached to a live process, present from launch or packaged into a modified copy, and acts before the sensitive step completes. Your backend receives the signal with the request it concerns. Checks are built and tested separately for Android and iOS. Instrumentation becomes slower, costlier and visible, and your server keeps the final decision.

For the wider integrity picture, return to application integrity.

How Otukan recognises instrumentation

Instrumentation leaves three kinds of evidence, and Otukan treats each as its own signal, so your team knows what was found rather than receiving a single yes or no.

Injected agent libraries

Before a script can do anything, its agent has to be inside your process. Otukan inspects what is loaded there while the app runs. On Android and on iOS the agent reaches the process by different routes, and the checks follow each platform’s route.

Intercepted functions

The agent’s purpose is interception: redirecting a function so the script runs first and decides what the caller sees. Otukan confirms that the functions you mark as sensitive still begin with the code you shipped, so a login check, a licence test or a price calculation cannot be quietly rewritten.

Runtime leftovers

A working agent needs threads, memory and a channel to receive its instructions. Those leftovers remain visible even when the agent tries to hide its library, and Otukan looks for them as independent evidence.

SignalWhat Otukan examinesAndroid routeiOS route
Agent in the processCode loaded into the app at runtimeAttached on a rooted device, or packaged into a re-signed APKAttached on a jailbroken device, or packaged into a re-signed bundle
Rewritten functionEntry instructions of marked functionsNative and managed code pathsNative, Swift and Objective-C paths
Control channelThreads and endpoints the agent opensChecked within the app’s own processChecked within the app’s sandbox

Where the check fires

Detection at launch alone leaves a gap, because an agent can attach at any moment. Otukan ties its checks to the steps where a rewritten answer does damage.

FlowObservable eventWhen Otukan checksWhat your backend receives
Sign-inCredentials submittedBefore the request leaves the appInstrumentation signal with the login request
Payment approvalApproval confirmed by the userImmediately before approval is sentSignal and route with the approval
Entitlement or licencePremium feature unlockedBefore the feature opensSignal with the entitlement request
Key useStored key read for signingBefore the key operation runsSignal with the signed request

Pick the events that matter

Start with the flows where a single changed return value turns a refusal into an approval. Name the event your server sees for each one. That event is where Otukan’s check should sit and where its signal should travel.

Let the server decide

A decision taken only on the device can be scripted away. Because the instrumentation signal accompanies the request, your server can refuse an approval that came from an instrumented session even if the app itself was silenced.

Proving the policy

A good anti Frida rollout proves two things: instrumentation is caught, and legitimate code is left alone. Otukan runs this validation with your engineers before a protected release ships.

Observe first

Release with the observe response on your chosen flows. In an authorised lab, instrument a test build through each route and confirm the expected signal reaches your backend with the right request. Nothing changes for users while you measure.

Your SDKs stay quiet

Crash reporters, analytics, performance monitors and UI automation also touch the runtime. Run the same journeys with them switched on and confirm that none of them trigger an instrumentation signal. Record any that do and tune before enforcing.

Enforce flow by flow

Move one flow at a time to restrict or terminate, repeat the instrumented tests and confirm the user sees a clear message. Then repeat install, update, sign-in and the sensitive flow on a legitimate device to confirm nothing regressed.

Evidence you keep

Each run is recorded with devices, OS versions, expected results and the reviewer, so the policy you enforce is one you have seen working.

Evaluation questions for buyers are covered on the anti Frida solution guide. Modified toolkit builds are covered on detecting modified Frida builds.

Common questions

  • Can an attacker script around anti Frida checks?

    A skilled attacker can study any check that runs on a device they own, which is why Otukan does not rely on one. Checks run at launch and before each marked step, look for the agent along several routes and report to your backend. Silencing one check on the device still leaves the others running and a server that expects to hear from them.

  • Does anti Frida cover other instrumentation toolkits?

    Otukan detects instrumentation by what it does to your process: loading an agent, opening a control channel and rewriting functions. Those behaviours are shared by the widely used toolkits and by modified builds of them, so the checks do not depend on a single tool's name or file layout. Neighbouring hooking and debugger checks add further evidence.

  • Will our security testers be blocked?

    Only if you want them to be. Internal and QA builds can run with an observe-only protection profile, so testers see which checks fire without losing access. Penetration testers working on a protected release can be given a build scoped for that engagement, and their findings help you tune the policy before customers meet it.

  • Is the Android behaviour the same as iOS?

    No. The routes an agent takes into an app differ between the two platforms, and so does what an app is allowed to inspect. Otukan builds and tests its instrumentation checks separately for Android and iOS, and reports each signal with the platform it came from, so your team never has to assume one behaves like the other.

On the mobile engineering team?

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

Keep scripts out of your critical flows

Tell us your platforms, your app framework and the flow an instrumented session must never finish, such as payment approval or an entitlement check. We never ask for binaries, signing keys or production credentials.

Or request a technical demo