【说明】英文原文发表时间:2013.5.7,原文链接:点击这里
简介
上一篇《iOS应用安全Part1:搭建移动渗透测试平台》中,我们学习了如何在越狱设备上搭建一个移动审计环境。在本文中,我们将着眼于如何分析iOS设备上任何预装的APP,或者从苹果App商店下载的其他APP,并收集关于APP源代码的一些信息,例如它使用的类信息、视图控制器名字、内部库文件以及更复杂的细节,如特定类或视图控制器的变量和方法名。下面,我们将学习如何解密从App商店下载的应用程序,并dump应用程序使用的所有图片、plist文件。
Dump设备上预装APP的类信息
现在我们将对APP进行分析以获取它的类信息。我们就以苹果地图APP为例,尝试dump该应用的类信息。首先,需要确定该APP可执行文件的位置,iOS设备所有的预装APP都存储在目录“/Applications”中。所以,我们进入到该目录:既然现在已经将文件下载到了本地系统上,接着我们用TextMate工具(或者使用textedit或其他程序)打开该文件。
从这张图片和上面的类信息中可以轻易看到,当你点击这些按钮时,都有什么方法被调用。例如,如果我点击“Directions to Here”,将会调用下面的方法:
-(void)_directionsTo:(id)to person:(void*)person property:(int)property identifier:(int)identifier;
类似地,如果我点击“Add to Bookmarks”,程序将调用下面的方法:
-(void)_addToBookmarks:(id)bookmarks person:(void*)person property:(int)property identifier:(int)identifier;
此外,从APP中你还可以找到很多其他信息,例如,可以发现类UserLocationSearchResults继承自SearchResult。
Dump苹果应用商店下载的APP类信息
如果你想对苹果应用商店下载的APP进行分析的话,那么下面两条你需要特别注意:- 这些应用程序存储在不同的位置:/var/mobile/Applications /
- 与设备预装的APP不同,这些应用程序是加密的,因此在分析之前你需要先对它们进行解密。
现在你需要将Clutch的二进制文件上传到你的iOS设备。为了实现它,我们将使用sftp来上传此文件,只需要使用“put”指令即可:
从特定APP中获取图片及其他文件
正如本文前面讨论的,其中一个方法就是使用sftp从目标APP的目录中获取所有你感兴趣的文件。然而,还有一些更简单的方法,其中一个就是使用iExplorer工具。从官网下载该工具之后,打开它并确保你的iOS设备已通过USB与电脑成功连接。结论
在该系列的前两篇文章中,我们已经学会了如何在越狱设备上设置一个移动审计环境,并掌握了如何dump特定APP的类信息,并理解了代码设计和它的内部工作原理。另外,我们还学了如何解密一个从苹果应用商店下载的APP,并对它的信息进行审计。最后,我们还掌握了如何使用sftp和iExplorer来获取APP中的图片。好消息是,通过使用class-dump-z获取的类信息,我们可以知道所有被调用的方法。但是,有可能在APP中执行一些运行时修改吗?例如,如果一个方法“-(BOOL) isFacebookSessionValid”在一个特定情况下返回值为假,那么我们有可能通过修改APP让其返回值为真,以此来让APP执行一些意想不到的内容?更进一步地,有可能创建我们自定义的方法,并在每次调用某个方法时来执行我们自定义的方法吗?是否有可能在运行时修改实例变量的值,或者在任何特定指令之后修改?答案是肯定的,我们将在下一篇中学习这些技术。