frida-workflow
Skill3 starsChanged 6 months agoMITView on GitHub
Plan Frida instrumentation across Android, iOS, native libraries, desktop processes, Gadget, agents, setup, discovery, hook strategy, tracing, and skill routing.
In this repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- frida-agent-builderSkill
- frida-android-hooksSkill
- frida-anti-instrumentationSkill
- frida-codeshare-searchSkill
- frida-data-extractionSkill
- frida-gadget-injectionSkill
- frida-ios-hooksSkill
- frida-native-hooksSkill
- frida-script-reviewSkill
- frida-setup-checklistSkill
- frida-tls-pinningSkill
- frida-tools-referenceSkill
- frida-tracing-discoverySkill
- frida-troubleshootingSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. About 0 are common, 10 are distinctive, and 15 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
15
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use this as the orchestration skill before writing or running Frida instrumentation.
- Distinctive: line 15
Start with observation hooks, then move to mutation only after the target and call shape are proven.
- Distinctive: line 16
Keep hooks small, reversible, and logged.
- Very specific: line 20
Use frida-setup-checklist before hook work when host, device, version, or transport state is unknown.
- Very specific: line 21
Use frida-tools-reference when choosing between frida, frida-ps, frida-ls-devices, frida-trace, frida-discover, frida-kill, or frida-create.
- Very specific: line 22
Use frida-tracing-discovery when class, symbol, module, method, or call path is unknown.
- Very specific: line 23
Use frida-agent-builder for TypeScript agents, reusable script projects, RPC exports, packaging, and multi-script organization.
- Very specific: line 24
Use frida-native-hooks for Interceptor, NativeFunction, memory scanning, exports, imports, symbols, CModule, and hot native paths.
- Very specific: line 25
Use frida-android-hooks for Java.perform, class loaders, overloads, JNI, Android pinning analysis, and APK-backed workflows.
- Very specific: line 26
Use frida-ios-hooks for ObjC, Swift/Objective-C methods, modules, iOS pinning analysis, and rootless jailbreak constraints.
- Very specific: line 27
Use frida-tls-pinning for TLS/SSL pinning analysis and bypass work across Java, ObjC, Flutter, React Native, BoringSSL/OpenSSL, Conscrypt, …
- Very specific: line 28
Use frida-anti-instrumentation for anti-Frida, root/jailbreak, emulator, debugger, ptrace, port scan, thread-name, and integrity checks.
- Very specific: line 29
Use frida-data-extraction when the goal is observing runtime data such as HTTP, headers, tokens, JSON, crypto inputs/outputs, preferences, …
- Very specific: line 30
Use frida-codeshare-search to search CodeShare, extract scripts, review source, and convert public snippets into local agents or …
- Very specific: line 31
Use frida-script-review before running public, generated, broad, native-pointer-heavy, or mutation-heavy scripts.
- Very specific: line 32
Use frida-troubleshooting when attach/spawn fails, hooks do not fire, the target crashes, ObjC/Java is unavailable, or versions mismatch.
- Distinctive: line 44
Use spawn for early app initialization hooks.
- Distinctive: line 45
Use attach for already-running processes.
- Distinctive: line 46
Use Gadget when attach is blocked, no root/jailbreak path exists, or the instrumentation must load from inside the app.
- Distinctive: line 56
Use Frida CodeShare and public snippets as reconnaissance and pattern libraries.
- Distinctive: line 58
Prefer targeted scripts over "universal bypass" bundles once the target path is known.
- Distinctive: line 60
Keep every experiment reproducible: exact command, target version, device, Frida version, script hash or filename, and the behavioral proof …
- Distinctive: line 61
When the target has anti-instrumentation, first prove whether detection is root/jailbreak, Frida artifacts, debugger/ptrace, …
- Very specific: line 66
Keep Frida tools and remote frida-server/Gadget versions aligned.
- Very specific: line 72
Read references/frida-sources.md when the task needs current docs, version checks, or source attribution.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Frida Workflow
Use this as the orchestration skill before writing or running Frida instrumentation.
Operating Rules
- Confirm authorization and target scope before instrumenting third-party software.
- Research current Frida docs when behavior depends on version, device mode, Java bridge, Gadget, or CLI flags.
- Record the exact Frida client, server, gadget, OS, architecture, package/bundle/process id, and attach/spawn mode.
- Start with observation hooks, then move to mutation only after the target and call shape are proven.
- Keep hooks small, reversible, and logged. Prefer precise class/function hooks over broad bypass scripts.
Skill Routing
- Use
frida-setup-checklistbefore hook work when host, device, version, or transport state is unknown. - Use
frida-tools-referencewhen choosing betweenfrida,frida-ps,frida-ls-devices,frida-trace,frida-discover,frida-kill, orfrida-create. - Use
frida-tracing-discoverywhen class, symbol, module, method, or call path is unknown. - Use
frida-agent-builderfor TypeScript agents, reusable script projects, RPC exports, packaging, and multi-script organization. - Use
frida-native-hooksforInterceptor,NativeFunction, memory scanning, exports, imports, symbols, CModule, and hot native paths. - Use
frida-android-hooksforJava.perform, class loaders, overloads, JNI, Android pinning analysis, and APK-backed workflows. - Use
frida-ios-hooksforObjC, Swift/Objective-C methods, modules, iOS pinning analysis, and rootless jailbreak constraints. - Use
frida-tls-pinningfor TLS/SSL pinning analysis and bypass work across Java, ObjC, Flutter, React Native, BoringSSL/OpenSSL, Conscrypt, OkHttp, and SecTrust paths. - Use
frida-anti-instrumentationfor anti-Frida, root/jailbreak, emulator, debugger, ptrace, port scan, thread-name, and integrity checks. - Use
frida-data-extractionwhen the goal is observing runtime data such as HTTP, headers, tokens, JSON, crypto inputs/outputs, preferences, files, SQLite, or memory buffers. - Use
frida-codeshare-searchto search CodeShare, extract scripts, review source, and convert public snippets into local agents or--codesharecommands. - Use
frida-script-reviewbefore running public, generated, broad, native-pointer-heavy, or mutation-heavy scripts. - Use
frida-troubleshootingwhen attach/spawn fails, hooks do not fire, the target crashes,ObjC/Javais unavailable, or versions mismatch.
Workflow
- Define the objective: state the behavior to observe or change, expected proof, and rollback condition.
- Inventory the environment:
frida --version frida-ps -Uai frida-ls-devices - Choose mode:
- Use spawn for early app initialization hooks.
- Use attach for already-running processes.
- Use Gadget when attach is blocked, no root/jailbreak path exists, or the instrumentation must load from inside the app.
- Discover before hooking:
- Native: enumerate modules, exports, imports, symbols, and readable strings.
- Android: enumerate loaded classes/methods and confirm the correct class loader.
- iOS: confirm
ObjC.available, enumerate classes/modules, and resolve Swift symbols when needed.
- Hook minimally: log entry, arguments, return values, thread/backtrace when useful, then narrow.
- Verify: prove the hook fires with target behavior, no crash, and expected logs. Save commands and script version used.
Practitioner Playbook
- Use Frida CodeShare and public snippets as reconnaissance and pattern libraries. Read the script before running it, then copy only the hooks that match the app's actual framework/version.
- Build a hook ladder: start at high-level APIs, log stack traces/callers, then move downward into framework, JNI/native, crypto, TLS, or syscall boundaries only when evidence points there.
- Prefer targeted scripts over "universal bypass" bundles once the target path is known. Broad bundles are useful to discover likely surfaces but hide which hook actually mattered.
- For obfuscated apps, follow data instead of names: URLs, headers, byte arrays, crypto inputs/outputs, file paths, reflection calls, dynamic DEX loads, and native library loads.
- Keep every experiment reproducible: exact command, target version, device, Frida version, script hash or filename, and the behavioral proof observed.
- When the target has anti-instrumentation, first prove whether detection is root/jailbreak, Frida artifacts, debugger/ptrace, emulator/device identity, package integrity, or timing.
Current Frida Notes
- Frida 17 moved the Java runtime bridge out of GumJS; TypeScript/compiled agents may need
frida-java-bridgeas an npm dependency when bundling Java APIs. - Keep Frida tools and remote
frida-server/Gadget versions aligned. Mismatches are a common source of attach and protocol failures. retvalinInterceptor.onLeave()is recycled; do not store it for later use. Convert or copy values inside the callback.- Strings allocated with
Memory.allocUtf8String()/UTF-16 helpers must be kept alive as long as the target may use them.
References
Read references/frida-sources.md when the task needs current docs, version checks, or source attribution.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

