2023frida使用教程(1)

2023frida使用教程(1)
最新回答
达阳云

2023-12-11 22:35:25

1.使用材料:

(Windous10)pc

Python3环境

雷电模拟器

frida16.0.9(hook框架)

vscode

Charles(抓闭蠢包)

APP(驾培训创业教练)未加固

jadx4.1

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

3.详细逆向过程:

3.1抓包

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

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

打开抓包工具

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

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

3.2反编译app搜索逆向关键词

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

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

代码审计:

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

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

3.3编写hook代码

目录如下:

我们直接使用模板frida

python模板

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

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

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

js模板:

结合早竖反编译Java代码编写:

补充:java方法的重载

什么是重载?

几个相同的函数,参数不相同

该怎么hook呢?

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

例如:

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

完整代码:

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

终端命令:

端口转发

运行

结果如下:

补充:grpc直接调用