安卓逆向——Frida hook java层

各位爱好安卓逆向的大佬们早上好,今天呢小弟不才在这里拙劣的给大家讲解一下咱们frida hook java层,望不嫌弃!

目录

1、分析目标app程序

2、编写hook代码

3、运行命令开始hook

分析目标app程序

首先呢我们来了解一下分析目标app程序一个目的。为什么要去分析目标app代码逻辑呢?原因是我们要找到hook的具体类以及方法名,参数等这些基本信息,这样才能达到我们的hook目的。

编写hook代码

编写hook代码的时候,我们此处列举了:
A、普通方法
B、构造方法
C、重载方法
D、构造对象参数
E、修改对象属性
我们把这个五个方法作为本次的案例。
注:填写包名、类名、方法名、参数列表、参数类型等

我们上面这些步骤都完成以后呢,我们就可以输入我们的hook命令,然后启动程序触发,hook成功显示,我们来分析目标程序,这里我打开jadx-gui工具,在我们的onClick点击事件里面,发现了5个分支,这五个分支就是走5个不同逻辑,但是这5个分支都在调用的时候,用了一个utils,这样一个类,在调用的时候也传入了相关的一些参数。
安卓逆向——Frida hook java层

那么我们先分析一下utils该类,该类有五个方法定义。
安卓逆向——Frida hook java层

分别有int型参数,也有string类型参数,那么该类参数被调用的时候传入相应的一些参数,那么最终我们要hook的就是utils这个类,以及当前程序的一个包含和utils这个类,以及方法名这些参数我们都是要牢牢记住的,还有我们的参数列表以及我们的一个参数类型。

我们分析完了之后,接着我们要进行一个代码的编写,我们列举了五种代码的编写。

安卓逆向——Frida hook java层
我们在该代码里面一定要填写我们的包名以及具体的一些类名。填入类名结束之后,我们要传入a和b两个参数。参数也是根据相对应的参数进行在这里填写的,填写完下面进行打印,两个参数打印完毕以后返回值为5和8两个int型,源程序是2000和5000

安卓逆向——Frida hook java层
安卓逆向——Frida hook java层
安卓逆向——Frida hook java层
安卓逆向——Frida hook java层
五个方法编写完毕之后在该程序的最下面一定要去填写我们的目标app的一个包名。
安卓逆向——Frida hook java层
编写完成之后我们需要进行一个结果的验证,

启动我们的模拟器

安卓逆向——Frida hook java层
安卓逆向——Frida hook java层
启动完毕之后我们需要转发端口,默认端口号为27042.
我们先输入我们的hook方法命令
我们代码的一个脚本拖到我们的cmd窗口里面,然后回车。

安卓逆向——Frida hook java层
回车完毕之后我们需要进行触发。
源程序显示的是7000,因为我们第一个参数是2000,第二个是5000,那么被我们修改5和8之后看看能否成功。

我们会发现程序已经hook到我们的关键信息,看向参数说明我们已经hook成功。
安卓逆向——Frida hook java层
Hook构造方法
安卓逆向——Frida hook java层
Hook重载方法
安卓逆向——Frida hook java层
Hook构造对象参数
安卓逆向——Frida hook java层
Hook修改对象属性
安卓逆向——Frida hook java层
小结
我们分析了目标app,找到具体的参数和包名以及类名,同时也编写了五种方法的具体hook,运行了cmd命令,Python java.py进行hook,启动触发程序,hook也成功显示结果,我们都做到了。

本次分享如果有不懂得可以和我联系,还有免费逆向大礼包等你来领取。