概述
前文使用的是VSCode
和DevTools
,需要在两个应用间切换,且需要查找最终位置再下断点,比较麻烦。
于是搭建PyCharm
调试环境,可直接在源文件(ts和js)下断点
环境
系统:Windows 10 20H2 x64
软件:PyCharm Professional 2021.2.3
、Node.js 14.17.4
、Frida 15.1.11
过程
克隆仓库并安装
1 | git clone https://github.com/XhyEax/frida-script-agent |
使用PyCharm
打开该目录
安装插件
按Ctrl+Alt+S
打开插件页面,搜索并安装 Node.js
插件
编写脚本
编辑index.ts
,可使用import
引入其他模块
开启实时编译(推荐)
1 | npm run watch |
监听文件变化,自动编译到_agent.js
调试
启动Server
注意:运行前确保已开启实时编译,不然修改不生效
方法一 npm scripts(推荐)
spawn
1 | npm run spawn --pkgname=com.android.settings |
attach
1 | npm run attach --appname=设置 |
也可添加为PyCharm
启动配置,指定Arguments
方法二 命令行
添加--debug --runtime=v8
启动参数,附加到app
成功后会在Frida CLI
中输出:Chrome Inspector server listening on port 9229
添加配置
添加调试器配置Attaching to Node.js/Chrome
,配置默认即可,可勾选自动重连
PS:旧版本Frida
可能需要选择Node.js < 8 started with --debug
附加
运行新增的调试器配置,连接成功后,可以在Scripts
看到相应的脚本文件
断点调试
在源文件下断点调试即可,主动调用同前文,使用rpc.exports
导出函数
注意:如果js脚本并未使用frida-compile
编译成目标文件,则需要使用DevTools
调试,无法使用PyCharm
。