iOS逆向大部分工具都是基于THEOS跨平台打包工具,比如说此例子,咱们来先来说说Theos打包的makefile打包,先介绍一下包里的构造
#theos指令装置手机ipTHEOS_DEVICE_IP = localhost -o StrictHostKeyChecking=no#theos指令装置手机端口THEOS_DEVICE_PORT = 2222#ARCHS = arm64 arm64e#指定架构ARCHS = arm64#TARGET = iphone:clang:14.5:9.0#iphone示意是打手机类型,14.5示意是iphoneosSDk版本为14.5 9.0示意最低兼容版本TARGET = iphone:14.5:9.0#指定hook的过程为lockdowndINSTALL_TARGET_PROCESSES = lockdownd#这个应该是固定要导入的依赖关系include $(THEOS)/makefiles/common.mk#领导编译tweek名称TWEAK_NAME = XcodeRootDebug#领导tweak编译那些文件,格局为tweak名字_FILES等等XcodeRootDebug_FILES = Tweak.xXcodeRootDebug_CFLAGS = -fobjc-arc#XcodeRootDebug_FRAMEWORKS = UIKit CoreFoundation Foundation#须要导入tweak编译依赖的mk文件include $(THEOS_MAKE_PATH)/tweak.mk#领导编译bundle名称BUNDLE_NAME = XcodeRootDebugPrefs#指定编译的Files,名称格局为 bundle名字_FILES 等等XcodeRootDebugPrefs_FILES = XRDRootListController.m#指定依赖的库XcodeRootDebugPrefs_FRAMEWORKS = UIKit CoreFoundation Foundation#指定依赖的公有库XcodeRootDebugPrefs_PRIVATE_FRAMEWORKS = Preferences#指定bundle的在手机上的装置目录XcodeRootDebugPrefs_INSTALL_PATH = /Library/PreferenceBundlesXcodeRootDebugPrefs_CFLAGS = -fobjc-arc#导入bundle编译依赖的mkinclude $(THEOS_MAKE_PATH)/bundle.mk
这里有两个坑,theos须要本人下载SDKS库,而不是用零碎的SDK库,通过下载链接下载复制到Theos装置目录sdks文件夹下,我电脑是/opt/theos/sdks,这里和TARGET = iphone:14.5:9.0中的14.5绝对应,如果/opt/theos/sdks门路下,没有对应的sdk版本,则会编译报错
make打包命令make package
参照:
https://my.oschina.net/zhangk...
https://github.com/theos/sdks
https://github.com/theos/theo...
https://wizardforcel.gitbooks...