码迷,mamicode.com
首页 > 其他好文 > 详细

查看私有方法

时间:2015-03-08 17:14:01      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

简介

Class-dump 是一款用来检测存储在 Mach-O 文件里的 Objective-C runtime 信息的命令行工具。他可以检测出 class,category,protocol 的声明。和 ‘otool -ov‘ 产生的信息类似,但是 Class-dump 产生的是 Objective-C 语法格式的声明,所以它的可读性更高。

为什么使用 Class-dump

它一个强大的工具。有了它,你可以查看一些闭源的应用,framework 及 bundle。查看不同版本之间接口的变化。体验私有库,或者查看 AppKit 有哪些私有的 API。学习 Mail.app 使用了哪些扩展的私有API。

下载

安装

下载完成后把 class-dump-3.5.dmg 内的 class-dump 拷贝到 /usr/bin/ 路径下,并且赋予执行权限。

sudo cp class-dump /usr/bin

sudo chmod 777 /usr/bin/class-dump

使用

class-dump [options] 

where options are: -a 显示实例变量的偏移量。 -A 显示实现的地址。 --arch 从一个通用架构类型的二进制文件(ppc,ppc64,i386,x86_64)中选择一个指定的架构类型。 -C 仅显示匹配正则表达式的类。 -f 在方法命中查找字符串。 -H 在当前目录生成头文件,或者使用 -o 参数指定生成头文件的目录。 -I 对 类,categories,procotols 按照继承关系排序(会覆盖 -s 参数) -o 

指定输出目录,配合 -H 使用。 -r 递归扩展 frameworks,并且修复 VM 共享库。 -s 把类和 categories 按名称排序。 -S 把方法按名称排序 -t 限制输出头,用于测试 --list-arches 列出文件的架构类型, 然后退出 --sdk-ios 指定 iOS SDK 版本 (将会查找 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk --sdk-mac 指定 Mac OS X 版本 (将会查找 /Developer/SDKs/MacOSX.sdk --sdk-root 指定 SDK 完整根路径(或者简单使用 --sdk-ios/--sdk-mac)

实践

我们知道从 App Store 下载的 App 都是经过加密的,有一层壳,我们得先砸壳,本文不讲砸壳,本只讲 class-dump 的使用。

我随机选取了我手机里的一款 App,名字叫《早朝》,是一款简单的 RSS 阅读工具,(说实话,简单到完全没什么逆向的价值)。砸完壳之后的文件可以在 这里下载,然后我们直接对其 dump 一把。

class-dump -H iOSRSS.decrypted -o iOSRSS.h

然后我们可以看到在当前目录下生成了 iOSRSS.h 的文件夹,所有 dump 出来的头文件都在里面了。

技术分享

然后我们就可以查看每个类,category,protocol 的声明了。


查看私有方法

标签:

原文地址:http://blog.csdn.net/learnios/article/details/44133809

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!