本帖最后由 悟空666 于 2021-5-13 15:12 编辑
环境以及准备工作:
1 iphone 6 12.5.3 已越狱
2 macos 11.3.1 安装逆向环境 JEB IDA JAVA环境 Python环境 Frida (这些比较简单 百度就是一大堆)
3 app下载地址 http://ipad.guangjie568.com/downapple?randStr=aaxn7oe4hx
开始抓包
登陆包如下
提交参数只有一个body 经验告诉我 这个头部就是一个json的base64格式
base64解码后得到
里面又有一个data 又尝试base64得到
里面有一个deviceNumber值 当我想继续base64时 发现不行了。。
所以我猜测应该是通过算法处理后base64编码的
上手逆向!
开始逆向
---砸壳
配置好前面的环境后 安装frida-ios-dump 给apk砸壳拿到ipa
打开终端 输入如下安装
安装完后进入目录
再开一个终端
手机连接ssh
ssh root@你的wifi ip地址(让你的mac 和iphone处于同一局域网)
输入openssh密码 (默认alpine iphone端在cydia里面下载frida源)
终端安装usbmuxd
brew install usbmuxs(需要先安装brew 百度即可)
然后
iproxy 2222 22
开启端口转发
回到刚刚的终端
python3 dump.py -l 查看app 名称及bundleID
python3 dump.py APP的Identifier -P***
如果你修改了默认的OPENSSH密码(alpine) 就需要带上-P 你的密码 没有就不用带
砸壳成功 这时候在我们的frida-ios-dump目录下就有我们的目标app ipa文件了
--反编译
解压ipa文件 找到我们app的源码(一般都是最大的文件 可执行文件或者是数据)
拖入IDA
编译完成后搜索字符串
x进行交叉引用查找 最后找到一个疑似点
可以看到是通过v28进行赋值的 v28又是v27赋值的
我们直接进入 +[NetworkClient ecTabbarViewControllerWithValue:completeBlock:]函数查看
我们看到了字符串 aes256EncryptWithKey:iv:
猜测应该是使用了aes算法 v14 和v20是key和iv
往上分析发现v14和v20都是通过sub_10011AE50得到的
我们直接进入sub_10011AE50函数看看
发现了两个16位的字符串 qV7H9B@X3m3iZYTe 25!Kb$yPfR^17Xr2 疑似key和iv
直接去解密试试
直接就解密成功了。。。
由于这次的样本不是特别难所以就没用到动态调试 下次遇到了再给大家讲解
总结
1.ios逆向准备环境
2.先砸壳拿到源码
3.字符串定位到关键点进行分析
|