第一次观光游览ipa内部

iPhone手机安装的应用是通过手机应用AppStore或者电脑端的itunes来完成。通过AppStore的方式,我们甚至都没有看到安装的文件是什么。但通过itunes可以获取下载的软件安装包,即是以ipa为后缀结尾的安装包。这里挖掘一个有代表性的App:Wechat微信。

获取ipa安装包

步骤如下:

打开itunes -> 选择应用 -> 进入AppStore -> 找到微信下载 -> 下载完成 -> 我的应用 -> 右键下载的微信图标,选择Finder中显示 -> 即可看到ipa安装包。

ipa里面都有些什么?

ipa文件是一个安装压缩包,可以通过解压来生成文件夹。打开生成的文件夹,开始逆向的看看微信的一些实现原理,还有一些隐藏的信息。

文件结构

iTunesArtwork,一张无后缀的png图片,可以通过预览,看到它就是当前App的图标图片,在iTunes等上显示用。

iTunesMetadata.plist,查看文件内容,是一个xml格式的key-value键值表单,记录该App的购买者,购买时间,App的版本,评级等等信息。

再看META-INF文件夹,里面也有两个文件。

com.apple.ZipMetadata.plistcom.apple.ZipMetadata.plist,主要描述ipa压缩的一些信息,包括文件的权限,唯一UUID等。

最后细看打开Payload文件夹,看到一个wechat.app这个大家伙(安装包),右键,查看包内容。继续进去看里面都有什么好东西。

WeChat.app安装包里都有些什么?

app包中的一个重要文件是CodeResources,这个文件是一个属性列表,包含bundle中所有其他文件的列表。这个属性列表只有一项files,这是一个字典,其中键是文件名,值通常是Base64格式的散列值。如果键表示的文件是可选的,那么值本身也是一个字典,这个字典有一个hash键和一个optional键(这个键的值当然是布尔值true)。

CodeResources文件可以用于判断一个应用程序是否完好无损,能够防止不小心修改或损坏资源文件。

安装包里面还有很多的css、js、txt、xml、plist等配置文件,一些html静态页面,图片png、jpg、gif等文件,wav、m4a等音效文件,布局nib文件。最重要的还是无后缀的WeChat可执行二进制文件。

有资源图标图片声音这些东西,我们就可以拿来用到我们的山寨App里面,轻轻松松获取到了资源。

阅读配置文件xml、plist等等,可以了解微信中的一些实现机制。

微信的App中用了很多js和一些静态的html技术,这些在以后的学习中都需要关注。而微信中的界面布局似乎很少用到xib文件的方式,可能是为了兼容iOS更旧的版本,采用代码布局的方式。

最后值得关注的就是一个体积很大的可执行文件WeChat。需要用一些工具去逆向敲碎它,去看看里面都有些什么。

再续。。。

文章来自 http://skymonkey.cn/

高能广告区

暂无广告哦=^^=。继续看看其它文章吧!