0%

Frida js调试环境搭建(VSCode + DevTools)

概述

Why:兼容JavaScript、语法提示、调试功能

环境

系统:Windows 10 20H2 x64
软件:VS CodeChrome Stable 96.0.4664.45Node.js 14.17.4Frida 15.1.11

搭建

克隆仓库并安装

1
2
3
git clone https://github.com/XhyEax/frida-agent-example
cd frida-agent-example/
npm install

编写脚本

编辑index.ts,可使用import引入其他模块

注意:日志都是在Frida CLI中输出,可通过-o参数指定日志文件

开启实时编译(推荐)

1
npm run watch

监听文件变化,自动编译到_agent.js

代码提示

VSCode安装Node.jsTypeScript相关拓展即可

PS:在frida-script-agent目录下直接创建js文件,也有代码提示

*更新

建议使用PyCharm,可直接在源文件下断点,见Frida ts环境搭建(PyCharm)

调试

启动Server

注意:运行前确保已开启实时编译,不然修改不生效

使用spawnattach模式附加app,设置引擎为v8并开启调试模式。

方法一 使用npm scripts(推荐)

spawn
1
npm run spawn --pkgname=com.android.settings
attach
1
npm run attach --appname=设置

也可将上述命令添加到VSCode启动配置

方法二 命令行

spawn
1
frida -U --debug --runtime=v8 -l _agent.js -o out.log --no-pause -f pkgname
attach
1
frida -U --debug --runtime=v8 -l _agent.js -o out.log appname

成功后会在Frida CLI中输出:Chrome Inspector server listening on port 9229

DevTools附加

使用谷歌内核浏览器,按下F12打开DevTools,点击左上角的Node.js图标(或打开chrome://inspect,点击Open dedicated DevTools for Node

然后按下Ctrl + P,切换源文件。(或点击来源-节点,打开Node.js下的文件)

PS:按Esc可切换抽屉栏控制台的显示

(也可以使用VSCode附加,但是无法下断点,控制台有时也连接不上。不推荐)

主动调用方法

TypeScript

如果是使用frida-compile生成的js文件,则需要使用rpc.exports将方法导出,然后通过rpc.exports.方法名调用(附加调试的控制台和Frida CLI均可)

JavaScript

如果使用原始的js脚本,只需要加上--debug --runtime=v8参数启动,在DevToolsFrida CLI中都可以直接通过函数名调用(默认导出)

断点调试

打开DevTools,在最终文件(如_agent.js)下断点即可,可配合主动调用触发断点

参考

FRIDA 使用经验交流分享-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com