zoukankan      html  css  js  c++  java
  • python之逆向app破解md5参数

    一、抓包分析

    首先下载app,登录入口

    二、脱壳

    是否加壳,若有壳,先税壳。
    脱完之后发现三个dex文件,然后合并dex文件

    三、用jadx-gui打开

    分析加密参数
    搜索关键字

    四、hook方法

    上frida,hook md5
    frida脚本如下
    hook.js

    Java.perform(function () {
        console.log('HOOK Start!!!');
        var Des3Encrypt = Java.use("com.yunmall.ymsdk.utility.AuthUtils"); //com.whxxcy.mango.core.service.network.c.b com.whxxcy.mango.core.util.a
        console.log(Des3Encrypt);
        // 加密
        Des3Encrypt.md5.overload('java.lang.String').implementation = function (args1) {
            console.log("Encrypt args1:",JSON.stringify(args1));
            //console.log("Encrypt args2:",args2);
            //console.log("Encrypt args3:",args3);
            //console.log("Encrypt args4:",args4);
            var result = this.md5(args1);
            console.log("Des3Encrypt.encode result==:",result);
            return result;
        };
    });
    

    python 脚本

    import logging
    import frida
    import sys
    
    logging.basicConfig(level=logging.DEBUG)
    
    
    def on_message(message, data):
        print(message)
    
    
    with open('lie_qu.js', 'r', encoding='utf-8') as f:
        sta = ''.join(f.readlines())
        # print(sta)
    rdev = frida.get_remote_device()
    processes = rdev.enumerate_processes()  # 安卓手机中的所有进程
    print(processes)
    # android.content.Intent android.content.Context android.view.ViewGroup  java.lang.String, java.util.List  [Ljava.lang.String;(String[]), javax.net.ssl.SSLSession  SSLSession
    session = rdev.attach("com.yunmall.ymctoc")
    print(session)
    script = session.create_script(sta)
    
    script.on("message", on_message)
    script.load()
    sys.stdin.read()
    
    

    结果报错

    这种方法在此app是行不通的

    六、用命令行形式

    frida -U --no-pause -f packagename -l hook.js

    frida -U --no-pause -f com.yunmall.ymctoc
    

  • 相关阅读:
    分享下在小程序中怎么做循环
    微信程序开发语法
    微信小程序底部导航栏(tabbar)
    vue 跨域 和django跨域
    Pytest中如何解决测试用例的依赖执行问题
    python远程连接linux
    python+selenium之XPATH定位
    linux模拟弱网延迟和丢包
    django配置mysql数据库
    django项目引入bootstrap
  • 原文地址:https://www.cnblogs.com/gqv2009/p/14263781.html
Copyright © 2011-2022 走看看