frida-17 — Claude Code skill: Frida 17 script compatibility
Checks and fixes Frida scripts for Frida 17.0.0, flagging removed APIs and naming the replacement. Useful when migrating from older versions.
npx skills add yfe404/frida-17-skill --skill frida-17 -a claude-codeWhat frida-17 does
This skill tracks what broke in Frida 17.0.0 (May 2025). The static Module methods are gone: Module.findBaseAddress, Module.getBaseAddress, Module.findExportByName and Module.enumerateExports no longer run. You go through Process.findModuleByName or Process.getModuleByName and then call methods on the module itself — lib.base, lib.findExportByName('open'), lib.enumerateExports(). Static Memory methods went the same way; reads and writes now hang off the pointer: ptr.readU32(), ptr.writeU32(value).
Naming is the other trap. hexdump, ptr and NULL belong to Frida, so a custom function hexdump(ptr, len) dies with TypeError: cannot define variable 'hexdump'. The skill suggests dumpHex instead. It also catches toUInt32(), which never existed — for sizes under 2^31 use toInt32(). The callback style for module enumeration (onMatch/onComplete) and enumerateModulesSync() are removed, and Process.enumerateModules() hands back an array directly.
A 10-point checklist covers script review, plus working patterns: polling for a library with setInterval, hooking libc through Interceptor.attach, a custom hex dump. The Java Bridge is unchanged, but a Java byte[] cannot go straight into writeByteArray() — you loop over the bytes. Java hook examples use .overload() and walk .overloads.
What it helps with
- port an old Frida script to Frida 17
- find removed static
ModuleandMemorymethods - swap
Module.findExportByNamefor module instance methods - fix
TypeError: cannot define variable 'hexdump' - convert a Java
byte[]to hex withoutwriteByteArray()
Example prompts for the agent
- check my Frida script for Frida 17 compatibility
- why does
Module.findBaseAddress('libriver.so')fail in Frida 17 - refactor my libc hook for Frida 17
How to install frida-17
1Skills CLI (Vercel)
npx skills add yfe404/frida-17-skill --skill frida-17 -a claude-code2Manually: put the files in place
~/.claude/skills/frida-17/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/frida-17/
1Skills CLI (Vercel)
npx skills add yfe404/frida-17-skill --skill frida-17 -a codex2Manually: put the files in place
.agents/skills/frida-17/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add yfe404/frida-17-skill --skill frida-17 -a cursor2Manually: put the files in place
.cursor/skills/frida-17/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install yfe404/frida-17-skill frida-172Manually: put the files in place
.github/skills/frida-17/SKILL.md1Skills CLI (Vercel)
npx skills add yfe404/frida-17-skill --skill frida-17 -a gemini-cli2Platform CLI
gemini skills install https://github.com/yfe404/frida-17-skillManually: put the files in place
.devin/skills/frida-17/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add yfe404/frida-17-skill --skill frida-17 -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about frida-17
How do I install frida-17 in Claude?
Run npx skills add yfe404/frida-17-skill --skill frida-17 -a claude-code. The skill lands in ~/.claude/skills/frida-17/SKILL.md.
What does frida-17 do?
It checks Frida scripts against Frida 17.0.0 and supplies replacements for removed APIs. It covers Module, Memory, Process and name conflicts.
What changed in Frida 17?
Static Module and Memory methods are gone, along with the callback style for module enumeration and enumerateModulesSync(). The names hexdump, ptr and NULL are reserved for built-ins.