工具
frida-trace(NowSecure 声明式跟踪库)
供 Frida 代理脚本使用的 JavaScript 库,按声明式描述跟踪原生函数:每个函数都列出返回类型及输入、输出参数,参数类型包括指针、UTF-8 与 UTF-16 字符串,以及长度绑定到其他参数或返回值的字节数组,还可设置条件,例如仅在调用成功时读取输出指针。它从模块导出表或虚函数表解析函数,挂接 Frida 的 Interceptor,并为每次调用向回调传递一个事件。同一仓库中的辅助脚本可借助 libclang 从 C 头文件生成跟踪样板代码。
- 目标
- 应用 · 二进制
- 类别
- 调试与动态分析
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 它不是 Frida 自带的同名命令行工具 frida-trace。npm 上最新版本为 4.0.1,发布于 2025-06-16,与所审阅的 main 分支提交 9b92c17 一致,将该库移植到 Frida 17;2024 年 1 月发布的 4.0.0 改为 ES 模块。
- 它运行在用户自行编写、编译(例如使用 frida-compile)并加载到 Frida 可附加进程中的代理脚本里,本身没有命令行界面。支持的类型包括 bool、byte、short、int、指针、字节数组、UTF-8、UTF-16 和 C 字符串;捕获到的值是否准确,取决于用户声明的函数签名是否正确。
- 头文件工具位于 frida-trace-tools,仓库中的版本为 3.3.0,未发布到 npm;需要 Node.js 和 frida-libclang,而 README 仍按旧的 ./bin 路径调用它们。仓库附带的示例宿主程序与代理仍依赖 frida 16 和 frida-trace ^3.0.0。仓库没有测试或持续集成。
- 采用 MIT 许可。插桩所需的目标进程须是用户有权检查的进程;未提及使用 REA,本次审阅未运行任何内容。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · nowsecure/frida-trace · 修订 9b92c17
- index.js GitHub · nowsecure/frida-trace · 修订 9b92c17
- package.json GitHub · nowsecure/frida-trace · 修订 9b92c17
- frida-trace-tools/package.json GitHub · nowsecure/frida-trace · 修订 9b92c17
- example/package.json GitHub · nowsecure/frida-trace · 修订 9b92c17
- LICENSE.md GitHub · nowsecure/frida-trace · 修订 9b92c17
- https://github.com/nowsecure/frida-trace/pull/40
- https://www.npmjs.com/package/frida-trace/v/4.0.1