苹果ipa软件包破解笔记

苹果的验证机制:

  Appstore上的应用都采用了DRM(digital rights management)数字版权加密保护技术,直接的表现是A帐号购买的app,除A外的帐号无法使用,其实就是有了数字签名验证,而app的破解过程,实质也是去除数字签名的过程。去除过程包括两部分,如下所示:

ipa文件都是使用苹果公司的FairPlay DRM技术进行加密保护

appsync没有装是不能安装的,程序没有破解是不能运行的

条件一,设备越狱,获得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数字签名的,是加密过的,而解密的核心就是解密加密部分,而我们知道,当应用运行时,在内存中是处于解密状态的。所以首要步骤就是让应用先正常运行起来,而只有正常购买的应用才能达到这一目的,所以要先正常购买。

文件结构

Mach-O  在 OS X, 几乎所有的包含可执行代码的文件,如:应用程序、框架、库、内核扩展……, 都是以Mach-O文件实现. Mach-O 是一种文件格式,也是一种描述可执行文件如何被内核加载并运行的ABI (应用程序二进制接口)

Mach-O为Mach Object文件格式的缩写,它是一种用于可执行文件,目标代码,动态库,内核转储的文件格式。作为a.out格式的替代,Mach-O提供了更强的扩展性,并提升了符号表中信息的访问速度。

a.out是旧版类Unix系统中用于执行档、目的码和后来系统中的函数库的一种文件格式,这个名称的意思是汇编器输出。

尽管目前大多数类Unix系统都已改用ELF格式,不再采用a.out格式,但编译器和链接器依然会在用户未指定文件名时,将输出文件取名为“a.out

ELF = Executable and Linkable Format,可执行连接格式,是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的,也是Linux的主要可执行文件格式。

Executable and linking format(ELF)文件是x86 Linux系统下的一种常用目标文件(object file)格式,有三种主要类型:

(1)适于连接的可重定位文件(relocatable file),可与其它目标文件一起创建可执行文件和共享目标文件。

(2)适于执行的可执行文件(executable file),用于提供程序的进程映像,加载的内存执行。

(3)共享目标文件(shared object file),连接器可将它与其它可重定位文件和共享目标文件连接成其它的目标文件,动态连接器又可将它与可执行文件和其它共享目标文件结合起来创建一个进程映像。


      专业一点讲, 它告诉系统:

1,使用哪个动态库加载器

2,加载哪个共享库.

3,如何组织进程地址空间.

4,函数入口点地址,等.

Mach-O 不是新事物. 最初由开放软件基金会 (OSF) 用于设计基于 Mach 微内核OSF/1 操作系统. 后来移植到 x86 系统OpenStep.

为了支持Dyld(Mac OS X的连接器) 运行时环境, 所有文件应该编译成Mach-O 可执行文件格式.

Mach-O 文件分为三个区域: 头部、载入命令区Section和原始段数据. 头部和载入命令区描述文件功能、布局和其他特性;原始段数据包含由载入命令引用的字节序列。为了研究和检查 Mach-O 文件的各部分, OS X 自带了一个很有用的程序otool,其位于/usr/bin目录下。 


ASLT

地址空间布局随机化                                              

是一种针对缓冲区溢出的安全保护技术,通过对堆,栈,共享库映射等线性区布局的随机化,通过增加攻击者预测目的址的难度,防止攻击击者直接定位攻击代码位置,达到阻止溢出攻击的目的。 proc/sys/kernel/randomize_va_space用于控制Linux下 内存地址随机化机制(address space layout
randomization),有以下三种情况

0 - 表示关闭进程地址空间随机化。

1 - 表示将mmap的基址,stack和vdso页面随机化。

2 - 表示在1的基础上增加栈(heap)的随机化。

FAT ELF    一个胖二进制(或多架构二进制)是一种已扩大可以在多个处理器类型上执行指令集的计算机可执行程序。执行通常的方法是包括一个版本的机器代码的每个指令集,前面代码的执行跳转到相应的节中的所有操作系统兼容。这将导致在一个文件比常规的单体系结构的二进制文件大。

利用胖的二进制结构的操作系统软件是不常见的;有几种方法来解决同样的问题,如使用一个安装程序,选择一个特定平台在安装时,以源代码形式分发软件,在操作的系统编译,或者使用虚拟机(如通过Java),并仅在时间编译。

 

破解步骤

购买后,接着就是破解了。随着iOS设备cpu 的不同(arm 6 还是arm 7),mach-o文件格式的不同(thin binary 还是fat binary),应用是否对破解有防御措施(检测是否越狱,检测应用文件系统的变化),破解步骤也有所不同,但核心步骤如下:

第一步:获得cryptid,cryptoffset,cryptsize(用otool)
cryptid为加密状态,0表示未加密,1表示解密;
cryptoffset未加密部分的偏移量,单位bytes
cryptsize加密段的大小,单位bytes
第二步:将cryptid修改为0
第三步:gdb导出解密部分
第四步:用第二步中的解密部分替换掉加密部分
第五步:签名   (ldone)
第六步:打包成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应用层的安全)。

名词 意义  备注 
MetaData 用于描述要素、数据集或数据集系列的内容、覆盖范围、质量、管理方式、数据的所有者、数据的提供方式等有关的信息。 元数据被定义为:描述数据及其环境的数据 元数据以非特定语言的方式描述在代码中定义的每一类型和成员。存储以下信息:

1,程序集的说明。

2,标识(名称、版本、区域性、公钥)。

3,导出的类型。

4,该程序集所依赖的其他程序集。

5,运行所需的安全权限。

6,类型的说明。

7,名称、可见性、基类和实现的接口。

8,成员(方法、字段、属性、事件、嵌套的类型)。

9,属性。

10,修饰类型和成员的其他说明性元素。

参考:http://www.freebuf.com/articles/wireless/6068.html

苹果ipa软件包破解笔记,码迷,mamicode.com

时间: 2024-07-30 03:24:56

苹果ipa软件包破解笔记的相关文章

【转】SourceInsight4破解笔记

时隔好多年,sourceinsight4以迅雷不及掩耳之势的来了.与3.5相比,sourceinsight4多了代码折叠以及文件标签功能,可谓是让sourceinsight迷兴奋了好几晚上.废话不多说, 来说说破解的事儿.(仅供学习,商业用途,请购买正版) 网上大多数的破解方法是修改exe文件,然后修改lisence.这个有个问题是会一直显示90天过期,虽然不会过期,但是每次启动都会弹出提示框输入注册码,取消之后每隔十分钟会提示一次,很恼火.下面这个方法会完美破解4.0,关键还是傻瓜式破解. -

sourceInsight4 破解笔记(完美破解)

时隔好多年,sourceinsight4以迅雷不及掩耳之势的来了.与3.5相比,sourceinsight4多了代码折叠以及文件标签功能,可谓是让sourceinsight迷兴奋了好几晚上.废话不多说, 来说说破解的事儿.(仅供学习,商业用途,请购买正版) 网上大多数的破解方法是修改exe文件,然后修改lisence.这个有个问题是会一直显示90天过期,虽然不会过期,但是每次启动都会弹出提示框输入注册码,取消之后每隔十分钟会提示一次,很恼火.下面这个方法会完美破解4.0,关键还是傻瓜式破解. -

IOS系统ipa软件包在线安装

如果iis不支持ipa和plist下载,可以添加memi类型. ipa     application/x-plist plist application/xml 下载用普通链接即可: <a href="itms-services://?action=download-manifest&url=https://www.somedomain.com/appname.plist">AppName</a> plist是一个xml文件,如下appname.pli

【苹果漏洞】破解IOS企业版证书—利用$99个人开发者账号去申请$299企业账号才有的InHouse证书

文章来源[清雨小竹]:http://blog.csdn.net/zzzili 亲们注意了,这绝对是一个具有轰动性的漏洞. 先看我刚刚做好的示例,请用ios设备打开链接就可自动下载安装:http://res.zdoz.net/test/i.htm 做ios开发的都知道$99美元的是个人开发者证书,只能上传app到苹果商店,如果想发布InHouse的app,就需要$299美元的企业版证书.现在我就说一种利用$99美元的个人开发者账号去申请$299美元的企业账号才能申请的InHouse证书. 通过我的

sourceInsight4 破解笔记(完美破解)【转】

转自:http://www.cnblogs.com/Napoleon-Wang/p/6706773.html 软件下载地址:http://www.cr173.com/soft/421803.html 时隔好多年,sourceinsight4以迅雷不及掩耳之势的来了.与3.5相比,sourceinsight4多了代码折叠以及文件标签功能,可谓是让sourceinsight迷兴奋了好几晚上.废话不多说, 来说说破解的事儿.(仅供学习,商业用途,请购买正版) 网上大多数的破解方法是修改exe文件,然后

Visual SVN 4.0.8破解笔记

想下载打包好的破解补丁直接到文章底部查看链接. 以前一直使用SVN都是用的小乌龟(TortoiseSVN)直接在文件夹下更新上传,直到现在这个项目才开始用Visual SVN.因为我们项目使用的是VS2012,所以不得不使用当时最新的Visual SVN版本4.0.8,Visual SVN最大的好处就是在VS程序中内置菜单等,可以直接在VS中更新工程. 但是,用着用着问题来了,Visual SVN不是免费的,有试用期…本着只要有收费,就会有破解的思想,我开始在网上疯狂的寻找破解补丁.然而,我承认

wifi 破解笔记

最近小夜刚刚学习了无线WiFi的密码破解,感觉很神奇,不过以下操作都是作为学习测试的内容进行的,希望志同道合的小伙伴切不要触碰法律的红线哦!       话不多说,直接上硬菜. 实验环境: 硬件需求:    一台笔记本 一部USB WIFI信号发射接收器 软件需求:    kali虚拟机 操作步骤: 一.插上USB WIFI信号发射接收器,打开kali虚拟机,选择添加USB WIFI信号发射接收器 二.打开终端,进行WIFI信号发射接收器启动,具体命令如下: step1: 查看网络网卡信息 #i

IRPTrace 破解笔记

软件下载地址:http://www.tssc.de/ 2000669E    E8 F7030000     CALL [email protected]@@AAEGXZ  //关键call,直接返回eax = 1200066A3    66:85C0         TEST AX,AX200066A6    75 31           JNZ SHORT TSCUST.200066D9200066A8    6A 01           PUSH 1200066AA    8BCE  

普通pc电脑安装苹果系统mac_详细教程(精)附带所有工具下载

苹果操作系统只允许在苹果电脑上面安装和使用.和Windows不一样,要在PC上安装,需要一系列的模拟和破解.破解安装的过程很繁琐而具有挑战性,以下是安装10A432雪豹的PC安装指南,附带25张图片帮助说明,没有远景ID的朋友可以打开链接查看. 请准备必要的东西: 配备Windows操作系统而且能够上网的PC 雪豹安装光盘dmg镜像文件(10A432正式零售版MD5校验码是bcd4957b2f86216dddc8f1472c20f098) 23G的可用空间 你的勇气和耐性 这个指南可能最适合从来