首页
社区
课程
招聘
[原创]破解iTunes 登陆 PC授权 设备授权 购买安装协议。
2015-8-26 17:40 257172

[原创]破解iTunes 登陆 PC授权 设备授权 购买安装协议。

2015-8-26 17:40
257172
iTunes协议的发送是以http 协议进行的 所以我们只需要使用HttpAnalyzer来抓包即可获取如下数据。
向苹果请求发出https://init.itunes.apple.com/WebObjects/MZInit.woa/wa/signSapSetupCert
可获得
<plist>
<dict>
<key>sign-sap-setup-cert</key>
<data>AQIAAAQWMIIEEjCCAvqgAwIBAgIBHDANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwHhcNMTEwMTI2MTkwMTM0WhcNMTkwMTI2MTkwMTM0WjCBhTELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MTkwNwYDVQQDDDBBcHBsZSBTeXN0ZW0gSW50ZWdyYXRpb24gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa4A+Yl8tYKYYqC7ieGVoxwy0OaixSAe4dA/uCQWnNUCY2ercMbw45A7jUGFajCLI8w/s2QeTXyGdgMgtOMn2H9/3NU7AauvwfbMlFB62COPOofMROwrFW2T6ybW0EQRrBmkfArBV8LXiRqweiZbF6g92YS3dA2
... ...
... ...
UAMA0GCSqGSIb3DQEBBQUAA4IBAQCzR9MjeoFy1yK32EyHlabYoUy1XY+OfcDN/qZkDJj3XJVKKrYVjfGtsyCQdMFaRhi9ItDUfk+GNjRC8rp6F3vaWqghiSyxQ9YlPKq+jVQGRBQbgIcSqLmso3b21KrJU3mdGcjgCwt7AIV8/sZAKuSgExUOb+RVF0clhTiWRdolLcdsYTM6Bq8LkZ8Ts/7CnwN0VC6Txp9gR+vuK1YPpVni9mxqGsiA1C2U42QZAYAytXYSHC7G25kCf4coEXOZRSCaDwWs9Aft0NMeLzLstJyKKRdGI1P9ynH6FM+BNhpWdL8ej9BpdNHYsVQTb8KrHSyxiHp11wYrOFZlGB58wcWr</data>
</dict>
</plist>

接下来会发送请求到https://play.itunes.apple.com/WebObjects/MZPlay.woa/wa/signSapSetup
<plist version="1.0">
<dict>
<key>sign-sap-setup-buffer</key>
<data>
AQhKdD/RkztjkIy/KxYj2bmTNbGaQufDbXI5OHzLqVJg2Nl3f6WY0LaZEOSxvTFsCOp1NnJvD4FmWFeTk3DiBz+VRRnA9DuVzQsp8kIe2DIwYslgYDL1ZL5l+qZa77NOMpbDLWMoIHQxdORdi
... ...
... ...
guyv3XSQoBwUXGMsbRzvglm2uz0vhbGK76QLLs8PVUu1XuoS0rK1Y4u/mgysMXZQs0EWL5sFnTot8shC+O2AAAAMB6vO9QOehN/ZiN2L/YkotC56tZ977IoeLAODvHAznQ7bC5y5v1GOSU/xmFuNXRb9JXstnKk82gFdSLTjxF6zCdqai+lAQQCBycA
</data>
</dict>
</plist>

而sign-sap-setup-buffer 的数据则是通过第一次请求回来的数据sign-sap-setup-cert的数据计算出来的。
我们以12.2.2.25的iTunes.dll为例 大致讲解一下sign-sap-setup-buffer的生成,有兴趣将其算法彻底解剖出来的同学可以深入研究一下。
由于只对新版本相关的偏移地址进行查找 所以很多地方没有加入注释和标记,要获取sign-sap-setup-buffer内容的第一步就是进行对sign-sap-setup-cert进行base64解码然后找到第一个iTunes.dll的内部函数


从代码中我们可以看出 func_key2是一个_fastcall 有一个参数(_out) 命名为key2传入的是一个地址 占0x20字节的大小,会在下面fun_session函数中用到。
func_session是一个 _cdecl有两个参数 第一个参数(_out)(由编码的方式 从左至右)为一个DWORD变量的地址在地址10e9369e可以明显看到我们命名为sessionID 用于接收计算出来的数据,而第二个参数则是key2。


接下来是则是要计算出要发送sign-sap-setup-buffer 的内容了。
Func_signsetup 
参数一:固定为200
参数二:key2
参数三:sessionID
参数四:sign-sap-setup-cert 经过base64解密后的buffer地址
参数五:sign-sap-setup-cert 经过base64解密后的buffer大小
参数六:(_out)输出buffer地址
参数七:(_out)输出buffer大小
参数八:(_out)固定为int 地址内容为1 
完成之后再经过base64加密即可发送,完成与服务器通信的第一步。
此时服务器返回
<plist>
<dict>
<key>sign-sap-setup-buffer</key>
<data>AijVT+kj45L2A9HN0ar2wjMAAATgnTUm3CR8kkN701jj2dlrEiCtkbLrCErVkWW6iOp7jNndIGlDSvLlDPmI2OAMHk7EZE5a/zj7Vl2o7XZJT589qT0lpUxDsgWqGVrr2+PWw2/oHXPpndAw1mbYNpKnRWYtoLTr6gCAwEeg2im/XWIgJKykKXJqymRxkgwm6LfpFuGLzwbMpBZxSCYFCm
... ...
... ...
GCoDEF/tKbaR0AAAAhgUEdVwr1zlOVhRGovKXzVa3m1Xdd0JIpZ/kGY6fJrKso9zb7JoyQVk7Qm0cw4npR6ZJoisqcQ34crmsi/Pi4jpW7gV5bhbMh1Hq6LqP1UJ96vxOtIR6ftLWwCC0gH9zTvzrQEg8+l4FDnAsS8bN1wg9QcSyDXyxIOrXAnFSP9sEbGeL66Q1</data>
</dict>
</plist>
服务器又给我们返回了一个sign-sap-setup-buffer
抓包继续,我们开始向服务器发送登陆请求https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/authenticate

需要注意的是 http头中包含了X-Apple-ActionSignature: 内容则是由服务器返回给我们的sign-sap-setup-buffer计算出来的。
http body:

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>appleId</key>
<string>test@126.com</string>
<key>attempt</key>
<integer>1</integer>
<key>createSession</key>
<string>true</string>
<key>guid</key>
<string>9795C6D1.31BB651E.425C9266.759EA155.14DB9387.79B51D9D.4B367805</string>
<key>machineName</key>
<string>TEST-911</string>
<key>password</key>
<string>test123</string>
<key>why</key>
<string>signIn</string>
</dict>
</plist>

这段登录的plist 只有一个guid需要获取 

Func_createguid 只有一个参数ecx为0 返回中包含了计算好的guid.
其中guid分为7个段,每一个段是由相关pc信息计算后的前四个字节转为字符串。
第一段:网卡地址
第二段:C盘序列号
第三段:ProductId
第四段:CPU信息
第五段:主板信息
第六段:计算机名
第七段:Profile尾部字段

在来看一下X-Apple-ActionSignature的由来。
Base64解码后直接使用Func_signsetup来进行 第二和第三个参数直接使用 不重新创建。
最后一个参数 在返回后 会被置0.


Func_actionsignature
参数一:之前用到的sessionID
参数二:登陆的xml body 也就是上面那个包含了 guid appleid machineName password 等。
参数三:xml body的大小
参数四:返回的buffer地址
参数五:返回的buffer大小

将buffer进行base64后即可加入到http头信息X-Apple-ActionSignature:中
至此便可向服务器发送登陆请求,会进行重新定向登陆https://p32-buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/authenticate

这个东西花了不少心血本是给一个网友做的,完成了从登陆->pc授权->ios授权->购买安装 但无奈完成之后却被放了鸽子。放在硬盘里积灰也就失去了自身的价值,不如拿出来给有需要的朋友做个参考。
由于工作较忙时间仓促,也极少写文档 所以写的可能比较混乱, 另外获取PC端授权文件 对IOS设备进行授权 从iTunes购买ipa 在进行安装 会在有时间的情况下进行更新。还请见谅。

最近对广告过滤 如 ADsafe ADbyby ADMfilter 比较感兴趣,在研究中遇到了一些问题。
如有这方面经验并愿意指点一二的可以Q我530646164,当然 如对itunes研究遇到了什么问题也可以Q我。

[培训]《安卓高级研修班(网课)》月薪三万计划

上传的附件:
收藏
点赞3
打赏
分享
最新回复 (48)
雪    币: 355
活跃值: (2593)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
KooJiSung 2015-8-26 17:45
2
0
不错, 最喜欢协议的东西, 搞了多久?
雪    币: 70
活跃值: (34)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
greenplum 2015-8-26 18:09
3
0
两个月左右
雪    币: 52
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kuty 2015-8-26 18:28
4
0
默默的给你点个赞
雪    币: 26435
活跃值: (18467)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2015-8-26 19:12
5
0
先设置“优秀”帖,等全部完成,再设置精华帖。
感谢你的分享!
雪    币: 106
活跃值: (57)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
SilentGamb 1 2015-8-26 20:29
6
0
LZ提供的内容, 专门有公司做这个方向挣钱的(e.g. iTools, 91助手,PP助手, xx助手...), 很少能看到这个方向的公开资料.
LZ提供的不是知识,而是money~
期待LZ以后,  将逆向后的源码工程放出来~
雪    币: 1115
活跃值: (341)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ttstation 2015-8-26 21:52
7
0
感谢分享出别人不愿意拿出的东西!!!
雪    币: 6
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
影子不寂寞 2015-8-27 00:07
8
0
楼主分享的技术太给力了,学习一下。
雪    币: 12
活跃值: (46)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
kgxxx 2015-8-27 11:58
9
0
乐于分享是件好事,感谢
雪    币: 294
活跃值: (987)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
hackbs 2015-8-27 15:19
10
0
赞一个
雪    币: 240
活跃值: (368)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
sky科 2015-8-28 17:01
11
0
不错 , 期待下文 .
雪    币: 109
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qinmiaozn 2015-8-29 13:10
12
0
Nice
雪    币: 153
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
softsword 2015-8-29 13:18
13
0
果断收藏,赞!
雪    币: 107
活跃值: (311)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Fido 2015-8-29 18:11
14
0
PC端的太容易被FuK....在Apple的排名权重非常低....要就直接FuK iOS的App Store的整套算法..会好一些..
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
weishuna 2015-8-29 22:39
15
0
Nice
雪    币: 231
活跃值: (2631)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
sxpp 1 2015-9-1 04:12
16
0
mark
雪    币: 71
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
StartAoA 2015-9-1 13:39
17
0
分析的很到位~~~
雪    币: 608
活跃值: (91)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
Second 1 2015-9-2 23:25
18
0
期待IDA.看看函数
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
omp 2015-9-6 09:41
19
0
你好 是否可以加我QQ28-45-33-186有东西请教你,我支付费用的
雪    币: 6111
活跃值: (3936)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
黑洛 1 2015-9-8 18:21
20
0
这东西,是money啊。
雪    币: 45
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
qinxijp 1 2015-9-9 17:53
21
0
nice
雪    币: 804
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hyhfreeman 2015-12-8 15:00
22
0
感谢兄弟的无私贡献,哈哈哈
雪    币: 573
活跃值: (949)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
ChengQing 2015-12-9 11:13
23
0
居然不先收定金, 为你的行为点个赞
雪    币: 244
活跃值: (163)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
airbus 2015-12-24 16:32
24
0
多谢楼主分享经验
雪    币: 191
活跃值: (778)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
Netfairy 11 2015-12-24 17:08
25
0
多谢分享
游客
登录 | 注册 方可回帖
返回