发新帖

IOS应用安全(二):获取IOS应用的class信息

[复制链接]
13470 11
本帖最后由 ken 于 2015-8-23 07:43 编辑

原文出处: http://highaltitudehacks.com/2013/06/16/ios-application-security-part-2-getting-class-information-of-ios-apps/

其实也有人翻译了出来,网址在这http://wufawei.com/page4/,不过只翻了前面二十几章。现在作者已经更新了40多章。有时间我就会把全部翻译,锻炼下英语阅读能力,我还是会从前面开始,不能因为有人翻了就不写了。

http://www.pd521.com/static/image/hrline/5.gif
上一篇我们已经安装好了dump_class_z,在本节中我们将会使用dump_class_z来获取IOS应用的class信息。
你有没有看到一个IOS应用很cool,想要知道它的源代码、使用的第三方库和代码的内部是怎样设计的?
你有没有想过所有的图片都能够dump出来,plist文件能用于任何应用而且预装应用或者从应用商店下载的应用。如果你的回答是YES,恭喜你,你来对了。

在这篇文章,我们会看到怎样分析设备上的任意预装应用、任意从应用商店下载的应用。并且发现应用源代码的一些信息比如使用的类,view controllers使用的名称、内部库甚至一些更复杂的信息。比如在任何特定的class或者view controllers使用的变量和方法。我们将会看到怎样解密从应用商店下载的应用,dump出这个应用使用的所有图片、plist文件。

DUMP设备预装APP的CLASS


现在我们处于一个能分析应用的class信息的阶段。让我们以Apple Maps为例,dump它的class信息。首先我们找到Apple Maps执行文件的位置。所有IOS的预装应用都被保存到/Applications目录下,让我们先切换到这个目录下。
http://highaltitudehacks.com/images/posts/ios2/20.png
这里你会看到所有预装的应用都在这里,现在我们进入Apple Map目录下
http://highaltitudehacks.com/images/posts/ios2/21.png
在这里,我们能看到所有的图片、plist文件。
我们将会讨论如何从一个特定的应用取得所有的图片和一些其他的文件。在这杂乱无章的文件中我们可以从下图左边看到一个名为MAPS可执行应用。请注意这个名字与这个应用的名字一样
http://highaltitudehacks.com/images/posts/ios2/22.png
为了dump这个应用的class信息,我们需要使用命令 class-dump-z Maps

http://highaltitudehacks.com/images/posts/ios2/23.png
正如你所看到的一样,输出了很多的信息。因此,最好的办法就是将输出保存为一个文件,这个例子中这个文件名是class_info-Maps。
http://highaltitudehacks.com/images/posts/ios2/24.png
你现在可以使用sftp从设备中将这个文件下载下载。sftp 192.168.2.3@root后输入密码连接sftp,get命令后面接文件名下载这个文件。

http://highaltitudehacks.com/images/posts/ios2/25.png
用文本编辑器打开我们下载的文件
http://highaltitudehacks.com/images/posts/ios2/26.png



我们能从interface(界面)文件学习到代码的设计方法。例如这里你可以看到一个叫InfoCardController的View controller ,你可能会猜这是通过VC来显示当我们点击如下图所示的右箭头时特定位置的更多信息。
http://highaltitudehacks.com/images/posts/ios2/27.PNG
让我们看看这个应用的视图,这个页面显示的是我们从dump_class_z找到的InfoCardViewController。点击右箭头进入下面这个视图。

http://highaltitudehacks.com/images/posts/ios2/28.PNG
如果你看了这张图,和上面的class信息,你能很轻易的看到当点击这些按钮后调用的方法名是什么。举个例子,点击上图中的Direction 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;
你可以从这里找到更多的信息。例如这里,UserLocationSearchResults类继承SearchResult.
http://highaltitudehacks.com/images/posts/ios2/28x.png
你可以从这里获取Apple Maps的class信息。
DUMP从应用商店下载的应用的CLASS信息
下面这两天是我们需要知道的非常重要的信息,
应用保存在 /var/mobile/Applications
不像预装的程序那样,这些应用一般都是加密的。因此我们需要先把它解密。

为了解密应用,我们使用名为Clutch的一个命令行工具。我们需要下载Clutch的二进制文件,因为Clutch已经被作者关闭了,现在Clutch的二进制文件还能用。
最新版的cluth 2.0最新版本, https://github.com/KJCracks/Clutch
使用sftp将文件传入你的设备。命令如下
http://highaltitudehacks.com/images/posts/ios2/29.png
现在用ssh登录你的设备,输入clutch,将会显示一个可以破解的应用的列表。
http://highaltitudehacks.com/images/posts/ios2/30.png
要破解指定应用,使用命令clutch 应用名,如下图,想破解Facebook,使用命令clutch Facebook.

http://highaltitudehacks.com/images/posts/ios2/31.png
一旦完成破解,他会告诉你ipa文件的存放路径,现在这个ipa文件是这个程序包的压缩版本。我们需要用unzip命令来解压,-d 指定文件夹。
如下图命令 ,将ipa文件解压到Facebook文件夹中。当然你也可以用sftp从你的设备中复制出来再拷贝,你将从解压后的文件中获得应用程序的所有图像以及一些其他文件
http://highaltitudehacks.com/images/posts/ios2/32.png
现在,我们已经将文件解密了,使用dump_class_z来dump出class信息保存在class_info_Facebook

http://highaltitudehacks.com/images/posts/ios2/33.png
做完这一步,你就可以退出ssh回话,使用sftp来将这个文件下载下来。
http://highaltitudehacks.com/images/posts/ios2/33x.png
使用文本编辑器。这有一个protocol 叫FBFacebookRequestSender,它有一个发送步请求的方法以及检测Facebook Session是否有效的方法。

http://highaltitudehacks.com/images/posts/ios2/34.png

从特定应用获取图片或其他文件

正如前面讨论的,一种方法是从你的应用目录下使用sftp来获取所有的文件,然而,有很多方法能做到这一点。一种简单的方法就是下载iExplorer。下载安装后运行,通过USB来连接。
http://highaltitudehacks.com/images/posts/ios2/35.png
点击File查看文件
http://highaltitudehacks.com/images/posts/ios2/36.png
点击Apps,再点击你要进入的指定APP的目录
http://highaltitudehacks.com/images/posts/ios2/37.png
正如你所看到的,这个软件可以非常轻松的上传下载文件
http://highaltitudehacks.com/images/posts/ios2/38.png
如果要下载所有文件按cmd+A,右键所选择的文件夹,然后选择要保存的位置。

结论



举报 使用道具

回复

精彩评论11

wruih    发表于 2015-8-23 00:25:05 | 显示全部楼层
clutch 早就不好使了 。。。。。

点评

一直在用Clutch,而且基本上两三天用一次,  详情 回复 发表于 2015-8-27 19:44
你用的是什么版本,现在2.0版本好使不?  详情 回复 发表于 2015-8-23 07:44
大哥,那现在用什么?求告知 作者写这篇文章是2013年的时候。  详情 回复 发表于 2015-8-23 07:38

举报 使用道具

回复 支持 反对
ken    发表于 2015-8-23 07:38:43 | 显示全部楼层
wruih 发表于 2015-8-23 00:25
clutch 早就不好使了 。。。。。

大哥,那现在用什么?求告知  作者写这篇文章是2013年的时候。

点评

就是Clutch啊,去用1.4.7版本的吧,不过记得哟,现在是arm64,跟arm7被整合成一个fat文件的,所以你要在ipad air或者iphone6 iphone5s一类的设备来用Clutch来解包。。。版主别谢我,给我100个NB吧,手把手教  详情 回复 发表于 2015-8-27 19:46

举报 使用道具

回复 支持 反对
ken    发表于 2015-8-23 07:44:34 | 显示全部楼层
wruih 发表于 2015-8-23 00:25
clutch 早就不好使了 。。。。。

你用的是什么版本,现在2.0版本好使不?

点评

额 别这么客气 。我是屌丝 。我的帖子里有啊,dumpdecrypted  详情 回复 发表于 2015-8-23 14:17

举报 使用道具

回复 支持 反对
wruih    发表于 2015-8-23 14:17:48 | 显示全部楼层
ken 发表于 2015-8-23 07:44
你用的是什么版本,现在2.0版本好使不?

额 别这么客气 。我是屌丝 。我的帖子里有啊,dumpdecrypted

举报 使用道具

回复 支持 反对
水波摇曳    发表于 2015-8-23 16:47:54 | 显示全部楼层
wruih 发表于 2015-8-23 14:17
额 别这么客气 。我是屌丝 。我的帖子里有啊,dumpdecrypted

貌似  dumpdecrypted 只能 Mac 吧?

点评

额 你不用mac用啥?  详情 回复 发表于 2015-8-23 17:11

举报 使用道具

回复 支持 反对
wruih    发表于 2015-8-23 17:11:00 | 显示全部楼层
水波摇曳 发表于 2015-8-23 16:47
貌似  dumpdecrypted 只能 Mac 吧?

额 你不用mac用啥?

举报 使用道具

回复 支持 反对
水波摇曳    发表于 2015-8-23 18:12:26 | 显示全部楼层
wruih 发表于 2015-8-23 17:11
额 你不用mac用啥?

屌丝 只有Win

点评

我开始的时候 用虚拟机 遇到了各种各样的问题。。。你再遇到问题的时候 我可以帮忙  详情 回复 发表于 2015-8-23 18:15

举报 使用道具

回复 支持 反对
wruih    发表于 2015-8-23 18:15:43 | 显示全部楼层

我开始的时候 用虚拟机 遇到了各种各样的问题。。。你再遇到问题的时候 我可以帮忙

举报 使用道具

回复 支持 反对
FindAllBlue    发表于 2015-8-27 19:44:17 | 显示全部楼层
wruih 发表于 2015-8-23 00:25
clutch 早就不好使了 。。。。。

一直在用Clutch,而且基本上两三天用一次,

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表