如何在vscode里优雅地用typescript编写FridaScript
作为一个不懂 js 的人,每次用的时候都觉得它的弱类型非常反人类,于是改用 typescript,并且 frida 完美支持 ts,本文记录一下如何优雅地在 vscode 里使用 ts 开发 FridaScript。(本质上只要支持 package.json 和 tsconfig.json 的 IDE 都可以,Windows/MacOS都可以)
一、环境准备
准备好以下环境:nodejs(npm),vscode,frida。
官方链接:https://github.com/oleavr/frida-agent-example 其实本文内容和官方链接基本是一致的,读者喜欢看官方就看官方,喜欢看本文就看本文。
二、初始化工程
需要2个文件:package.json,tsconfig.json
1 | ➜ frida-test tree -L 1 |
package.json 描述项目的 nodejs 结构,这里依赖 3 个库,用当前最新版,删掉任意一个都无法使用。
1 | ➜ frida-test cat package.json |
tsconfig.json 描述typescript 属性,不是很懂,反正这样写是可以的,全都用最新的。
1 | ➜ frida-test cat tsconfig.json |
执行命令 npm install 将项目初始化掉,整个就完成了。
三、编写typescript 脚本 或者 javascript 脚本
随便取个名字,例如 index.ts,在里面写代码可以获得typescript的自动补全。
ts 补全效果如图所示:
四、将ts编译为可被 frida 加载的 js 文件
1 | Java.perform(function () { |
(虽然这段很像 js,但它其实是ts,语法比较通用) 编译一次:
frida-compile -o _agent.js index.ts
或者使用 watcher 功能,有变更后自动编译:
frida-compile -w -o _agent.js index.ts
这里的 frida-compile 可以使用 npm install frida-compile -g ,也可以使用当前目录的./node_modules/.bin/frida-compile 。
五、使用 frida-cli 加载输出的 js 脚本
作为一个安卓选手,当然要用手机来测,省略无关步骤后:
frida -U -l _agent.js com.leadroyal.helloandroid
成功输出日志,本文完结。