Objective-C头文件导出工具class-dump

首先,这个工具是开源的。作者网站:http://stevenygard.com/projects/class-dump/

用途:

分析库文件或可执行文件,得到Objective-C类和部分C结构体的信息。常见使用场景是得到系统SDK的私有API。头文件的例子请参考《UIWebView体系结构(六)UIWebView

原理:

Objective-C类的信息会有字符串来对应描述,分析保存这些信息的区域,梳理成Objective-C头文件输出。请参见《IDA反汇编/反编译静态分析iOS模拟器程序(七)识别类的信息

获取UIKit的私有API是最常用的了:

Cyan:~ liuhx$ ./class-dump -H -o ./UIKitHeader /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks/UIKit.framework/UIKit 

-H表示导出头文件

-o表示导出头文件的保存目录参数

最后是可执行文件的路径

得到头文件1058个。

更多使用方法可查看程序帮助或官方网站。

转载请注明出处:http://blog.csdn.net/hursing

时间: 2024-09-28 06:35:48

Objective-C头文件导出工具class-dump的相关文章

jni使用基础(四)之javah生成头文件

  javah使用:帮助我们生成头文件的工具   怎样使用javah? 1.先在命令行下运行:javah.如果能执行java而不能执行javah,就需要配置环境变量. 2.cd进入到java的目录文件下,先用javac把.java文件生成.class文件. 3.在.class文件目录下执行javah,生成头文件(注意:.class文件要在相对应的包目录结构下) 如:用eclipse的工程,在bin/classes目录下com/devchina/ndk/DevActivity,需要在classes

vc++-VC里面为什么要用def文件导出函数,直接在要用的地方包含头文件不行吗?

问题描述 VC里面为什么要用def文件导出函数,直接在要用的地方包含头文件不行吗? 1C VC里面为什么要用def文件导出函数,直接在要用的地方包含头文件不行吗? 解决方案 def用来导出dll函数列表,这么写比较直观一些,当然也可以直接在函数上修饰,两者都是可以的. 解决方案二: 为什么不直接包含要使用函数所在的头文件,而一定要导出? 解决方案三: 不是所有的函数都需要导出 解决方案四: 头文件里面是否应该包含函数的实现

visual studio-VS导出excel的头文件一堆

问题描述 VS导出excel的头文件一堆 用VS的MFC方案,添加"类型库中的MFC类"时,导出Excel的头文件.结果导出来很多头文件,如何像网上一样只导出一个Excel.h和Excel.cpp. 解决方案 新的类应该是很多文件了 老的才两个 解决方案二: VC6.0导出的是两个文件

C/C++ 头文件作用

最近在工作当中遇到了一点小问题,关于C语言头文件的应用问题,主要还是关于全局变量的定义和声明问题.学习C语言已经有好几年了,工作使用也近半年了,但是对于这部分的东西的确还没有深入的思考过.概念上还是比较模糊的,只是之前的使用大多比较简单,并没有牵涉到太复杂的工程,所以定义和声明还是比较简单而明了了的.但是最近的大工程让我在这方面吃到了一点点苦头,虽然看了别人的代码能够很快的改正,但是这些改正背后的原因却不知道.我想大多数喜欢C语言的程序员应该是和我一样的,总喜欢去追究程序问题背后的底层原因,而这

数据泵 EXPDP 导出工具的使用

--================================= --数据泵 EXPDP 导出工具的使用 --=================================       对于Oracle 数据库之间的导入导出,可以使用Oracle提供的导入导出工具EXP/IMP来实现.EXP/IMP是Oracle早期提供的数据导入导出工具.在Oracle 10g 中,提供了高速导入导出数据泵IMPDP,EXPDP,本文主要讲述EXPDP的用法.     关于IMPDP的用法,请参照:数

《并行计算的编程模型》一2.5.2 可移植平台头文件

2.5.2 可移植平台头文件即使使用诸如GASNet工具之类的资源,经常也需要编写特定平台的代码.例如包括针对操作系统的优化或针对给定编译器一些版本错误的解决方案.头文件portable_platform.h旨在简化管理平台特定代码所需的C预处理器逻辑.这提高了程序的可维护性并避免了在使用特定解决方案时可能出现的错误.该头文件中的C预处理逻辑用于识别操作系统.编译器.CPU和其他几个平台特性,并在统一的命名空间中导出这些信息.主要的分类信息如下所示: PLATFORM_OS_*:用于操作系统.

电子商务网站及类目头文件的定义

现在的公司是从事电子商务网站.年前公司的网站需要重新定义头文件,所以花了两天时间去收集.归类和整理相关title,keywords和description.这里把操作过程中的一些经验写出来和大家分享下. 对头文件内容部分结构的定义 公司网站是主营高端化妆品的电子商务网站,在关键字上竞争是相当激烈.因为目前主要是做百度搜索权重推广,所以选取了主推关键字百度自然排名前几名的网站进行了相关信息的归类和分析   从上面的结构分析后,对自己网站头文件的定义有了较为清晰的定位.当然排名好并不意味着是头文件写

DLL头文件的格式和应用

1.DLL的起源 动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而 来的.所有的C语言标准库函数都存放在某一函数库中.在链接应用程序的过程中,链接器从 库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中.这种方法同只 把函数储存在已编译的OBJ文件中相比更有利于代码的重用. 但随着Windows这样的多 任务环境的出现,函数库的方法显得过于累赘.如果为了完成屏幕输出.消息处理.内存管 理.对话框等操作,每个程序都不得不拥有自己的函数,那么Windows程序将变

文件同步工具Unison的使用方法

一:Unison简介 Unison是windows和unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致.unison拥有其它一些同步工具或文件系统的相同特性,但也有自己的特点: 跨平台使用: 对内核和用户权限没有特别要求: unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略: 只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似r