gamecenter账号是什么安全

欢迎在新浪微博上关注我们
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
微软必应拼音输入法是微软亚洲研究院推出的新一代拼音输入法。
电脑软件手机应用/articles/wireless/6068.html
在博客上谈过了iOS游戏的内购安全,存档安全及内存安全。其实还有一个很泛滥但被视为鸡肋的问题,即iOS IPA破解问题。因为国内大多数游戏靠内购和广告盈利,游戏安装包也只是在早期象征性的收费,之后就会免费,所以对IPA从只能在购买者设备安装变成可免费到处安装并不关注。
破解软件的问题,其实不仅仅是iOS上,几乎所有平台上,无论是pc还是移动终端,都是顽疾。可能在中国这块神奇的国度,大家都习惯用盗版了,并不觉得这是个问题,个人是这么想,甚至某些盈利性质的公司也这么想,著名的智能手机门户网站91.com前不久就宣传自己平台上盗版全,不花钱。其实这种把盗版软件当成噱头的网站很多,当然还没出现过91这种义正言辞地去宣传用盗版是白富美,买正版是傻X的公司。大家都是做实诚样,把最新最受欢迎的盗版应用一一挂在首页来吸引用户。同步助手就是这种内有好货,不要错过的代表,并且在盗版圈子里,享有良好的口碑,号称同步在手,江山我有。
其实iOS破解软件的问题,既不起源于中国,现阶段也没有发扬光大到称霸的地位,目前属于老二,当然很有希望赶超。据统计,全球范围内,排名前五的破解app分享网站有以下几家:
1.&& & 代表软件:Crackulous,clutch&
破解界的老大哥,出品了多款易用的破解软件,让人人都会破解,鼓励分享破解软件,破解app共享卡正以恐怖的速度扩充。
2.&代表软件:CrackNShare
新秀,支持三种语言,中文(难得!)、英文、德文,前景很可观
以上消息,对于依靠安装包收费的iOS开发来说,无疑是噩耗,其实由不少人也在网上号召支持正版,要求知识产权保护的力度加强。这些愿望或许终有一天会实现,但从技术的角度来分析问题的所在,给出有效的防御方案,无疑比愿望更快。
----破解原理部分---------------------------------------------
Appstore上的应用都采用了DRM(digital rights management)数字版权加密保护技术,直接的表现是A帐号购买的app,除A外的帐号无法使用,其实就是有了数字签名验证,而app的破解过程,实质也是去除数字签名的过程。去除过程包括两部分,如下所示:
条件一,设备越狱,获得root权限,去除掉设备上的签名检查,允许没有合法签名的程序在设备上运行
代表工具:AppSync(作者:Dissident ,Apptrack网站的核心人物)
(iOS 3.0 出现,不同的iOS版本,原理都不一样)
iOS 3.0后,MobileInstallation将可执行文件的签名校验委托给独立的二进制文件/usrlibexec/installd来处理,而AppSync 就是该执行文件的一个补丁,用来绕过签名校验。
iOS 4.0后,apple留了个后门(app给开发者预留的用于测试的沙盒环境),只要在/var/mobile/下建立tdmtanf目录,就可以绕过installd的签名校验,但该沙盒环境会造成没法进行IAP购买,无法在GameCenter查看游戏排名和加好友,特征是进入Game Center会出现SandBox字样。AppSync for iOS 4.0 +修复了这一问题。
iOS 5.0后,apple增加了新的安全机制来保护二进制文件,例如去掉二进制文件的符号表,给破解带来了难度。新版的AppSync for iOS 5.0+ 使用MobileSubstrate来hook&libmis.dylib库的MISValidateSignatureAndCopyInfo函数来绕过签名验证
条件二,解密mach-o可执行文件
一般采用自购破解的方法,即先通过正常流程购买appstore 中的app,然后采用工具或手工的方式解密安装包中的mach-o可执行文件。
之所以要先获得正常的IPA的原因是mach-O文件是有DRM数字签名的,是加密过的,而解密的核心就是解密加密部分,而我们知道,当应用运行时,在内存中是处于解密状态的。所以首要步骤就是让应用先正常运行起来,而只有正常购买的应用才能达到这一目的,所以要先正常购买。
购买后,接着就是破解了。随着iOS设备cpu 的不同(arm 6 还是arm 7),mach-o文件格式的不同(thin binary 还是fat binary),应用是否对破解有防御措施(检测是否越狱,检测应用文件系统的变化),破解步骤也有所不同,但核心步骤如下:
第一步:获得cryptid,cryptoffset,cryptsize
cryptid为加密状态,0表示未加密,1表示解密;
cryptoffset未加密部分的偏移量,单位bytes
cryptsize加密段的大小,单位bytes
第二步:将cryptid修改为0
第三步:gdb导出解密部分
第四步:用第二步中的解密部分替换掉加密部分
第五步:签名
第六步:打包成IPA安装包
整个IPA破解历史上,代表性的工具如下:
代表工具:Crackulous(GUI工具)(来自Hackulous)
crackulous最初版本由SaladFork编写,是基于DecryptApp&shell脚本的,后来crackulous的源码泄露,SaladFork放弃维护,由Docmorelli接手,创建了基于Clutch工具的最近版本。
代表工具:Clutch(命令行工具)(来自Hackulous)
由dissident编写,Clutch从发布到现在,是最快的破解工具。Clutch工具支持绕过ASLR(apple在iOS 4.3中加入ASLR机制)保护和支持Fat Binaries,基于icefire的icecrack工具,objective-c编写。
代表工具:PoedCrackMod(命令行工具)(来自Hackulous)
由Rastignac编写,基于poedCrack,是第一个支持破解fat binaries的工具。shell编写
代表工具:CrackTM(命令行工具)(来自Hackulous)
由MadHouse编写,最后版本为3.1.2,据说初版在破解速度上就快过poedCrack。shell编写
(以下是bash脚本工具的发展历史(脚本名(作者)),虽然目前都已废弃,但都是目前好用的ipa 破解工具的基础。
autop(Flox)——&xCrack(SaladFork)——&DecryptApp(uncon)——&Decrypt(FloydianSlip)——&poedCrack(poedgirl)——&CrackTM(MadHouse)
代表工具:CrackNShare&(GUI工具)(来自appcake)
基于PoedCrackMod 和 CrackTM
我们可以通过分析这些工具的行为,原理及产生的结果来启发防御的方法。
像AppSync这种去掉设备签名检查的问题还是留给apple公司来解决(属于iOS系统层的安全),对于app开发则需要重点关注,app是如何被解密的(属于iOS应用层的安全)。
我们以PoedCrackMod和Clutch为例
一、PoedCrackMod分析(v2.5)
源码及详细的源码分析见:
通过分析源码,我们可以知道,整个破解过程,除去前期检测依赖工具是否存在(例如ldid,plutil,otool,gdb等),伪造特征文件,可以总结为以下几步:
第一步. 将fat binary切分为armv6,armv7部分(采用swap header技巧)
第二步:获得cryptid,cryptoffset,cryptsize
第三步. 将armv6部分的cryptid修改为0,gdb导出对应的armv6解密部分(对经过swap header处理的Mach-O文件进行操作,使其在arm 7设备上,强制运行arm 6部分),替换掉armv6加密部分,签名
第四步. 将armv7部分的cryptid修改为0,gdb导出对应的armv7解密部分(对原Mach-O文件进行操作),替换掉armv7加密部分,签名
第五步.合并解密过的armv6,armv7
第六步.打包成ipa安装包
注明:第三步和第四步是破解的关键,破解是否成功的关键在于导出的解密部分是否正确完整。
由于binary fat格式的mach-o文件在arm 7设备上默认运行arm 7对应代码,当需要导出arm 6对应的解密部分时,要先经过swap header处理,使其在arm 7 设备上按arm 6运行。
二、clutch分析
对于最有效的clutch,由于只找到了clutch 1.0.1的源码(最新版本是1.2.4)。所以从ipa破解前后的区别来观察发生了什么。
使用BeyondCompare进行对比,发现有以下变动。
1. 正版的iTunesMetadata.plist被移除
该文件用来记录app的基本信息,例如购买者的appleID,app购买时间、app支持的设备体系结构,app的版本、app标识符
2.正版的SC_Info目录被移除
SC_Info目录包含appname.sinf和appname.supp两个文件。
(1)SINF为metadata文件
(2)SUPP为解密可执行文件的密钥
3.可执行文件发生的变动非常大,但最明显的事是cryptid的值发生了变化
leetekiMac-mini:xxx.app leedani$ otool -l appname | grep &cmd LC_ENCRYPTION_INFO& -A 4
cmd LC_ENCRYPTION_INFO
cmdsize 20
cryptsize 6053888
cmd LC_ENCRYPTION_INFO
cmdsize 20
cryptsize 5001216
iTunesMetadata.plist&与&SC_Info目录的移除只是为了避免泄露正版购买者的一些基本信息,是否去除不影响ipa的正常安装运行。
----破解防御部分---------------------------------------------
在IPA防御方面,目前没有预防破解的好办法,但可以做事后检测,使得破解IPA无法正常运行以达到防御作用。
而该如何做事后检测呢,最直接的检测方法是将破解前后文件系统的变化作为特征值来检测。
通过分析PoedCrackMod源码,会发现根据破解前后文件时间戳的变化,或文件内容的变化为特征来判断是不可靠的,因为这些特征都可以伪造。如下所示,摘自于PoedCrackMod脚本
1.Info.plist
增加SignerIdentity,(目前主流的MinimumOSVersion版本为3.0,版本3.0之前的需要伪造SignerIdentity)
plutil -key 'SignerIdentity' -value 'Apple iPhone OS Application Signing' &$WorkDir/$AppName/Info.plist& 2&&1& /dev/null
伪造Info.plist文件时间戳
touch -r &$AppPath/$AppName/Info.plist& &$WorkDir/$AppName/Info.plist&
2.iTunesMetadata.plist&伪造iTunesMetadata.plist文件
plutil -xml &$WorkDir/iTunesMetadataSource.plist& 2&&1& /dev/null
echo -e &\t&key&appleId&/key&& && &$WorkDir/iTunesMetadata.plist& #伪造AppleID
echo -e &\t&string&&/string&& && &$WorkDir/iTunesMetadata.plist&
echo -e &\t&key&purchaseDate&/key&& && &$WorkDir/iTunesMetadata.plist& #伪造购买时间
echo -e &\t&date&T08:08:08Z&/date&& && &$WorkDir/iTunesMetadata.plist&
伪造iTunesMetadata.plist文件的时间戳
touch -r &$AppPath/$AppName/Info.plist& &$WorkDir/iTunesMetadata.plist&
3.mach-O文件
Lamerpatcher方法中,靠替换mach-O文件中用于检测的特征字符串来绕过检测(题外话:设备是否越狱也可以通过检测文件系统的变化来判断,例如常见越狱文件,例如/Application/Cydia.app
/Library/MobileSubstrate/MobileSubstrate.dylibd)
sed --in-place=.BCK \
-e 's=/Cydia\.app=/Czdjb\.bpp=g' \
-e 's=/private/var/lib/apt=/prjvbtf/vbr/ljb/bpt=g' \
-e 's=/Applicat\d0\d0\d0ions/dele\d0\d0\d0teme\.txt=/Bppljcbt\d0\d0\d0jpns/dflf\d0\d0\d0tfmf\.txt=g' \
-e 's=/Appl\d0\d0\d0ications/C\d0\d0ydi\d0a\.app=/Bppl\d0\d0\d0jcbtjpns/C\d0\d0zdj\d0b\.bpp=g' \
-e 's=ations/Cy\d0\d0\d0/Applic\d0pp\d0\d0dia.a=btjpns/Cz\d0\d0\d0/Bppljc\d0pp\d0\d0djb.b=g' \
-e 's=ate/va\d0\d0/priv\d0\d0\d0pt/\d0b/a\d0r/li=btf/vb\d0\d0/prjv\d0\d0\d0pt/\d0b/b\d0r/lj=g' \
-e 's=pinchmedia\.com=pjnchmfdjb\.cpm=g' \
-e 's=admob\.com=bdmpb\.cpm=g' \
-e 's=doubleclick\.net=dpvblfcljck\.nft=g' \
-e 's=googlesyndication\.com=gppglfszndjcbtjpn\.cpm=g' \
-e 's=flurry\.com=flvrrz\.cpm=g' \
-e 's=qwapi\.com=qwbpj\.cpm=g' \
-e 's=mobclix\.com=mpbcljx\.cpm=g' \
-e 's=http://ad\.=http://bd/=g' \
-e 's=http://ads\.=http://bds/=g' \
-e 's=http://ads2\.=http://bds2/=g' \
-e 's=adwhirl\.com=bdwhjrl\.cpm=g' \
-e 's=vdopia\.com=vdppjb\.cpm=g' \
&$WorkDir/$AppName/$AppExecCur&
&/Applications/Icy\.app&
&/Applications/SBSettings\.app&
&/Library/MobileSubstrate&
&%si %sg %sn %se %sr %sI %sd %st %sy&
&Sig nerId%@%@
伪造Mach-O文件时间戳
touch -r &$AppPath/$AppName/$AppExec& &$WorkDir/$AppName/$AppExec&
&所以最可靠的方法是根据cryptid的值来确定,为0便是破解版。当检测出破解版本时注意,为了避免逆向去除检测函数,需要多处做检测。同时检测函数要做加密处理,例如函数名加密,并要在多处进行检测。
而根据特征值来检测破解的方法也不是完全没用的,可以将特征值加密成无意义的字符串,最起码Lamerpatcher方法就无效了。同样,检测函数需要做加密处理,并要在多处进行检测。
看了破解ipa的原理,你会发现,所有的工具和方法都必须运行在越狱机上,因此将安全问题托付给苹果,幻想他可以将iOS系统做得无法越狱,他提供的一切安全措施都能生效(例如安全沙箱,代码签名,加密,ASLR,non executable memory,stack smashing protection)。这是不可能的,漏洞挖掘大牛门也不吃吃素的,自己的应用还是由自己来守护。
目前iOS平台游戏安全系列已完成3篇:
计划再写两篇
《iOS平台游戏安全之逆向》
《iOS平台游戏安全之通信协议安全》
来完成本系列。
———————————————————–补充部分————————————————-
感谢cdteam的huangzhuliang,指出了我文章中错误的地方
iOS 应用软件保护的问题,除了上文提到的在越狱机上安装破解软件外。还有一种,针对非越狱机的方法。
以PP助手和快用苹果助手为例,不越狱,也可以安装app store里的“正版”应用。
huangzhuliang通过逆向PP助手的dll文件,发现其原理是将正版购买相关信息同步到设备上,让其通过签名检查。
具体原理及防御措施待后续分析
欢迎交流!
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:588428次
积分:7484
积分:7484
排名:第1339名
原创:42篇
转载:792篇
评论:42条
(11)(18)(21)(43)(3)(4)(11)(5)(3)(2)(7)(2)(4)(39)(60)(24)(86)(119)(92)(2)(2)(2)(1)(5)(18)(3)(17)(20)(97)(59)(35)(20)(1)无论心中有再多不舍,国庆长假还是这样无情地走了,只恨这几天没能好好地珍惜,假如上...
2015 iMac 与 1998 年初代 iMac 对比:多出 1400 万像素、图形处理器速度提升 62000 ...
iOS 9越狱来了,越狱用户们可以升级到最新的iOS 9进行体验了。
苹果是一家一只脚已经踏进未来,而另外一只脚还留在过去的公司。
iPhone 6s 搭载两种处理器,一种是三星 14 nm 工艺制程生产的 A9 处理器芯片;另一种...
虽然只是暂时性的解决办法,但也总比没有好。
与iOS 8的越狱工具一样,今年我们也遇到了各样卡在xx%的问题,解决方式不止有一种,一...
由于外币对美元的汇率发生波动,苹果近日上调了几个国家的 Mac 售价,这些国家包括巴...
《曙光之战》在9日正式开启公测,这款主打团战的散发着奇幻色彩的作品,在其华丽的外...
果不幸的在沙漠当中迷失了方向,那可以说是相当可怕的事情,所要面对的不仅是白天炽热...
由 enish 与 SQUARE ENIX 共同开发的神明培育 RPG 手游《悠闲神明(ゆるかみ!)》本周在...
在游戏产业迅猛发展的今天,各大厂商在互相竞争追逐的同时也总是会保持着自己的一份“...
曾几何时,自己也有过当飞行员的梦想,开着灰机在城市上空自由翱翔,BUBL GmbH 这个专...
近日游戏开发商 Endemol Games 在苹果商店当中推出了一款以憨豆先生为主角的游戏《憨...
地牢就地牢呗,怎么还跟苏打扯上关系了?
配备Force Touch的新触控板,值得消费者再掏一次荷包吗?
采用了新技术,但遗憾的是苹果没有详细地对这项技术进行介绍。
苹果不仅带来了新的 Magic Mouse 2 鼠标、Magic TrackPad 2 触控板和 Magic Keyboard...
很多同学都已经拿到了自己的iPhone 6s/6s Plus,从防护和个性化的角度来说,上个保护...
虽然官方的配件价格略高,但质量还是比较有保证的。
无需消耗燃料,并且既然是多功能当然就不仅仅只是打火机啦。
是否想让 iPhone 也体验虚拟现实?正在 Kickstarter 上进行众筹的“Shot”能够满足你...
iPad Pro再大也是一款平板,所以一些厂商已经根据发布会上的信息制定配件了。
相信疯子游戏助手结果狂野飙车8账号被封,换了gamecenter账号也不行
注册时间 最后登录
在线时间190 小时 UID
主题帖子人气
青苹果, 积分 82, 距离下一级还需 118 积分
怎么这么牛逼,换账号都不行,难道封的是机器码?求解决!
注册时间 最后登录
在线时间190 小时 UID
主题帖子人气
有热心的朋友吗
注册时间 最后登录
在线时间693 小时 UID
主题帖子人气
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
注册时间 最后登录
在线时间375 小时 UID
主题帖子人气
看清一个人又何必去揭穿,讨厌一个人又何必去翻脸!
不过游戏的路过~帮顶下
注册时间 最后登录
在线时间919 小时 UID
主题帖子人气
表示用上疯子的存档之后…每次玩狂野飙车都不联网…无压力啊~~
注册时间 最后登录
在线时间190 小时 UID
主题帖子人气
这个我曾经在去年研究了1个月 结果还是一样的, 别挣扎了, 要解封只能申述,任何其他删文件的方法又麻烦结果 ...
是挺可惜的,我已经玩到631星了,好多好车都升到满级了
注册时间 最后登录
在线时间190 小时 UID
主题帖子人气
表示用上疯子的存档之后…每次玩狂野飙车都不联网…无压力啊~~
我是用疯子账号已登录就被封,现在不联网也玩不了
注册时间 最后登录
在线时间148 小时 UID
主题帖子人气
越狱了没啊?越狱好解决,把那个文件删了,就可以了回楼主liuxuejie于半小时前发表的: 怎么这么牛逼,换账号都不行,难道封的是机器码?求解决!......
注册时间 最后登录
在线时间190 小时 UID
主题帖子人气
越狱了没啊?越狱好解决,把那个文件删了,就可以了
恩,按教程解封了,并且同步了云账号,竟然游戏进度完美保存,不知道会不会再次被封?
注册时间 最后登录
在线时间691 小时 UID
主题帖子人气
可以解封的,我的都解封了
威锋旗下产品
Hi~我是威威!
沪ICP备号-1 丨 深公安网监备案号 5
增值电信业务经营许可证:
Powered by Discuz!后使用快捷导航没有帐号?
只需一步,快速开始
查看: 623|回复: 5
最后登录阅读权限10注册时间积分9精华0帖子威望0 PP豆38 活跃度5
, 积分 9, 距离下一级还需 91 积分
TA的每日心情郁闷 14:36签到天数: 1 天连续签到: 1 天[LV.1]初来乍到帖子威望0 PP豆38 活跃度5
PP助手官方微信
本帖最后由 桥片片 于
11:07 编辑
& && & iOS应用安全游戏应用有一个很泛滥但被视为鸡肋的问题,即iOS IPA问题。因为国内大多数游戏靠和广告盈利,游戏安装包也只是在早期象征性的收费,之后就会免费,所以对iOS应用安全IPA从只能在购买者设备安装变成可免费到处安装并不关注。& && & iOS应用安全破解软件的问题,其实不仅仅是iOS上,几乎所有平台上,无论是pc还是移动终端,都是顽疾。可能在中国这块神奇的国度,大家都习惯用盗版了,并不觉得这是个问题,个人是这么想,甚至某些盈利性质的公司也这么想,并且还有些平台网站把盗版软件当成噱头,义正言辞地去宣传用盗版是白富美,买正版是傻X。其实iOS应用安全破解软件的问题,既不起源于中国,现阶段也没有发扬光大到称霸的地位,目前属于老二,当然很有希望赶超。据统计,全球范围内,排名前五的破解app分享网站有以下几家:& && &&&1. Apptrack代表软件:Crackulous,clutch & && &&&破解界的老大哥,出品了多款易用的破解软件,让人人都会破解,鼓励分享破解软件,破解app共享卡正以恐怖的速度扩充。& && &&&2. AppCake代表软件:CrackNShare& && & 支持三种语言,中文、英文、德文,前景很可观& && & 3. KulApps 北美& && & 4. iDownloads 俄国& && & 5. iGUI 俄国& && &&&以上消息,对于依靠安装包收费的iOS应用开发来说,无疑是噩耗,其实由不少人也在网上号召支持正版,要求知识产权保护的力度加强。这些愿望或许终有一天会实现,但从技术的角度来分析iOS应用安全问题的所在,给出有效的防御方案,无疑比愿望更快。----破解原理部分--------------------------------& && && &Appstore上的应用都采用了DRM(digital rights management)数字版权加密保护技术,直接的表现是A帐号购买的app,除A外的帐号无法使用,其实就是有了数字签名验证,而app的破解过程,实质也是去除数字签名的过程。去除过程包括两部分,如下所示:& && && &条件一,设备,获得root权限,去除掉设备上的签名检查,允许没有合法签名的程序在设备上运行& && &&&代表工具:AppSync(作者:Dissident ,Apptrack网站的核心人物)& && &(iOS 3.0 出现,不同的iOS版本,原理都不一样)& && && &iOS 3.0后,MobileInstallation将可执行文件的签名校验委托给独立的二进制文件/usrlibexec/installd来处理,而AppSync 就是该执行文件的一个补丁,用来绕过签名校验。iOS应用安全& && && &iOS 4.0后,apple留了个后门(app给开发者预留的用于测试的沙盒环境),只要在/var/mobile/下建立tdmtanf目录,就可以绕过installd的签名校验,但该沙盒环境会造成没法进行IAP购买,无法在GameCenter查看游戏排名和加好友,特征是进入Game Center会出现SandBox字样。AppSync for iOS 4.0 +修复了这一问题。iOS应用安全& && &&&iOS 5.0后,apple增加了新的安全机制来保护二进制文件,例如去掉二进制文件的符号表,给破解带来了难度。新版的AppSync for iOS 5.0+ 使用MobileSubstrate来hook libmis.dylib库的MISValidateSignatureAndCopyInfo函数来绕过签名验证& && &&&条件二,解密mach-o可执行文件& && &&&一般采用自购破解的方法,即先通过正常流程购买appstore 中的app,然后采用工具或手工的方式解密安装包中的mach-o可执行文件。& && &&&之所以要先获得正常的IPA的原因是mach-O文件是有DRM数字签名的,是iOS应用安全加密过的,而解密的核心就是解密加密部分,而我们知道,当应用运行时,在内存中是处于解密状态的。所以首要步骤就是让应用先正常运行起来,而只有正常购买的应用才能达到这一目的,所以要先正常购买。& && &&&购买后,接着就是破解了。随着iOS设备cpu 的不同(arm 6 还是arm 7),mach-o文件格式的不同(thin binary 还是fat binary),应用是否对破解有防御措施(检测是否越狱,检测应用文件系统的变化),破解步骤也有所不同,但核心步骤如下:& && &&&第一步:获得cryptid,cryptoffset,cryptsize& && &&&cryptid为加密状态,0表示未加密,1表示解密;& && &&&cryptoffset未加密部分的偏移量,单位bytes& && &&&cryptsize加密段的大小,单位bytes& && &&&第二步:将cryptid修改为0& && &&&第三步:gdb导出解密部分& && &&&第四步:用第二步中的解密部分替换掉加密部分& && &&&第五步:签名& && &&&第六步:打包成IPA安装包& && &&&整个IPA破解历史上,代表性的工具如下:& && & 代表工具:Crackulous(GUI工具)(来自Hackulous)& && & crackulous最初版本由SaladFork编写,是基于DecryptApp shell脚本的,后来crackulous的源码泄露,SaladFork放弃维护,由Docmorelli接手,创建了基于Clutch工具的最近版本。iOS应用安全& && &&&代表工具:Clutch(命令行工具)(来自Hackulous)& && &&&由dissident编写,Clutch从发布到现在,是最快的破解工具。Clutch工具支持绕过ASLR(apple在iOS 4.3中加入ASLR机制)保护和支持Fat Binaries,基于icefire的icecrack工具,objective-c编写。& && &&&代表工具:PoedCrackMod(命令行工具)(来自Hackulous)& && &&&由Rastignac编写,基于poedCrack,是第一个支持破解fat binaries的工具。shell编写& && &&&代表工具:CrackTM(命令行工具)(来自Hackulous)& && &&&由MadHouse编写,最后版本为3.1.2,据说初版在破解速度上就快过poedCrack。shell编写& && &(以下是bash脚本工具的发展历史(脚本名(作者)),虽然目前都已废弃,但都是目前好用的ipa 破解工具的基础。& && &&&autop(Flox)——&xCrack(SaladFork)——&DecryptApp(uncon)——&Decrypt(FloydianSlip)——&poedCrack(poedgirl)——&CrackTM(MadHouse)& && &&&代表工具:CrackNShare (GUI工具)(来自appcake)& && &&&基于PoedCrackMod 和 CrackTM& && &&&我们可以通过分析这些工具的行为,原理及产生的结果来启发iOS应用安全防御的方法。& && &&&像AppSync这种去掉设备签名检查的问题还是留给apple公司来解决(属于iOS应用安全系统层的安全),对于app开发则需要重点关注,app是如何被解密的(属于iOS应用安全应用层的安全)。& && &&&我们以PoedCrackMod和Clutch为例& && &&&一、PoedCrackMod分析(v2.5)& && &&&源码及详细的源码分析见:& && &&&通过分析源码,我们可以知道,整个破解过程,除去前期检测依赖工具是否存在(例如ldid,plutil,otool,gdb等),伪造特征文件,可以总结为以下几步:& && &&&第一步. 将fat binary切分为armv6,armv7部分(采用swap header技巧)& && &&&第二步:获得cryptid,cryptoffset,cryptsize& && &&&第三步. 将armv6部分的cryptid修改为0,gdb导出对应的armv6解密部分(对经过swap header处理的Mach-O文件进行操作,使其在arm 7设备上,强制运行arm 6部分),替换掉armv6加密部分,签名& && & 第四步. 将armv7部分的cryptid修改为0,gdb导出对应的armv7解密部分(对原Mach-O文件进行操作),替换掉armv7加密部分,签名& && &&&第五步.合并解密过的armv6,armv7& && &&&第六步.打包成ipa安装包& && &&&注明:第三步和第四步是破解的关键,破解是否成功的关键在于导出的解密部分是否正确完整。& && &&&由于binary fat格式的mach-o文件在arm 7设备上默认运行arm 7对应代码,当需要导出arm 6对应的解密部分时,要先经过swap header处理,使其在arm 7 设备上按arm 6运行。& && &&&二、clutch分析& && &&&对于最有效的clutch,由于只找到了clutch 1.0.1的源码(最新版本是1.2.4)。所以从ipa破解前后的区别来观察发生了什么。使用BeyondCompare进行对比,发现有以下变动。& && &&&1. 正版的iTunesMetadata.plist被移除该文件用来记录app的基本信息,例如购买者的appleID,app购买时间、app支持的设备体系结构,app的版本、app标识符& && &&&2.正版的SC_Info目录被移除& && & SC_Info目录包含appname.sinf和appname.supp两个文件。& &&&(1)SINF为metadata文件& &&&(2)SUPP为解密可执行文件的密钥& && & 3.可执行文件发生的变动非常大,但最明显的事是cryptid的值发生了变化leetekiMac-mini:xxx.app leedani$ otool -l appname | grep &cmd LC_ENCRYPTION_INFO& -A 4
& && && & cmd LC_ENCRYPTION_INFO
& && &cmdsize 20
& & cryptoff&&8192
& & cryptsize 6053888
& & cryptid& &0
& && && & cmd LC_ENCRYPTION_INFO
& && &cmdsize 20
& & cryptoff&&8192
& & cryptsize 5001216
&&&&cryptid& &0
& && &&&iTunesMetadata.plist 与 SC_Info目录的移除只是为了避免泄露正版购买者的一些基本信息,是否去除不影响ipa的正常安装运行。----破解防御部分--------------------------------& && &&&在IPA防御方面,目前没有预防破解的好办法,但可以做事后检测,使得破解IPA无法正常运行以达到防御作用。& && &&&而该如何做事后检测呢,最直接的检测方法是将破解前后文件系统的变化作为特征值来检测。& && &&&通过分析PoedCrackMod源码,会发现根据破解前后文件时间戳的变化,或文件内容的变化为特征来判断是不可靠的,因为这些特征都可以伪造。如下所示,摘自于PoedCrackMod脚本& && &&&.plist& && &&&增加SignerIdentity,(目前主流的MinimumOSVersion版本为3.0,版本3.0之前的需要伪造SignerIdentity) plutil -key 'SignerIdentity' -value 'Apple iPhone OS Application Signing' &$WorkDir/$AppName/Info.plist& 2&&1& /dev/null
& && &&&伪造Info.plist文件时间戳touch -r &$AppPath/$AppName/Info.plist& &$WorkDir/$AppName/Info.plist&
& && &&&2.iTunesMetadata.plist 伪造iTunesMetadata.plist文件plutil -xml &$WorkDir/iTunesMetadataSource.plist& 2&&1& /dev/null
echo -e &\t&key&appleId&/key&& && &$WorkDir/iTunesMetadata.plist& #伪造AppleIDecho -e &\t&string&&/string&& && &$WorkDir/iTunesMetadata.plist&echo -e &\t&key&purchaseDate&/key&& && &$WorkDir/iTunesMetadata.plist& #伪造购买时间echo -e &\t&date&T08:08:08Z&/date&& && &$WorkDir/iTunesMetadata.plist&& && & 伪造iTunesMetadata.plist文件的时间戳touch -r &$AppPath/$AppName/Info.plist& &$WorkDir/iTunesMetadata.plist&
& && &&&3.mach-O文件& && &&&Lamerpatcher方法中,靠替换mach-O文件中用于检测的特征字符串来绕过检测(题外话:设备是否越狱也可以通过检测文件系统的变化来判断,上篇帖子有讲到:/Library/MobileSubstrate/MobileSubstrate.dylibd)& && && && &sed --in-place=.BCK \& && && && && & -e 's=/\.app=/Czdjb\.bpp=g' \& && && && && & -e 's=/private/var/lib/apt=/prjvbtf/vbr/ljb/bpt=g' \& && && && && & -e 's=/Applicat\d0\d0\d0ions/dele\d0\d0\d0teme\.txt=/Bppljcbt\d0\d0\d0jpns/dflf\d0\d0\d0tfmf\.txt=g' \& && && && && & -e 's=/Appl\d0\d0\d0ications/C\d0\d0ydi\d0a\.app=/Bppl\d0\d0\d0jcbtjpns/C\d0\d0zdj\d0b\.bpp=g' \& && && && && & -e 's=ations/Cy\d0\d0\d0/Applic\d0pp\d0\d0dia.a=btjpns/Cz\d0\d0\d0/Bppljc\d0pp\d0\d0djb.b=g' \& && && && && & -e 's=ate/va\d0\d0/priv\d0\d0\d0pt/\d0b/a\d0r/li=btf/vb\d0\d0/prjv\d0\d0\d0pt/\d0b/b\d0r/lj=g' \& && && && && & -e 's=pinchmedia\.com=pjnchmfdjb\.cpm=g' \& && && && && & -e 's=admob\.com=bdmpb\.cpm=g' \& && && && && & -e 's=doubleclick\.net=dpvblfcljck\.nft=g' \& && && && && & -e 's=googlesyndication\.com=gppglfszndjcbtjpn\.cpm=g' \& && && && && & -e 's=flurry\.com=flvrrz\.cpm=g' \& && && && && & -e 's=qwapi\.com=qwbpj\.cpm=g' \& && && && && & -e 's=mobclix\.com=mpbcljx\.cpm=g' \& && && && && & -e 's=http://ad\.=http://bd/=g' \& && && && && & -e 's=http://ads\.=http://bds/=g' \& && && && && & -e 's=http://ads2\.=http://bds2/=g' \& && && && && & -e 's=adwhirl\.com=bdwhjrl\.cpm=g' \& && && && && & -e 's=vdopia\.com=vdppjb\.cpm=g' \& && && && && & &$WorkDir/$AppName/$AppExecCur&
& && && && &#& & &/Applications/Icy\.app&& && && && &#& & &/Applications/SBSettings\.app&& && && && &#& & &/Library/MobileSubstrate&& && && && &#& & &%si %sg %sn %se %sr %sI %sd %st %sy&& && && && &#& & &Sig nerId%@%@& &&&ent ity && && && && &#& & &Si&&gne rIde& & ntity&& && &&&所以最可靠的方法是根据cryptid的值来确定,为0便是破解版。当检测出破解版本时注意,为了避免逆向去除检测函数,需要多处做检测。同时检测函数要做加密处理,例如函数名加密,并要在多处进行检测。& && & 而根据特征值来检测破解的方法也不是完全没用的,可以将特征值加密成无意义的字符串,最起码Lamerpatcher方法就无效了。同样,检测函数需要做加密处理,并要在多处进行检测。& && &&&看了破解ipa的原理,你会发现,所有的工具和方法都必须运行在越狱机上,因此将安全问题托付给苹果,幻想他可以将iOS系统做得无法越狱,他提供的一切安全措施都能生效(例如安全沙箱,代码签名,加密,ASLR,non executable memory,stack smashing protection)。这是不可能的,漏洞挖掘大牛门也不吃吃素的,自己的应用还是由自己来守护
最后登录阅读权限10注册时间积分9精华0帖子威望0 PP豆38 活跃度5
, 积分 9, 距离下一级还需 91 积分
TA的每日心情郁闷 14:36签到天数: 1 天连续签到: 1 天[LV.1]初来乍到帖子威望0 PP豆38 活跃度5
最后登录阅读权限90注册时间积分19319精华0帖子威望0 PP豆2793 活跃度18130
, 积分 19319, 距离下一级还需 12681 积分
TA的每日心情怒 11:36签到天数: 1 天连续签到: 1 天[LV.1]初来乍到帖子威望0 PP豆2793 活跃度18130
说的好 来学一下
最后登录阅读权限90注册时间积分11720精华0帖子威望0 PP豆1566 活跃度10826
, 积分 11720, 距离下一级还需 4280 积分
TA的每日心情怒 16:04签到天数: 1 天连续签到: 1 天[LV.1]初来乍到帖子威望0 PP豆1566 活跃度10826
这么好的资源
最后登录阅读权限90注册时间积分11791精华0帖子威望0 PP豆1584 活跃度10907
, 积分 11791, 距离下一级还需 4209 积分
TA的每日心情奋斗 03:16签到天数: 1 天连续签到: 1 天[LV.1]初来乍到帖子威望0 PP豆1584 活跃度10907
我是来打酱油的。
最后登录阅读权限90注册时间积分11458精华0帖子威望0 PP豆1550 活跃度10588
, 积分 11458, 距离下一级还需 4542 积分
TA的每日心情怒 17:00签到天数: 1 天连续签到: 1 天[LV.1]初来乍到帖子威望0 PP豆1550 活跃度10588
我顶你,支持楼主
Powered by
Copyright&
Aihe Internet Technology Co.,Ltd. All Rights Reserved.广州爱禾网络技术有限公司 版权所有&&

我要回帖

更多关于 gamecenter账号注册 的文章

 

随机推荐