iOS逆向 开发工具
1、Class-dump
作用:利用
OC
的runtime
特性将存储在Mach-O
文件中的@interface、@protocal
信息提取出来并生产对应的.h
文件,通过该文件可查看应用所有的类,及类的属性、成员变量、方法。
Mach-O
:它是可执行文件、目标代码、动态库、内核转储的文件格式,具有很强的扩展性。
class-dump-z
:使用方法同class-dump
,是class-dump
的改进版,速度很快。
https://code.google.com/archive/p/networkpx/wikis/class_dump_z.wiki
下载地址 :http://stevenygard.com/projects/class-dump
下载后将class-dump
复制到/usr/bin
下,在Terminal
中执行 以下命令赋予可读可写可执行权限:
sudo chmod 777 /usr/bin/class-dump
运行class-dump
查看参数:
class-dump 3.5 (64 bit) (Debug version compiled Sep 17 2017 16:24:48)
Usage: class-dump [options] <mach-o-file>
where options are:
-a show instance variable offsets
-A show implementation addresses
--arch <arch> choose a specific architecture from a universal binary (ppc, ppc64, i386, x86_64, armv6, armv7, armv7s, arm64)
-C <regex> only display classes matching regular expression
-f <str> 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 <dir> 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 for /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS<version>.sdk
or /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS<version>.sdk)
--sdk-mac specify Mac OS X version (will look for /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX<version>.sdk
or /Developer/SDKs/MacOSX<version>.sdk)
--sdk-root specify the full SDK root path (or use --sdk-ios/--sdk-mac for a shortcut)
使用方法:
class-dump -H WeChat -o wxh
作用对象必须为未加密的可执行文件,签名后的需要砸壳。
附带判断可执行文件是否加密命令:
otool -l WeChat|grep cry
2、Theos
安装 command line tools
在终端执行:
xcode-select --install
sudo xcode-select -s
/Applications/X**codeName**/Contents/Developer (指定XcodeName为默认的Xcode)
下载地址:https://github.com/theos/theos
将theos-master
改为theos
放在/opt/
文件下
3、配置ldid
Ldid
是专门用来签名iOS
可执行文件的工具,用以在越狱iOS
中取代Xcode
自带的codesign
。下载ldid
:
http://joedj.net/ldid
把ldid放在/opt/theos/bin
下 再执行以下命令赋予可读可写可执行权限:
Sudo chmod 777 /opt/theos/bin/ldid
4、配置CydiaSubstrate
执行以下命令运行Theos
的自动化配置脚本:
sudo /opt/theos/bin/bootstrap.sh substrate
5、配置dpkg-deb
deb
是越狱开发安装包的标准格式,dpkg-deb
是一个用于操作deb
文件的工具,有了这个工具,Theos
才能正确地把工程打包成为deb
文件。下载dm.pl
:
https://raw.githubusercontent.com/DHowett/dm.pl/master/dm.pl
将其重命名为dpkg-deb
后,放到/opt/theos/bin/
目录下,执行下面命令赋予可执行权限:
sudo chmod 777 /opt/theos/bin/dpkg-deb
6、配置Theos NIC templates
内置5
种Theos
工程类型的模板,方便创建多样的Theos
工程。获取5
种模板:
Https://github.com/DHowett/theos-nic-templates/archive/master.zip
解压后放到 /opt/theos/templates/iphone/ 下。
以上开发工具安装完成,可能只是一部分开发工具。