About frida-anti-instrumentation
A Frida skill for mobile app security analysts investigating detection of Frida, root, jailbreaks, emulators, or debugging. It emphasizes identifying the specific check and verifying narrow, targeted hooks rather than masking unrelated failures.
Key features
- 01Distinguishes failures before and after attach
- 02Logs process, file, and property checks
- 03Covers Android, iOS, and native detection points
- 04Verifies bypasses by removing hooks
Use cases
- 01Investigating an app that exits on Frida attach
- 02Finding checks that block debugging or attachment
- 03Validating a targeted bypass for a specific detection
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ rudra-ravi/ frida-skills --skill frida-anti-instrumentationAfter installing, type/frida-anti-instrumentationin Claude Code to confirm it loaded.
Bundled filesagents/openai.yaml
Details
From the project READMEFrida Anti-Instrumentation
Use this skill when the app exits, hides behavior, blocks attach, or detects Frida/root/jailbreak/emulator/debugging.
Diagnosis Order
- Prove whether failure happens before or after Frida attaches.
- Use spawn mode for early checks.
- Log exits, process checks, file checks, property checks, and native anti-debug calls.
- Identify the specific detection before bypassing it.
- Keep only narrow hooks that change the detected condition.
Android Boundaries
Java.perform(() => {
const Runtime = Java.use("java.lang.Runtime");
Runtime.exec.overload("java.lang.String").implementation = function (cmd) {
console.log("Runtime.exec", cmd);
return this.exec(cmd);
};
});
Common Java surfaces: File.exists, SystemProperties.get, Build.*, package manager queries, shell command execution, debugger checks, emulator properties.
Native Boundaries
for (const name of ["open", "access", "stat", "ptrace", "prctl", "connect"]) {
try {
const f = Module.getGlobalExportByName(name);
Interceptor.attach(f, { onEnter() { console.log(name); } });
} catch (_) {}
}
Common native surfaces: /proc, maps, task, frida, gum-js-loop, TCP port scans, ptrace, prctl, syscall, dlopen, checksum functions.
iOS Boundaries
Look for file checks, URL scheme checks, fork, ptrace, sysctl, csops, dyld image scans, suspicious library names, and jailbreak path lists.
Verification
- The app reaches the previously blocked screen or behavior.
- Logs show which detection hook fired.
- Removing the hook restores the failure.
- The final bypass does not mask unrelated errors or crash paths.
References
- Frida JavaScript API: https://frida.re/docs/javascript-api/
- Frida CodeShare: https://codeshare.frida.re/
- OWASP MASTG Frida Android: https://mas.owasp.org/MASTG/tools/android/MASTG-TOOL-0001/
- OWASP MASTG Frida iOS: https://mas.owasp.org/MASTG/tools/ios/MASTG-TOOL-0039/