关于 frida-script-review
frida-script-review 面向准备运行公开、生成或大量修改状态的 Frida 脚本的开发者,检查平台假设、Hook 时机、修改风险和安全问题,并给出针对性调整及验证建议。
主要功能
- 01识别平台假设
- 02检查修改点和执行时机
- 03检查指针、重载和生命周期
- 04标记高风险 Hook 与日志
- 05建议修改方案和验证方式
适用场景
- 01运行生成的 Frida 脚本前进行审查
- 02将宽泛 Hook 精简到目标行为
- 03检查指针和字符串处理风险
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rudra-ravi/ frida-skills --skill frida-script-review安装后在 Claude Code 中输入/frida-script-review确认已加载。
附带文件agents/openai.yaml
详细介绍
Frida 脚本审查
运行公开、生成或大量修改类 Frida 脚本前,请使用此技能。
审查步骤
- 确认平台假设:Android、iOS、原生、桌面、Gadget。
- 确认修改点:替换返回值、重写参数、写入文件、进程控制、网络变更。
- 检查时机:spawn 与 attach、模块加载、类加载器、ObjC 是否可用。
- 检查安全性:空指针、重载、字符串生命周期、
retval副本、递归、产生大量日志的 Hook。 - 将范围过广的代码包缩减为与目标行为相关的 Hook。
风险信号
- 未确认实际触发了哪个 Hook,就盲目绕过所有检查。
- 读取原生指针时未检查空指针或长度。
- 未确认缓冲区大小,就将字符串替换到固定缓冲区中。
- 存在重载时,Java 方法 Hook 未显式指定重载。
- 未检查
ObjC.available以及类和方法是否存在,就假定 ObjC 选择器可用。 - 将
retval或参数包装对象存储起来供后续使用,而不是复制其内容。 - 日志中不必要地打印机密信息。
加固模式
修改前:
console.log("hook fired", targetName);
console.log(Thread.backtrace(this.context, Backtracer.ACCURATE)
.map(DebugSymbol.fromAddress).join("\n"));
验证后:
if (shouldPatchThisCall()) {
retval.replace(1);
}
输出
返回:
- 风险摘要。
- 要保留、移除或修改的确切代码行或 Hook 代码块。
- 更安全、经过审查的脚本或补丁。
- 验证命令和预期的验证结果。
参考资料
- Frida JavaScript API:https://frida.re/docs/javascript-api/
- Frida 故障排查:https://frida.re/docs/troubleshooting/
- Frida CodeShare:https://codeshare.frida.re/
评论
支持 Markdown