android逆向 360加固apk,frida Hook java代码

参考文章: https://www.52pojie.cn/forum.php?mod=viewthread&tid=1287307

书接上文,这次我会尝试apk的逆向,找到app不能抓包的原因 在这里插入图片描述

如图所示,这个app被360加固了,几经百度,按照开头那篇文章的参考,我们得到了dex文件

在这里插入图片描述 将多个dex文件 移动到电脑上 由于有多个dex文件,我们需要合并查看代码

jadx工具: https://github.com/skylot/jadx/

具体代码如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import os, sys
# python3.7 merge_dex.py ./file/ livedex


if __name__ == "__main__":
    if len(sys.argv) < 3 :
        print("start error")
        sys.exit()

    print(sys.argv[1], sys.argv[2])

path = sys.argv[1] #文件夹目录
files= os.listdir(path) #得到文件夹下的所有文件名称
s = []
for file in files: #遍历文件夹
    if file.find("dex") > 0: ## 查找dex 文件
        sh = 'jadx.bat -j 1 -r -d ' + sys.argv[2] + " " + path + file
        print(sh)
        os.system(sh)

在这里插入图片描述 最终结果就是这样了,具体代码就不放了。

经过查看源码,发现是okHttp设置了no_proxy 在这里插入图片描述 只需要将这一部分代码hook掉就ok了。 我使用的frida :https://github.com/frida/frida

电脑使用pip install

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// 电脑安装frida
pip install frida-tools # CLI tools
pip install frida       # Python bindings

// 将frida-server推到手机
 adb.exe push .\frida-server-14.0.7-android-arm64 /data/local/tmp/frida-server

// 连接到手机
adb shell

cd /data/local/tmp
// 切到root用户
su
// 修改权限
chmod 777 frida-server 
// 执行
./frida-server

上面就将手机的frida-server开启了,然后在电脑上试试是否可以成功连接

1
frida-ps.exe -U

如果有显示手机相关进程就ok

将自己编写的js代码推到手机 进行 hook

1
frida -U --no-pause -f com.showstartfans.activity -l .\showstart.js

showstart.js 代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
Java.perform(
    function () {
        var application = Java.use("android.app.Application");
        application.attach.overload('android.content.Context').implementation = function(context) {
            var result = this.attach(context); // 先执行原来的attach方法
            var classloader = context.getClassLoader();
            Java.classFactory.loader = classloader;
            var Hook_class = Java.classFactory.use("com.taihebase.activity.utils.SecurityUtil");

            console.log("Hook_class: " + Hook_class);
            Hook_class.getNeedCapturePacket.implementation = function(){
                return true;
            }
            return result;
        }
    }
)

frida关于java的官方文档: https://frida.re/docs/javascript-api/#java

这个时候就可以使用fiddler安心的抓接口了

在这里插入图片描述

故技重施~ 又可以流畅的下单购票了。

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计