【Frida】04_Frida中使用TypeScript脚本(采坑)

🛫 系列文章导航

🛫 导读

需求

TypeScript目前是主流,方面模块管理frida代码。
而且这也是frida官网推荐的模式,这样会给你带来更多优势,如:代码完成度更高、类型检查、内联文档、重构工具
在这里插入图片描述

ps: 合并文件的形式也可以实现模块划分,但是总感觉有点非主流,而且没有代码提示等功能。

开发环境

版本号描述
文章日期2024-03-17
操作系统Win11 - 22H222621.2715
node -vv20.10.0
npm -v10.2.3
yarn -v3.1.1
frida-compile10.2.1高版本各种异常
扫雷程序下载地址https://download.csdn.net/download/kinghzking/88979919
课程源码https://gitcode.net/kinghzking/MyOpen所在目录:/course/frida

演示目标

winmine.exe (windows xp系统附带的扫雷游戏)

  • 软件版本:5.1.2600.0

  • 软件大小:117 KB (119,808 字节)

1️⃣ 操作步骤

安装node 20.10.0

参考文章《【nvm】【node多版本管理工具】使用说明和踩坑(exit status 1) https://blog.csdn.net/kinghzking/article/details/126186648

在 VSCode 中打开项目目录

在这里插入图片描述

初始化一个 NodeJS 项目

在终端中运行以下命令:

npm init -y

安装 TypeScript

在终端中运行以下命令:

npm install typescript --save-dev

初始化 TypeScript 项目

在终端中运行以下命令:

npx tsc --init

安装依赖

安装node、frida-gum的类型声明库;安装frida-compile

npm install @types/node @types/frida-gum frida-compile@10.2.1 --save-dev

配置 TypeScript

你基本上希望你的tsconfig.json看起来像我的。 或者,有一种更紧凑的方法来实现相同的目的,只需复制粘贴以下内容:

{
  "compilerOptions": {
    "target": "es2020",
    "lib": ["es2020"],
    "allowJs": true,
    "noEmit": true,
    "strict": true,
    "esModuleInterop": true
  }
}

编写代码

创建一个名为src的目录,并在里面创建一个名为index.ts的文件。文件内容如下:

// Startup
const version = "v3.8.6"
console.log(`Launching script ${version} on FRIDA ${Frida.version}`)

// Check your environment is ready
if(Java.available){
    setTimeout(function (){
        // Execute FRIDA code here
        Java.perform(function (){
            // FRIDA code here
        });
    }, 0);
}

编译设置

package.json内容做如下调整:

  • 修改入口文件
  • 增加运行项:build、watch
    在这里插入图片描述

编译脚本

执行命令npm run build,我们将获得如下文件
在这里插入图片描述

ps: 执行命令npm run watch,将监视原有文件变化,并立刻自动编译新的index.js文件。

运行,查看结果

我们以windows环境下的扫雷程(winmine.exe)序为例:
启动扫雷,执行命令D:\Python\Python371\Scripts\frida.exe -n winmine.exe -l index.js
将显示出Launching script v3.8.6 on FRIDA 15.0.18信息,表示运行成功。
在这里插入图片描述

2️⃣ 采坑

frida-compile版本问题

小编使用官网文档提示的github代码,直接运行,生成下图所示的文件内容(各种乱码)。一开始以为是node版本问题,切换了三四个版本的node,依然各种报错。
在这里插入图片描述

后来灵机一动,修改frida-compile版本10.2.1,然后就可以正常运行了!!!

📖 参考资料

ps: 文章中内容仅用于技术交流,请勿用于违规违法行为。

  • 31
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Frida是一款免费的,基于Python和JavaScript来实现的,面向开发人员、逆向工程师和安全研究人员的动态检测工具包。 Frida拥有一套全面的测试套件,不但调试效率极高,而且在广泛的使用经历了多年严格的测试。 尤其是,移动应用安全测试和服务巨头NowSecure对齐钟爱有加,在NowSecure内部,安全人员通过Frida这个工具套装,已经完成对大量的移动应用程序大规模深度的安全分析测试。目前依然在该公司的安全测试扮演重要的角色。 基于Python和JavaScriptFrida,天生就是跨平台的动态调试工具,不但可以运行在Windows、Linux、macOS之上,而且还可以调试Windows应用程序、Linux应用程序,macOS、iOS、Andriod和QNX等几乎全平台的应用程序。可以说,一旦掌握Frida这套工具,就可以在全平台,对全平台的应用程序进行动态调试和分析。 Frida使用极其方便,在使用过程,只需将你编写的JavaScript脚本通过Frida自身的工具注入到目标进程,就可以HOOK任何功能,其包括但不限于监视加密API或跟踪应用程序关键代码等。在使用过程,无需知道被“研究”程序的源代码。 尤其是可以一边编辑JavaScript脚本,一边运行JavaScript脚本的功能对于调试分析来说极为友好。只需“保存”正在编辑的JavaScript脚本,就立即就能看到该脚本执行的结果,全称无需其它人工介入,也无需重新启动被“研究”的应用程序,极大地简化了分析流程,同时也极大地提高了工作效率。因此,得到了众多安全分析人士的青睐。 本课程从最基本的调试环境搭建开始,基于经典的Windows“扫雷”游戏的动态调试分析,编码等,循序渐进演示Firda在分析调试Windows应用程序基本使用方法和技巧。拥有这些知识储备之后,在加上官方的参考文档,你就可以轻松地将这些知识“迁移”至分析和调试其他平台的应用程序。 课程资料,请看第一课github链接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜猫逐梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值