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
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~