python之app逆向破解data参数中的PassWord DES加密无填充

1.还是先抓包

首先下载app,登录入口

2.用jadx-gui打开

先脱壳,然后用jadx-gui打开
并搜索关键字PassWord

点击右键 跳到声明

从代码中可以看出key,iv 都是str

3.开始Hook

hook a方法

通过在线加密方法得出 是des 加密的结果

4.用python实现

整个js 代码

复制Java.perform(function () {
    console.log('HOOK Start!!!');
    var Des3Encrypt = Java.use("bef");
    console.log(Des3Encrypt);
    // 加密
    Des3Encrypt.a.overload('java.lang.String', 'java.lang.String').implementation = function (args1,args2) {
        console.log("Encrypt args1:",args1);
        console.log("Encrypt args2:",args2);
        //console.log("Encrypt args3:",args3);
        //console.log("Encrypt args4:",args4);
        var result = this.a(args1,args2);
        console.log("Des3Encrypt.encode result:",args1,args2);
        return result;
    };

})

python DES加密无填充用0补全

复制import pyDes
import base64
Key = "8D54E5D0"  #加密的key
Iv = '8D54E5D0'   #偏移量
def bytesToHexString(bs):
    '''
    bytes转16进制
    '''
    return ''.join(['%02X ' % b for b in bs])
def hexStringTobytes(str):
    '''16进制转bytes'''
    str = str.replace(" ", "")
    return bytes.fromhex(str)

# 加密
def encrypt_str(data):
    # 加密方法
    #padmode填充方式
    #pyDes.ECB模式
    method = pyDes.des(Key, pyDes.CBC, Iv, pad=None, padmode=pyDes.PAD_PKCS5)
    # 执行加密码 hex输出
    k = method.encrypt(data)
    data = bytesToHexString(k).replace(' ','')
    #bs64手粗
    #data =base64.b64encode(k)
    return data

# 解密
def decrypt_str(data):
    method = pyDes.des(Key, pyDes.CBC, Iv, pad=None, padmode=pyDes.PAD_PKCS5)
    k =hexStringTobytes(data)
    #bs64
    #k = base64.b64decode(data)
    return method.decrypt(k)


Encrypt = encrypt_str("qwerrrtttt12233")
print(Encrypt)
Decrypt = decrypt_str(Encrypt)
print(Decrypt)



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载!
posted @   莫贞俊晗  阅读(457)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示