frida hook java 函数_安卓逆向——Frida hook java层

frida hook java 函数_安卓逆向——Frida hook java层_第1张图片

各位爱好安卓逆向的大佬们早上好,今天呢小弟不才在这里拙劣的给大家讲解一下咱们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 函数_安卓逆向——Frida hook java层_第2张图片

那么我们先分析一下utils该类,该类有五个方法定义。frida hook java 函数_安卓逆向——Frida hook java层_第3张图片

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

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

普通方法:frida hook java 函数_安卓逆向——Frida hook java层_第4张图片

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

构造方法:frida hook java 函数_安卓逆向——Frida hook java层_第5张图片

重载方法frida hook java 函数_安卓逆向——Frida hook java层_第6张图片

构造对象参数frida hook java 函数_安卓逆向——Frida hook java层_第7张图片

修改对象属性frida hook java 函数_安卓逆向——Frida hook java层_第8张图片

五个方法编写完毕之后在该程序的最下面一定要去填写我们的目标app的一个包名。frida hook java 函数_安卓逆向——Frida hook java层_第9张图片

编写完成之后我们需要进行一个结果的验证

启动我们的模拟器

frida hook java 函数_安卓逆向——Frida hook java层_第10张图片

frida hook java 函数_安卓逆向——Frida hook java层_第11张图片

启动完毕之后我们需要转发端口,默认端口号为27042.

我们先输入我们的hook方法命令

我们代码的一个脚本拖到我们的cmd窗口里面,然后回车。frida hook java 函数_安卓逆向——Frida hook java层_第12张图片

回车完毕之后我们需要进行触发。

源程序显示的是7000,因为我们第一个参数是2000,第二个是5000,那么被我们修改5和8之后看看能否成功。

我们会发现程序已经hook到我们的关键信息,看向参数说明我们已经hook成功。frida hook java 函数_安卓逆向——Frida hook java层_第13张图片

Hook构造方法frida hook java 函数_安卓逆向——Frida hook java层_第14张图片

Hook重载方法frida hook java 函数_安卓逆向——Frida hook java层_第15张图片

Hook构造对象参数frida hook java 函数_安卓逆向——Frida hook java层_第16张图片

Hook修改对象属性frida hook java 函数_安卓逆向——Frida hook java层_第17张图片

小结

我们分析了目标app,找到具体的参数和包名以及类名,同时也编写了五种方法的具体hook,运行了cmd命令,Python java.py进行hook,启动触发程序,hook也成功显示结果,我们都做到了。

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

你可能感兴趣的:(frida,hook,java,函数)