Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add yfe404/frida-17-skill --skill frida-17 -a claude-code
Open on GitHub

What 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 Module and Memory methods
  • swap Module.findExportByName for module instance methods
  • fix TypeError: cannot define variable 'hexdump'
  • convert a Java byte[] to hex without writeByteArray()

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-code

2Manually: put the files in place

~/.claude/skills/frida-17/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/frida-17/

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.

Similar skills

Everything for Mobile →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor