ios 逆向之基于theos打包

iOS逆向大部分工具都是基于THEOS跨平台打包工具,比如说此例子,我们来先来说说Theos打包的makefile打包,先介绍一下包里的结构

#theos指令安装手机ip
THEOS_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的进程为lockdownd
INSTALL_TARGET_PROCESSES = lockdownd

#这个应该是固定要导入的依赖关系
include $(THEOS)/makefiles/common.mk

#指导编译tweek名称
TWEAK_NAME = XcodeRootDebug

#指导tweak编译那些文件,格式为tweak名字_FILES等等
XcodeRootDebug_FILES = Tweak.x
XcodeRootDebug_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/PreferenceBundles
XcodeRootDebugPrefs_CFLAGS = -fobjc-arc
#导入bundle编译依赖的mk
include $(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版本,则会编译报错
ios 逆向之基于theos打包_第1张图片

make打包命令make package
参照:
https://my.oschina.net/zhangk...
https://github.com/theos/sdks
https://github.com/theos/theo...
https://wizardforcel.gitbooks...

你可能感兴趣的:(iosmakefile)