苹果基本授权原理:
为了防止盗版,苹果在所有的iPhone软件中也加入了DRM内容数字版权加密保护技术。类似于iTunes媒体文件,每一个IPA软件都带有DRM。安装程序时,若发现电脑未授权,即私钥不存在,安装程序就会自动终止。若发现授权账号和购买账号不一致,即公钥与私钥不相匹配,安装程序也会自动终止。如果通过某种方法将软件直接塞进设备,运行程序的结果将会是自动退出,ios6开始弹出账号,请求输入账号和密码。这就是数字签名验证。
因此,路人甲购买的软件除了有他账号的人可以使用之外,其他任何人都使用不了(因此想要分享自己购买的软件,分享之前一定要把IPA破解掉)。这样一来,苹果就最大程度上减少了盗版的可能性。
破解软件说明:
破解软件实际上就是去除了DRM保护的软件。破解软件的过程就是去除软件DRM数字签名的过程。
这就是为什么未越狱机器不能安装破解软件的原因。没有公钥,安装程序就会自动停止,并且出现“应用程序"XXX"未安装在iPhone"XXX"上,因为发生未知错误(0xE8008001)”的提示。所以安装破解软件的必要条件就是设备要越狱。设备越狱之后,系统最高权限被打开,系统文件就可以被修改了。安装破解软件,就需要把数字签名验证这一机制给去掉。这就是为什么在安装破解IPA之前,2.X时代要替换MobileInstallation文件,3.X ,4.X ,5.X系统要安装AppSync的原因,原理就是骗过iTunes的数字签名验证,允许没有合法签名的程序在设备上运行。
苹果软件通用的破解过程如下:
1.通过输入信息在var/mobile/Applications下定位待破解软件所在位置
2.复制软件目录下所有的文件到一个临时目录
3.通过toolchain中的otool分析程序主文件,找出cryptsize和cryptid
4.运行待破解程序,通过gdb调试程序监测程序内存
5.因为程序已经运行,所以此时是解密状态。dump当前未加密的内存
6.将dunp结果输出到一个bin文件,退出gdb调试程序
7.将主程序文件的cryptid字串改为0,改加密状态为未加密
8.将dump出来的bin文件中的未加密内存的内容覆盖到原主程序文件的相应位置
9.对主程序签名
10.删除一些垃圾文件
11.打包IPA
苹果itunes授权过程:
1.首先申请了一个appstore帐号,itunes会在C盘生成SCinfo (xp下的C:\Documents and Settings\All Users\Application Data\Apple Computer\iTunes\SC Info就是)
2.每在appstore下一个程序,itunes会自动更新sc里的授权信息授权信息里包括系统序列号、C盘ID、网卡MAC等,当然还有你帐户下购买所有的软件列表
3.当利用itunes同步软件时,itunes会同时把该帐号下的授权导入ipad,所以大神们分享授权也是这个原理,只要同步一个帐号下的授权就可以了,当然有新授权除外
4.itunes只认scinfo下的授权文件,所以用不同用户的scinfo可以得到不同人的授权信息并同步给ipad或iphone
多账号授权注意要点:
1.如果有多用户授权文件,如大V、大S、大A等三个人授权文件时(大A跟大V的授权帐号非常多,大概有20多个)先修改硬盘序列号为各授权文件的硬盘序列号(打开各自己授权人的.ini文件可以看到硬盘序列号,在最下边),然后再COPY授权文件到授权软件目录,导入相应的授权文件,如大V下有13个授权帐号(下过的清楚123个文件夹每个4个授权人软件)这时需要itunes同步13个授权(即内置的13个应用软件)到ipad,每次同步不超过5个应用,同步后,从itunes内删除应用,然后从ipad删除刚安装授权的几个应用,得到13个授权。这时ipad内除了本有的应用外,应该是空的。
2.打开第二个授权人文件,按步骤1的方法导入第二个授权人软件(注意授权人发布授权时一般都有注明有多少个授权帐号,都需要相应的授权帐号软件依次同步导入删除),然后删除ipad内的刚安装授权的应用(如果只有单一授权帐号时不需要删除原有软件)。
3.打开大S授权后重复以上步骤。最终可得到所有坛子上比较热门的所有授权人的帐号授权。
以上每次从itunes同步后,下次同步前,需将ipad内为得到授权而同步内的应用全部删除,或者说把除了系统自带的应用外的所有应用删除。