您当前的位置:首页 > 互联网教程

软件测试 丨 Frida的安装与使用

发布时间:2025-05-24 14:04:47    发布人:远客网络

软件测试 丨 Frida的安装与使用

一、软件测试 | Frida的安装与使用

1、Frida是一种强大的动态代码插入工具,通过 C语言将 QuickJS注入目标进程,获取完整内存操作权限,实现实时插入额外代码与数据的目的。Frida提供 Python库,也可直接调用其 C语言代码。

2、电脑端安装 Frida时,请确保已安装最新版 Node.js,并通过命令行执行以下命令:

3、手机端安装 Frida-server,请确保手机已连接 Wi-Fi网络,然后使用命令行执行以下命令:

4、adb shell sh-c'echo"install frida-server; source$PREFIX/paths.sh; frida-server&"'> install_frida.sh

5、验证安装是否成功,执行以下命令:

6、选择目标应用,分析其关键功能点与数据流程,确定 Hook点。

7、实现示例:修改结果变量中的值。

8、Object.defineProperty(Module._malloc,"call",{

9、 console.log("Hooked malloc call");

10、 const result= Module._malloc.call(this, size);

11、总结,Frida提供了一种强大的动态调试与监控手段,能够实现实时插入代码与数据,方便进行深入分析与调试。

二、2023frida使用教程(1)

2.逆向目标:hook接口:逆向登录参数sigin加密

设置ssl代理,在雷电模拟器WIFI设置代理,下载证书并安装证书,重启雷电模拟器

打开驾培训创业教练 APP的登录页面

输入手机号抓包,抓包结果如下:

vscode note记录抓包结果,养成好习惯!

APP未加壳,如果加壳需要先破壳,安卓逆向中最重要的就是:算法分析和脱壳

打开jadx导入APP后开始反编译搜索关键词:getSmscode双击转到代码区

这段代码就是构造请求体,包括了类型手机时间签名。其中签名是用了stringMD5toUpperCase函数来生成,

其中stringMD5toUpperCase函数又使用了yyyyMMddHHmmss+ i+ str+ str2这几个参数生成,我们不知道str是什么,所有可以使用frida进行hook!!!!!!

模板介绍:frida两种模式,我们这里使第二种。他们的区别:

-spawn模式,Frida会自行启动并注入进目标App,Hook的时机非常早自动重启设置包名

-attach模式,Frida会附加到当前的目标进程中,即需要App处于启动状态,这也意味着只能从当前时机往后Hook手动启动设置APP名

Java.use('包名.类名').方法.overload('java.lang.String')

Java.use('com.jx885.library.http.CommAction').getSmscode..overload('int')implementation=function(mi){}

3.4连接frida服务器,对app进行hook

三、Frida GUI 工具

FridaTool是一款旨在提高逆向分析效率的工具,它整合了Frida的功能,并提供了GUI界面,简化了操作流程,如自动获取应用包名、Hook类和so文件、网络监控等。以下是FridaTool的主要功能和使用方法的概述:

FridaTool通过图形化界面,极大提升了Frida的使用体验。它将Frida的命令行操作整合到一个可配置的环境中,无需频繁编写和管理Adb命令。以下是它的核心功能:

自动执行:软件启动时自动打开frida-server,获取当前手机应用的包名,减少了繁琐的命令输入。

便捷按钮:包括DumpSo、PullApk、DumpDex、ClassHook等,可以轻松Hook指定类或文件,生成Hook代码,并支持堆栈跟踪和系统调用监控。

Hook功能:如HookExport和HookAddr,可以针对so文件的导出函数和地址进行操作,自动生成对应的Hook代码。

抓包工具:内置tcpdump和jnitrace,实时监控网络通信,支持自定义抓取和分析。

调试工具:如FridaDbg和Strace,提供浏览器中的js调试和系统调用监控。

逆向分析:支持自定义Hook脚本,快速定位加密函数,如ClassHook和URL Hook功能尤其有效。

其他实用功能:如脱壳、SSL信息抓取、文件操作监控等,全面覆盖逆向分析流程。

使用FridaTool时,用户可以选择特定功能进行逆向分析,比如定位加密代码、监控网络请求,或者在Hook时查看函数参数和结果,以深入理解应用的运行逻辑。通过图形化的操作,FridaTool简化了复杂的Frida使用过程,提升了解决问题的效率。