X游社登录password和account分析 (请求头中DS值)
本文章仅供学习与娱乐 如有 非法获动 与本人无关
喜欢app逆向分析的可以加我共同进步wx : abcEGF618
抓包
客户端证书校验 XP框架的这个插件直接过
抓包分析
jadx搜索 寻算法
嘎嘎多 慢慢测吧
简单的观察 好像就这个特殊 直接进去瞅瞅吧
往里进
直接看到算法了
frida反调试
frida hook试试 反调试
换思路 试试算法助手的hook 能不能行 然后这账号密码算法直接出了
算法还原
看算法那张图 可以看出是rsa加密 很简单 下面是python代码还原
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes
import base64
def RSA_encrypt(public_key_str, data_str):
public_key_bytes = base64.b64decode(public_key_str)
public_key = serialization.load_der_public_key(public_key_bytes)
data_bytes = data_str.encode('utf-8')
encrypted_data = public_key.encrypt(
data_bytes,
padding.PKCS1v15()
)
encrypted_data_base64 = base64.b64encode(encrypted_data)
return encrypted_data_base64
def RSA_txt(user_paword):
public_key_str = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDvekdPMHN3AYhm/vktJT+YJr7cI5DcsNKqdsx5DZX0gDuWFuIjzdwButrIYPNmRJ1G8ybDIF7oDW2eEpm5sMbL9zs\n9ExXCdvqrn51qELbqj0XxtMTIpaCHFSI50PfPpTFV9Xt/hmyVwokoOXFlAEgCn+Q\nCgGs52bFoYMtyi+xEQIDAQAB\n"
data_str = user_paword
encrypted_data_base64 = RSA_encrypt(public_key_str, data_str)
return encrypted_data_base64.decode('utf-8')
结果图
DS 值
在登录的请求头包中 有一些值-手机设备信息(都是固定的) 唯独这个DS值是随机的
jadx搜索
当前DS常量 进去查看他的用例
然后就定位到了他的生成点
可能会奇怪我为什么知道 这个只能去慢慢的测 加经验
他是java调用so文件生成的
hook结果
参数1 是设备信息 参数二 是 null
用直接unidbg出了 补环境都不需要 喜欢读so的可以去IDA中分析分析