app逆向-frida定位header请求头中signature加密参数

文章目录

    • 一、前言
    • 二、定位加密参数
    • 三、代码实现
    • 四、结语

一、前言

定位app引力播lesson4-com.iCitySuzhou_nocheck_nopack.apksignature加密参数。

app下载:

链接:https://pan.baidu.com/s/1ZdUMfmhq0dTij1nzBo5FKg 提取码:izrb

二、定位加密参数

先抓包查看请求地址,为了避免抓包反爬,我这里直接用抓包(具体:mitmproxy运行WireGuard透明代理抓包如何配置)
app逆向-frida定位header请求头中signature加密参数_第1张图片
jadx反编译app后搜索关键词signature=如下:
app逆向-frida定位header请求头中signature加密参数_第2张图片
进入setCookie方法,可以看到这样一段cookieManager.setCookie(host, "signature=" + d.a(udid, valueOf));从代码中可以判断signature值是通过d.a(udid, valueOf)静态方法生成。
app逆向-frida定位header请求头中signature加密参数_第3张图片
进入class d的静态方法a,可以发现将参数udidvalueOf做了字符串拼接,并且拼接结果给到了class a的静态方法a,代码com.hualong.framework.b.a.a()
app逆向-frida定位header请求头中signature加密参数_第4张图片
继续跟进class a,可以看到代码到这里直接return结束了,这就是核心加密代码部分。
app逆向-frida定位header请求头中signature加密参数_第5张图片
整理思路:hook传入class a的值和返回值对比加密逻辑,如果加密逻辑正确扣代码本地复刻加密代码。

三、代码实现

通过 frida hook class a代码如下:

import frida
import sys


def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)


js_code = '''
Java.perform(
    function(){
        console.log('hook住了')
        var A = Java.use('com.hualong.framework.b.a')
        A.a.implementation = function(str){
            console.log('输入' + str)
            var res = this.a(str)
            console.log('输出' + res)
        }
        function printstack() {
            console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()));
        }
    }
)
'''
# app已经启动了
process = frida.get_usb_device(-1).attach('引力播')
script = process.create_script(js_code)
script.on('message', on_message)
print('[*] Hook Start Running')
script.load()
# 守护进程
sys.stdin.read()

打印输出效果:
在这里插入图片描述
输入:

IMEI867392033365886-IMSI460115143226062&&1706768927&&f1190aca-d08e-4041-8666-29931cd89dde

输出

1084406b7d231163c1a397becfe2fd2d

目前盲猜是md5加密,通过在线加密工具测试一下,看是否存在魔改的情况。
app逆向-frida定位header请求头中signature加密参数_第6张图片
效果是一样的,到这里逆向参数signature加密基本结束。

四、结语

如果我的笔记对你有所帮助,请点个赞,满足一下我的虚荣心,给我一点继续更新的动力,感谢。

你可能感兴趣的:(app逆向随笔,java,javascript,python)