ios逆向学习过程——使用theos创建第一个tweak
2019-06-08 16:54
2695 查看
使用Theos创建、编译、安装tweak
1.使用theos目录下的nic.pl创建工程
$
theos/bin/nic.pl
选择 [10.] iphone/tweak ,按照提示填入内容:
Project Name :工程名
Package Name :包名,类似于bundle identifier,命名规则一般倒着写,如com.xxhook.firsttweak
Author/Maintainer Name:作者名
MobileSubstrate Bundle filte :tweak作用的对象的bundle identifier,如com.apple.springboard
List of applications to terminate upon installation :tweak安装完成后需要重启的应用,以进程名表示,如SpringBoard
LongdeMac-mini:~ long$ theos/bin/nic.pl NIC 2.0 - New Instance Creator ------------------------------ [1.] iphone/activator_event [2.] iphone/application_modern [3.] iphone/application_swift [4.] iphone/flipswitch_switch [5.] iphone/framework [6.] iphone/library [7.] iphone/preference_bundle_modern [8.] iphone/tool [9.] iphone/tool_swift [10.] iphone/tweak [11.] iphone/xpc_service Choose a Template (required): 10 Project Name (required): FirstTweak Package Name [com.yourcompany.firsttweak]: com.xxhook.firsttweak Author/Maintainer Name [Long]: longzei [iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]:com.apple.springboard [iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]: SpringBoard Instantiating iphone/tweak in firsttweak/... Done. LongdeMac-mini:~ long$
2.各文件讲解:
(1)Makefile文件指定工程用到的文件、框架、库等信息,将整个过程自动化。修改其中内容:
指定处理器架构,添加:ARCHS=armv7 arm64
指定SDK版本:TARGET = iphone:latest:12.0 //该语句指定以Xcode附带的最新版本SDK编译,发布对象为ios12.0及以上版本。
(2)Tweak.xm。hook内容的主要文件。
%hook 指定需要hook的class,以%hook开头,以%end结尾(注意是百分号%)。
%log 该语句在%hook内部使用,可以将函数的类名、参数等信息写入syslog,可以以 %log([(),…]) 的格式追加打印其他信息
%orig 该语句在%hook内部使用,执行原函数中的原始代码(若无%orig 则原函数的原始代码不执行)。如下
%hook SpringBoard - (void)_menuButtonDown:(id)down { %log((NSString*)@"iOSRE",(NSString*)@"Debug"); %orig; } %end
3.编译
make
注1:若未配置sdk环境,会提示以下错误
==> Error: You do not have any SDKs in /Library/Developer/CommandLineTools/Platforms/iPhoneOS.platform/Developer/SDKs or /Users/long/theos/sdks
解决办法:
sudo xcode-select --switch /Applications/Xcode.app
注2:在文本编辑器中编辑文件,有可能因为字符格式与Xcode中的不一致导致错误。不要再使用文本编辑器编辑。
error: nonASCII characters are not allowed outside of literals and identifiers
4.打包
make package
编译后打包,打包后生成后缀名为deb的安装包
5.安装
make install
将该安装包,安装到相应的越狱设备。若之前没在Makefile中添加指定设备ip,则重新修改Makefile文件,添加
THEOS_DEVICE_IP = xxx.xxx.xxx.xxx
相关文章推荐
- THEOS的第一个TWeak的成功创建
- iOS 的本地化使用和创建过程
- ios学习总结(1) -- 创建第一个ios项目
- 【学习总结】IOS程序运行过程 、UIWindow 、controller 、 UIView 创建过程的总结
- 微信iOS消息拦截插件教程-第一个tweak编译过程
- Objective-C学习-如何使用Xcode4.2和Interface Builder创建自己第一个界面产品
- iOS 学习笔记二【cocopods安装使用和安装过程中遇到的问题及解决办法】
- XCode中创建第一个类 -记录学习过程
- iOS Hacker 使用Theos开发tweak
- ios逆向学习过程——App砸壳、导出头文件
- iOS 的本地化使用和创建过程
- IOS基础学习日志(七)利用dispatch_once创建单例及使用
- XCode中创建第一个类 -记录学习过程
- IOS开发-UI学习-使用代码创建button
- iOS_逆向_第一个tweak
- IOS基础学习日志(七)利用dispatch_once创建单例及使用
- ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
- Xcode学习笔记---如何使用Xcode中的storyboard构建你的第一个IOS应用
- ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
- iOS 的本地化使用和创建过程