ios逆向工具Class-dump的安装和导出.h文件的教程

目录

  • 官网文件安装方法
  • 运行报错 Cannot find offset for address xxx in stringAtAddress:
    • 解决运行报错的版本下载地址:
  • 获取app文件
  • class-dump命令用法
  • 把信息输出到文件目录

官网地址
class-dump-3.5.dmg的下载地址

官网文件安装方法

双击安装dmg文件以后把里面的class-dump文件,复制到 /usr/local/bin/ 目录下,这样才能在终端的命令行里面输入class-dump命令.

ios逆向工具Class-dump的安装和导出.h文件的教程_第1张图片

建议不要安装官网的有的程序会运行报错,直接安装下面这个版本

运行报错 Cannot find offset for address xxx in stringAtAddress:

解决运行报错的版本下载地址:

下载这个 github可执行文件
然后复制到/usr/local/bin目录中,然后修改文件权限,终端输入:sudo chmod 777 /usr/local/bin/class-dump
然后第一次运行,会提示为信任的开发者,在mac里的"系统偏好设置"->安全性与隐私->通用-> 仍然要打开class-dump,然后再执行:class-dump -H 文件名 -o headers 就会成功把所有.h文件整出来

获取app文件

如果是你自己生成的app,你已经有了app源代码可以直接在xcode里面的product拿到这个app包.但是都有源代码了就不用逆向了.我在要逆向的是没有源代码的app
用越狱手机安装这个app.然后运行app.再用cycript工具 加载app的进程,例如我现在运行我做实验写的一个app叫testOc.

cycript -p testOc

找到 app包的位置执行命令:[NSBundle mainBundle].bundlePath
找到了app的位置如下:/private/var/containers/Bundle/Application/9B1C0412-DA10-41BD-8914-B80E7592D974/testOc.app

tandeyueyu6s:~ root# cycript -p testOc
cy# [NSBundle mainBundle].bundlePath
@"/private/var/containers/Bundle/Application/9B1C0412-DA10-41BD-8914-B80E7592D974/testOc.app"

通过iFunBox把这个app包复制到mac上面
ios逆向工具Class-dump的安装和导出.h文件的教程_第2张图片

把复制到mac上的 文件夹 testOc右键->显示包内容,找到里面app同名的文件 testOc,这个文件就是我们要分析的文件了
ios逆向工具Class-dump的安装和导出.h文件的教程_第3张图片

class-dump命令用法

class-dump 文件名

class-dump加文件名字是直接在终端打印这个app的信息

终端进入ting文件夹下

tdw@bogon testOc.app % class-dump testOc

会列出这个app的一些信息,如下图:
ios逆向工具Class-dump的安装和导出.h文件的教程_第4张图片

把信息输出到文件目录

class-dump -H app名字 -o 输出文件夹名字

例如下面:把testOc分析结果输出到上一层的output文件夹:

class-dump -H testOc -o ../output

看到output文件夹下有4个.h头文件
AppDelegate.h
CDStructures.h
NSObject-Protocol.h
UlApplicationDelegate-Protocol.h
ViewController.h
如下图:
ios逆向工具Class-dump的安装和导出.h文件的教程_第5张图片
打开一个头文件ViewController.h,查看里面的内容,里面有用到的方法和成员变量,虽然和我原来写的不一样,我原来写的是把这些变量和方法都写在了.m文件中,class-dump是把这些方法放在.h中,但是变量名字和方法名字都一样.可以通过这些变量和名字,以后再调用这些方法.
ios逆向工具Class-dump的安装和导出.h文件的教程_第6张图片

你可能感兴趣的:(ios,逆向,ios,逆向,class,dump,class-dump)