转:class-dump 使用

class-dump 官网地址:这里

我这里下载的是 class-dump-3.5.dmg 版本的。双击.dmg 文件,将  拉倒 /usr / local / bin 目录下[用open /usr 命令打开用户文件夹],这样就可以在终端使用 class-dump 命令了。

这里我演示dump系统自带的计算器,导出它的头文件。

命令如下:

class-dump -H /Applications/Calculator.app -o /Users/Rio/Desktop/calculate\ heads

解释:

/Applications/Calculator.app 是计算器app的路径

/Users/Rio/Desktop/calculate\ heads 是存放dump出来头文件的文件夹路径

-H表示导出头文件

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

  1. class-dump 3.5 (64 bit)
  2. Usage: class-dump [options] <mach-o-file>
  3. where options are:
  4. -a             show instance variable offsets
  5. -A             show implementation addresses
  6. --arch <arch>  choose a specific architecture from a universal binary (ppc, ppc64, i386, x86_64)
  7. -C <regex>     only display classes matching regular expression
  8. -f <str>       find string in method name
  9. -H             generate header files in current directory, or directory specified with -o
  10. -I             sort classes, categories, and protocols by inheritance (overrides -s)
  11. -o <dir>       output directory used for -H
  12. -r             recursively expand frameworks and fixed VM shared libraries
  13. -s             sort classes and categories by name
  14. -S             sort methods by name
  15. -t             suppress header in output, for testing
  16. --list-arches  list the arches in the file, then exit
  17. --sdk-ios      specify iOS SDK version (will look in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS<version>.sdk
  18. --sdk-mac      specify Mac OS X version (will look in /Developer/SDKs/MacOSX<version>.sdk
  19. --sdk-root     specify the full SDK root path (or use --sdk-ios/--sdk-mac for a shortcut)

运行命令,可以看到已经dump出头文件了,如下所示:

class-dump 虽然非常有用,但有时我们会发现 class-dump 执行失败,无法得到我们想要的 .h 文件,或者 .h 文件的内容是加密的密文。出现这种现象的原因是:class-dump 额作用对象必须是未经加密的可执行文件,而从 App Store 下载的 App 都是经过签名加密的,可执行文件被加上了一层“壳”。可以使用 AppCrackr 来自动砸壳。[注:还有一个更简单的办法就是通过越狱渠道下载应用,这些ipa都是无壳的,可以直接dump]

#dump出的.h文件中的属性和方法和实际的排序是相反的。

class-dump 使用的更多相关文章

  1. PMON failed to acquire latch, see PMON dump

    前几天,一台Oracle数据库(Oracle Database 10g Release 10.2.0.4.0 - 64bit Production)监控出现"PMON failed to a ...

  2. oracle dump数据库

    最近正在看老白的<DBA的思想天空>,了解数据块结构,想通过dump data block验证oracle对于行尾的NULL,是不占用存储空间的. 我们先来看一下怎样dump数据块: 1. ...

  3. Dump类型说明

    通过使用windbg提供DbgHelp库中的MiniDumpWriteDump函数在程序崩溃时写dump文件记录程序当时状态,为后续分析问题提供现场. 该函数提供了DumpType参数,让程序员根据具 ...

  4. 使用GDB 追踪依赖poco的so程序,core dump文件分析.

    前言 在windows 下 系统核心态程序蓝屏,会产生dump文件. 用户级程序在设置后,程序崩溃也会产生dump文件.以方便开发者用windbg进行分析. so,linux 系统也有一套这样的东东- ...

  5. 转:CentOS, 找不到dump命令:command not found

    dump 功能说明:备份文件系统.语 法:dump [-cnu][-0123456789][-b <区块大小>][-B <区块数目>][-d <密度>][-f &l ...

  6. slave IO流程之二:注册slave请求和dump请求

    slave IO流程已经在http://www.cnblogs.com/onlyac/p/5815566.html中有介绍 这次我们要探索注册slave请求和dump请求的报文格式和主要流程. 一.注 ...

  7. 使用MAT(Memory Analyzer Tool)工具分析dump文件--转

    原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...

  8. 认识Java Core和Heap Dump

    什么是Java Core和Heap Dump Java程序运行时,有时会产生Java Core及Heap Dump文件,它一般发生于Java程序遇到致命问题的情况下. 发生致命问题后,Java进程有时 ...

  9. sublime text 乱码生成.dump问题的解决方法

    title: sublime text 乱码生成.dump问题的解决方法 tags: sublime text,sublime text 3,.dump,乱码 grammar_cjkRuby: tru ...

  10. Oracle数据泵(Data Dump)错误汇集

    Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法.都是在使用过程中遇到的问题,以后陆 ...

随机推荐

  1. Python-CSS入门

    一.架构分析 页面 => div的层级结构 => 具有采用哪些功能标签显示内容 结构层 > 位置层(布局层) > 内容层 二.css引入 - 行间式 <!-- 简单直接, ...

  2. css之absolute

    一.absolute和float有相同的特性,包裹性和破坏性 1.absolute和float的相似(看下面的demo,如果图片在左上角,那么用float和absolute都一样) <!doct ...

  3. visual studio 2017 installer 安装包制作过程出现的问题---此安装程序需要.NET Framework 版本 3.5,请安装该版本,然后重新运行此安装程序,可以从Web获得.NET Framework 。要立即做此事吗?

    图一 visual studio 2017 installer 打包完成以后进行安装时,提示信息 “安装此安装程序需要.NET Framework 版本 3.5,请安装该版本,然后重新运行此安装程序, ...

  4. python 全栈开发,Day43(python全栈11期月考题)

    python全栈11期月考题 1.常用字符串格式化有哪些?并说明他们的区别 2.请手写一个单例模式(面试题) 3.利用 python 打印前一天的本地时间,格式为‘2018-01-30’(面试题) 4 ...

  5. ERP产品采购申请管理(三十八)

    BLL层代码: public class BioPurchaseBLL { /// <summary> /// 购进申请添加 /// </summary> /// <pa ...

  6. 050 sqoop的使用

    一:导入  mysql-->hdfs 1.准备 2.导入数据 可以看到在跑yarn. 3.在HDFS上看结果 默认的地址:hdfs的家目录. 4.在HDFS上指定目录 5.指定map的个数,相同 ...

  7. HDU-2066-一个人的旅行 【Dijkstra】

    <题目链接> 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历, ...

  8. hdu 2167 方格取数 【状压dp】(经典)

    <题目链接> 题目大意: 给出一些数字组成的n*n阶矩阵,这些数字都在[10,99]内,并且这个矩阵的  3<=n<=15,从这个矩阵中随机取出一些数字,在取完某个数字后,该数 ...

  9. python有序字典OrderedDict()

    转python创建有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections " ...

  10. Java基础--对象的序列化

    所有分布式应用常常需要跨平台,跨网络,因此要求所有传的参数.返回值都必须实现序列化. 比如常见的Dubbo分布式平台,里面的对象实体类必须实现序列化才能在网络间传递 一.定义 序列化:把Java对象转 ...