美文网首页IOS逆向iOS Developer
iOS简单逆向之:Class-Dump、Hopper

iOS简单逆向之:Class-Dump、Hopper

作者: 甘邦 | 来源:发表于2017-03-18 15:00 被阅读1810次
    前言

    当你想实现一个功能的时候,无从下手,毫无思路的时候,搜遍了网上也没有这方面的资料的时候,是不是感到很无力。但是从别人的App上面又可以看到类似的功能,这时候是不是很想看看别人的源码,把里面有价值的内容都榨干了呢?

    下面简单介绍两种工具帮助你

    一、Class-Dump
    1.1 Class-Dunp 简介

    Class-Dump是一款可以导出头文件的命令行工具,改程序用于检查objective - c运行时信息存储在Mach-O文件,它生成类的声明,类别和协议。

    1.2 Class-Dump 下载地址

    http://stevenygard.com/projects/class-dump/

    地址
    1.3 安装

    双击.dmg 文件打开,把里面的文件拖到 /usr/local/bin 目录下,因为是修改了系统的路径,所以需要输入本机的密码,这样就可以在终端使用 class-dump 命令了。

    1.4 使用

    因为这里dump的是应用后缀是.app而不是.ipa,所以我们要把我们的IPA文件归档处理:

    归档

    然后,打开刚才归档的 /Payload 目录下,那个就是.app 文件了。

    ![.app文件](https://img.haomeiwen.com/i2986999/84a5164f6f900118.png?imageMogr2/auto-orient/strip%7Ci
    ![Uploading 6D04C291-0C02-431A-8887-DCBEE20EB21A_302676.png . . .]mageView2/2/w/480)

    然后打开终端,输入命令

    class-dump -H /Users/apple/Desktop/重新打包/Payload/XXX.app -o /Users/apple/Desktop/DumpHeaderClass

    -H 后面的内容为需要dump的 .app 文件路径
    -o 后面的内容为输出的头文件保存路径

    因为我是保存到桌面的,所以等命令执行完成之后,我就可以在桌面上找到DumpHeaderClass这个名字的文件夹了,并且里面已经装满了我们想要的头文件了:

    头文件
    二、Hopper
    2.1 什么是Hopper

    Hopper Disassembler是Mac上的一款二进制反汇编器,基本上满足了工作上的反汇编的需要,包括伪代码以及控制流图(Control Flow Graph),支持ARM指令集并针对Objective-C的做了优化。

    2.2 下载地址

    官网地址:https://www.hopperapp.com

    2.3 使用

    这个工具的强大之处,在于二进制文件在它面前,基本是毫无遮掩的,所有函数名,方法名,代码逻辑结构,你都可以一览无遗。

    Hopper

    找到我们归档的 .app 文件,右键 —> 显示包内容 打开:

    右键打开

    找到里面的二进制文件,下面我们以 网易云音乐的 为例子:

    二进制文件

    最后直接把这个文件拖到Hopper 中,下面就是:

    整体目录

    左边是列出了所有的方法,而且点击右上角的两个图标还可以切换不同的查看方式,下面以查看源码为例子:

    查看源码

    OK!你已经可以查看你所想要看到的信息了,想想真有意思。

    总结

    对于上面的两种方法,都必须是已经砸壳的IPA文件,不然的话,是没办法导出头文件的。

    如果对代码做了处理,也是看不到里面的方法名的。

    下一篇文章介绍如何进行iOS核心代码加密,防止别人通过上面的工具来查看我们的核心代码信息。

    相关文章

      网友评论

        本文标题:iOS简单逆向之:Class-Dump、Hopper

        本文链接:https://www.haomeiwen.com/subject/zpeenttx.html