开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 7319|回复: 3
收起左侧

[技术专题] [IOS逆向]记一次IOS逆向某APP登陆参数算法

[复制链接]
结帖率:95% (40/42)
发表于 2021-5-13 15:09:46 | 显示全部楼层 |阅读模式   山西省太原市
本帖最后由 悟空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


开始抓包

登陆包如下

WX20210513-141043@2x.png

提交参数只有一个body 经验告诉我 这个头部就是一个json的base64格式


base64解码后得到

  
{"head":{"code":"145158033844","timestamp":"1620886197","token":"bec1134ea20566e7b71182a8211e22cd","version":"2.6.58"},"data":"ewogICJzb3VyY2UiIDogIjIwIiwKICAibW9iaWxlU3lzdGVtVmVyc2lvbiIgOiAiMTIuNS4zIiwKICAibG9naW5UeXBlIiA6ICIyIiwKICAibmlja25hbWUiIDogIjE1MjUyNTI1MjUyIiwKICAiYXBwVmVyc2lvbk5hbWUiIDogIjIuNi41OCIsCiAgImRvbWFpbiIgOiAiaHR0cHM6XC9cL2NwYXBpMDUuc3BhcmtzdGVjaC5jbiIsCiAgImRldmljZU51bWJlciIgOiAiU3lSdTlWRTM5cVFKeXJKTjNPUHVURUxKN3dzNzUzem1OXC96dWZOVFwvK3hsenB5WWJWUFgrR3lWdCs0Z3ppYlRaIiwKICAibW9iaWxlQnJhbmRNb2RlbHMiIDogImlQaG9uZTcsMiIKfQ=="}


里面又有一个data 又尝试base64得到

  
{
"source" : "20",
"mobileSystemVersion" : "12.5.3",
"loginType" : "2",
"nickname" : "15252525252",
"appVersionName" : "2.6.58",
"domain" : "https:\/\/cpapi05.sparkstech.cn",
"deviceNumber" : "SyRu9VE39qQJyrJN3OPuTELJ7ws753zmN\/zufNT\/+xlzpyYbVPX+GyVt+4gzibTZ",
"mobileBrandModels" : "iPhone7,2"
}


里面有一个deviceNumber值 当我想继续base64时 发现不行了。。

所以我猜测应该是通过算法处理后base64编码的

上手逆向!

开始逆向
---砸壳
配置好前面的环境后 安装frida-ios-dump 给apk砸壳拿到ipa

打开终端 输入如下安装
  
git clone https://hub.fastgit.org/AloneMonkey/frida-ios-dump.git
cd frida-ios-dump
sudo pip3 install -r requirements.txt --ignore-installed six


安装完后进入目录

再开一个终端

手机连接ssh

ssh root@你的wifi ip地址(让你的mac 和iphone处于同一局域网)
输入openssh密码 (默认alpine iphone端在cydia里面下载frida源)
WX20210513-143349@2x.png

终端安装usbmuxd

brew install usbmuxs(需要先安装brew 百度即可)
然后
iproxy 2222 22

开启端口转发



回到刚刚的终端
python3 dump.py -l  查看app 名称及bundleID

WX20210513-143650@2x.png

python3 dump.py APP的Identifier -P***
如果你修改了默认的OPENSSH密码(alpine) 就需要带上-P 你的密码 没有就不用带
WX20210513-144408@2x.png

砸壳成功 这时候在我们的frida-ios-dump目录下就有我们的目标app ipa文件了

--反编译
解压ipa文件 找到我们app的源码(一般都是最大的文件 可执行文件或者是数据)
WX20210513-145246@2x.png
拖入IDA


编译完成后搜索字符串


WX20210513-145427@2x.png


x进行交叉引用查找 最后找到一个疑似点




WX20210513-145606@2x.png

可以看到是通过v28进行赋值的 v28又是v27赋值的

我们直接进入 +[NetworkClient ecTabbarViewControllerWithValue:completeBlock:]函数查看
WX20210513-145805@2x.png

我们看到了字符串 aes256EncryptWithKey:iv:
猜测应该是使用了aes算法 v14 和v20是key和iv

往上分析发现v14和v20都是通过sub_10011AE50得到的

我们直接进入sub_10011AE50函数看看
WX20210513-150141@2x.png

发现了两个16位的字符串 qV7H9B@X3m3iZYTe 25!Kb$yPfR^17Xr2 疑似key和iv

直接去解密试试
WX20210513-150512@2x.png

直接就解密成功了。。。

由于这次的样本不是特别难所以就没用到动态调试 下次遇到了再给大家讲解

总结
1.ios逆向准备环境
2.先砸壳拿到源码
3.字符串定位到关键点进行分析


发表于 2021-5-22 13:51:53 | 显示全部楼层   河北省唐山市
老铁,你的ida哪里下载的?
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 1 天

发表于 2021-5-13 20:32:20 | 显示全部楼层   安徽省芜湖市
前排支持空哥
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 21 天

发表于 2021-5-13 16:43:33 | 显示全部楼层   四川省成都市
这个还算是简单的了,没有做代码混淆。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表