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

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

2015-8-26 17:40
260278

iTunes协议的发送是以http 协议进行的 所以我们只需要使用HttpAnalyzer来抓包即可获取如下数据。
向苹果请求发出eceK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6A6L8X3W2@1i4K6u0W2K9i4c8#2L8X3g2K6i4K6u0W2j5i4m8H3L8r3g2Q4x3X3g2U0L8$3#2Q4x3V1k6i4k6h3u0a6j5X3A6W2j5%4c8K6i4K6u0r3e0g2A6u0L8X3W2@1i4K6u0W2N6$3!0S2i4K6u0r3N6$3q4Q4x3V1k6K6K9h3N6F1f1$3q4H3f1$3g2@1N6i4m8o6k6i4u0@1
可获得
<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>

接下来会发送请求到f9eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3L8r3q4&6i4K6u0W2K9i4c8#2L8X3g2K6i4K6u0W2j5i4m8H3L8r3g2Q4x3X3g2U0L8$3#2Q4x3V1k6i4k6h3u0a6j5X3A6W2j5%4c8K6i4K6u0r3e0g2A6b7L8r3q4&6i4K6u0W2N6$3!0S2i4K6u0r3N6$3q4Q4x3V1k6K6K9h3N6F1f1$3q4H3f1$3g2@1N6i4l9`.
<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
抓包继续,我们开始向服务器发送登陆请求582K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1N6i4W2Q4x3X3g2A6N6s2g2F1k6i4y4Q4x3X3g2S2M7s2m8D9k6g2)9J5k6h3y4G2L8g2)9J5c8W2N6W2j5V1!0T1K9X3g2U0N6s2y4Q4x3V1k6y4h3V1k6A6L8X3q4F1j5$3g2Q4x3X3g2%4L8$3q4Q4x3V1k6%4j5g2)9J5c8X3q4#2N6r3S2W2L8Y4c8A6j5$3q4@1k6b7`.`.

需要注意的是 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:中
至此便可向服务器发送登陆请求,会进行重新定向登陆22cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3x3K6u0Q4x3X3c8T1N6i4W2Q4x3X3g2A6N6s2g2F1k6i4y4Q4x3X3g2S2M7s2m8D9k6g2)9J5k6h3y4G2L8g2)9J5c8W2N6W2j5V1!0T1K9X3g2U0N6s2y4Q4x3V1k6y4h3V1k6A6L8X3q4F1j5$3g2Q4x3X3g2%4L8$3q4Q4x3V1k6%4j5g2)9J5c8X3q4#2N6r3S2W2L8Y4c8A6j5$3q4@1k6b7`.`.

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

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


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 9
支持
分享
最新回复 (48)
雪    币: 357
活跃值: (4498)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
2
不错, 最喜欢协议的东西, 搞了多久?
2015-8-26 17:45
0
雪    币: 70
活跃值: (34)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
两个月左右
2015-8-26 18:09
0
雪    币: 66
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
默默的给你点个赞
2015-8-26 18:28
0
雪    币: 58782
活跃值: (21915)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
先设置“优秀”帖,等全部完成,再设置精华帖。
感谢你的分享!
2015-8-26 19:12
0
雪    币: 112
活跃值: (57)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
6
LZ提供的内容, 专门有公司做这个方向挣钱的(e.g. iTools, 91助手,PP助手, xx助手...), 很少能看到这个方向的公开资料.
LZ提供的不是知识,而是money~
期待LZ以后,  将逆向后的源码工程放出来~
2015-8-26 20:29
0
雪    币: 1113
活跃值: (761)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢分享出别人不愿意拿出的东西!!!
2015-8-26 21:52
0
雪    币: 6
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼主分享的技术太给力了,学习一下。
2015-8-27 00:07
0
雪    币: 14
活跃值: (46)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
乐于分享是件好事,感谢
2015-8-27 11:58
0
雪    币: 155
活跃值: (1265)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
赞一个
2015-8-27 15:19
0
雪    币: 243
活跃值: (469)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
不错 , 期待下文 .
2015-8-28 17:01
0
雪    币: 109
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
Nice
2015-8-29 13:10
0
雪    币: 153
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
果断收藏,赞!
2015-8-29 13:18
0
雪    币: 107
活跃值: (429)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
PC端的太容易被FuK....在Apple的排名权重非常低....要就直接FuK iOS的App Store的整套算法..会好一些..
2015-8-29 18:11
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
Nice
2015-8-29 22:39
0
雪    币: 231
活跃值: (2666)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
16
mark
2015-9-1 04:12
0
雪    币: 71
活跃值: (93)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
分析的很到位~~~
2015-9-1 13:39
0
雪    币: 598
活跃值: (201)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
期待IDA.看看函数
2015-9-2 23:25
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
omp
19
你好 是否可以加我QQ28-45-33-186有东西请教你,我支付费用的
2015-9-6 09:41
0
雪    币: 6129
活跃值: (4971)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
20
这东西,是money啊。
2015-9-8 18:21
0
雪    币: 45
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
nice
2015-9-9 17:53
0
雪    币: 804
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
感谢兄弟的无私贡献,哈哈哈
2015-12-8 15:00
0
雪    币: 586
活跃值: (1339)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
23
居然不先收定金, 为你的行为点个赞
2015-12-9 11:13
0
雪    币: 244
活跃值: (189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
多谢楼主分享经验
2015-12-24 16:32
0
雪    币: 200
活跃值: (928)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
25
多谢分享
2015-12-24 17:08
0
游客
登录 | 注册 方可回帖
返回