1.前期准备
笔者准备的不多就一个 IDA frida环境 Burp就开干了,基本流程走一遍。
hhh IOSdump砸壳,得到IPA,让IDA冒烟的工作几个小时-趁这时间配置下Burp,记得配置下
这里10808是我本地的端口,各位按自己环境配置即可
2.开工
IDA工作了大半天。总算加载完了,先抓了一下包,果然抓不到,直接IDA开搜
SSLPING嘛,根据经验关键词 **certificate verification | cert verify ** 一共搜到了这些地方,X看下引用吧
一共两个关键点,这里能清晰的看到 sub_543324(v23) != 1就是失败 直接上frida干掉他
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
OKKK sllping轻松过掉,现在能抓到我们想要的包了,但是问题又来了,登录接口的passwrod是加密的那我们就来分析一下吧!!!
3.苦逼分析
大家应该一眼就能看出来特征吧 BASE64呀 那就HOOK打印堆栈呗
根据堆栈减去ASLR base的偏移我们得到了一个函数地址
这个函数的名字很符合要求啊
##因为根本没有强混淆,我相信这个算法对再看的各位都不是难点
4.总结
APP就是太信任各位玩家了,一点变种算法都没,纯纯的openssl加密完事!!!
根据分析就是用了RSA的公钥加密了随机key,把传过去的时间跟password明文 aes对称加密一下!!! 然后服务端的私钥去解密出随机key,再去解密出真正的明文与时间。
用GPT的话来说就是: 你可以将公钥用于在安全通信中交换 AES 密钥。这是非常常见的做法,比如在 HTTPS 和许多其他加密协议中都会使用这样的方法。这种方法通常是这样