闲得蛋疼,对iTunes 登陆过程进行了初步的分析。 解密得到了spd字段内容。 将分析过程写出来,混个熟脸。
在分析这个东西之前, 需要做一些准备工作。 比如收集论坛前辈们的工作经验, github上某些开源代码。
通过对iTunes windows 和iOS10.x 系统进行抓包。 发现数据包基本是大同小异,iOS 调试非常不方便,特别构造win7 x86环境对 iTunes 12.6.20 进行了逆向分析。
加上 标准版OD + 海风StrongOD, 开始了这次逆向分析。
在分析之前,大概介绍下apple的这套东西,和平日玩windows逆向的区别。 iTunes 或者mac iTunes 或者 iOS 的绝大部分代码是完全一样的。
对登陆过程进行抓包
服务器地址 https://gsa.apple.com/grandslam/GSService2 数据是通过post传输。数据分为2部分
1. header 苹果的header和浏览器的header不同的是,他喜欢携带"设备", "签名"类信息
2. body body中的核心数据是用AES256_CBC加密的
整个登陆协议是非常标准的srp 密钥交换协议。 对SRP协议不熟悉的朋友可以参考下rfc文档,苹果并没做比较大的变更。
通讯过程如下
1. reqeust1 : 客户端计算随机数A = g^a mod N 其中 g