iOS12砸壳与反编译头文件

前言

反编译应用的头文件,可以了解应用的整体架构,学习用户的优秀架构经验和规范自己的函数以及文件的命名。
iOS11+的不完美越狱,使得Clutch frida dumpdecrypted基本都出现 Kill 9的错误。经过不断的尝试,发现了CrackerXI+对iOS11+不完美越狱仍然有效果。

安装

  1. 将手机越狱,并在越狱工具Cydia中添加源地址https://apt.cydiami.com/
    ,添加成功后,在Cydia中搜索CrackerXI+并安装。
  2. mac上安装iFunbox V1.8,百度云密码:bgfs
  3. mac上下载class-dump,根据issues93更改源码,然后将项目编译将可执行文件class-dump拖动到/usr/local/bin/目录下,并在终端中检查是否安装好,如下显示则表示安装好了。
myMacBook-Pro-2:~ test$ class-dump
class-dump 3.5 (64 bit)
Usage: class-dump [options] 

  where options are:
        -a             show instance variable offsets
        -A             show implementation addresses
        --arch   choose a specific architecture from a universal binary (ppc, ppc64, i386, x86_64, armv6, armv7, armv7s, arm64)
        -C      only display classes matching regular expression
        -f        find string in method name
        -H             generate header files in current directory, or directory specified with -o
        -I             sort classes, categories, and protocols by inheritance (overrides -s)
        -o        output directory used for -H
        -r             recursively expand frameworks and fixed VM shared libraries
        -s             sort classes and categories by name
        -S             sort methods by name
        -t             suppress header in output, for testing
        --list-arches  list the arches in the file, then exit
        --sdk-ios      specify iOS SDK version (will look in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
        --sdk-mac      specify Mac OS X version (will look in /Developer/SDKs/MacOSX.sdk
        --sdk-root     specify the full SDK root path (or use --sdk-ios/--sdk-mac for a shortcut)
myMacBook-Pro-2:~ test$ 

使用

  1. 打开CrackerXI+,在Settings中设置CrackerXI Hookenable,然后在AppList中找到要脱壳的APP码云并且点击,选择YES,Full IPA。会自动跳转到码云过了数秒会自动返回CrackerXI+提示成功,并且显示已经脱壳的ipa文件路径

    IMG_1093.PNG

    IMG_67293DF12000-1.jpeg

  2. 手机使用数据线连接电脑,然后使用电脑的iFunbox访问手机的var/mobile/Documents/CrackerXI/目录,将脱壳IPA文件码云_1.6.1_CrackerXI.ipa文件拷贝到电脑上。

  3. 右键脱壳IPA文件选择打开方式中的归档实用工具或者The Unarchiver解压。打开解压后的文件夹Payload,因为码云项目使用中文,解压包乱码,先将乱码的文件夹更名成码云,然后右键打开Payload/码云,找到代码二进制文件,记住文件名

    屏幕快照 2020-03-09 上午11.12.43.png

    屏幕快照 2020-03-09 上午11.14.24.png

  4. 在终端中cd进入Payload文件夹 运行如下命令,就可以得到反编译的头文件,接下来就可以欣赏别人的代码了。

myMacBook-Pro-2:Payload test$ class-dump -H 码云.app/码云 -o ./ClassDumpHeader
myMacBook-Pro-2:Payload test$ 
屏幕快照 2020-03-09 上午11.32.27.png

注意:当出现如下错误的时候可能是因为这个APP使用了Swift和OC混编

2020-03-09 11:35:31.250 class-dump[5309:105781] Error: Cannot find offset for address 0x780000000100d4cc in stringAtAddress:

可以使用class-dump-swift来进行反编译,安装方式和使用方法与class-dump是一致的,class-dump-swift需要用源码编译,我这里有编译好的百度云 密码:vhe0

swiftd -H 码云.app/码云 -o ./ClassDumpHeader

以上就是iOS11、iOS12、iOS13中不完美越狱的脱壳和反编译头文件的方法,希望可以帮助到其他逆向初学者。
本文所用到的码云为App Store下载的开源软件,项目地址

Reveal(21)检查其他应用页面布局

你可能感兴趣的:(iOS12砸壳与反编译头文件)