上周末更新我开发的 VSCode 扩展,顺便帮 frida 修了个 bug,突然发现近期的 frida 增加了一些新命令。
目前还没看到其他文章有介绍,来凑数一下。
frida-apk
这个命令来自 10 个月前 @meme 贡献的 Pull Request
https://github.com/frida/frida-tools/pull/68/files
patch 指定路径 apk,将其改为可调试。使用方法
frida-apk sample.apk
frida-compile
这个命令有用过 TypeScript 编写复杂 frida agent 的用户不会陌生。
有了 frida-compile 之后可以用 ECMAScript 里的 import / export 来更好地组织模块,并提供一些兼容 Node.js 核心 API 的接口,如 frida-fs,frida-process,frida-http 等。
不过此前的版本是 Node.js 的,需要安装 node 和 npm。上个月大胡子叔叔用 python 重写了一遍:
https://github.com/frida/frida-tools/commit/41120d46ae57e3cac60b2a80bc91eb65c3e4d323
frida-push, frida-pull
这两个命令顾名思义对应 adb push 和 adb pull,用来给设备上传和下载文件。当然 adb 仅支持 Android,而 frida 则可以支持更多的设备,而且不需要配置 SSH。
frida-ls, frida-rm
顾名思义分别是列目录和删除,同样支持 iOS 而且不需要配置 SSH。
最后是广告时间。介绍一下我写的扩展的新功能。
VSCode 单步调试 frida 脚本
虽然我个人更喜欢随手 print,既然都做成 VSCode 插件了,不如物尽其用。
为了使用调试器,需要在 VSCode 中打开工作区和对应的 js 文件。首先在选取目标右键,选择创建调试器配置:
这一步可以根据需求继续自定义命令行参数,也可以直接确定。插件会自动将当前活动的 js 脚本路径加入参数中。
回车之后会在工作空间里创建对应的 tasks.json 和 launch.json 配置文件。F5 即可开始单步调试
断下断点的效果:
syslog 日志
右键目标然后选查看调试日志
抄袭了一下 idevicesyslog 的代码,移植到 python 了。因为原理是读取 lockdown,目前只支持 USB 连接的 iOS 设备。
如果是 Android,则是直接包装调用 adb logcat 命令。
在 VSCode 插件市场搜索 Frida Workbench 即可。