一步一步學(xué)逆向
theos-tweak 應(yīng)該是我們動態(tài)分析中,最為常用的工具了。 先做個簡單介紹。
準(zhǔn)備: 越獄的iPhone手機(jī)
theos的安裝
從github下載theos,將theos-master文件名改為theos放在 /opt/文件下,如下:

image-20220726212035860.png
theos 使用命令:
創(chuàng)建工程:nic.pl
? ios /opt/theos/bin/nic.pl
NIC 2.0 - New Instance Creator
------------------------------
[1.] iphone/activator_event
[2.] iphone/activator_listener
[3.] iphone/application_modern
[4.] iphone/application_swift
[5.] iphone/control_center_module-11up
[6.] iphone/cydget
[7.] iphone/flipswitch_switch
[8.] iphone/framework
[9.] iphone/library
[10.] iphone/notification_center_widget
[11.] iphone/notification_center_widget-7up
[12.] iphone/preference_bundle
[13.] iphone/preference_bundle_swift
[14.] iphone/theme
[15.] iphone/tool
[16.] iphone/tool_swift
[17.] iphone/tweak
[18.] iphone/tweak_with_simple_preferences
[19.] iphone/xpc_service
[20.] iphone/xpc_service_modern
Choose a Template (required): 18
Project Name (required): bwlTest
Package Name [com.yourcompany.bwltest]: com.wesk.bwltest
Author/Maintainer Name [wujian]: weskhen
[iphone/tweak_with_simple_preferences] MobileSubstrate Bundle filter [com.apple.springboard]: com.apple.mobilenotes
[iphone/tweak_with_simple_preferences] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]:
Instantiating iphone/tweak_with_simple_preferences in bwltest/...
Done.
結(jié)構(gòu)對應(yīng)解釋:
- 填寫項(xiàng)目信息:創(chuàng)建的方式,一般選擇
iphone/tweak或iphone/tweak_with_simple_preferences的編號 - Project Name:項(xiàng)?名稱,無要求
- Package Name:項(xiàng)?ID,隨便寫? 當(dāng)前要求必需要小寫
- Author/Maintainer Name:作者,直接敲回車按照默認(rèn)做法就?(默認(rèn)是Mac上的?戶名) ,隨便寫
- [iphone/tweak] MobileSubstrate Bundle filter :需要修改的目標(biāo)APP的Bundle Identifier(系統(tǒng)備忘錄com.apple.mobilenotes) 可以通過Cycript查看APP的Bundle Identifier
- [iphone/tweak] List of applications to terminate upon installation:安裝后終止的應(yīng)用程序列表,可忽略
創(chuàng)建的目錄:
-
Tweak.x:重要文件,類的hook實(shí)現(xiàn)
需要hook具體類,具體查看Logos語法:http://iphonedevwiki.net/index.php/Logos
control:工程配置的信息
-
Makefile:重要文件,THEOS項(xiàng)目配置信息
如下結(jié)構(gòu):
TARGET := iphone:clang:latest:7.0
# 指手機(jī)系統(tǒng)中的進(jìn)程
INSTALL_TARGET_PROCESSES = SpringBoard
# 局域網(wǎng)內(nèi)的手機(jī)ip地址, 默認(rèn)通過USB端口
THEOS_DEVICE_IP = 10.15.48.140
# 監(jiān)聽端口,默認(rèn)就是22
THEOS_DEVICE_PORT = 22
# 支持的架構(gòu)
ARCHS = armv7 arm64
# Tweak.x文件需要的 famework 庫
iOSRE_FRAMEWORKS=UIKit Foundation
include $(THEOS)/makefiles/common.mk
# 工程名
TWEAK_NAME = tphook
tphook_FILES = Tweak.x
tphook_CFLAGS = -fobjc-arc
include $(THEOS_MAKE_PATH)/tweak.mk
上面的通道,如果開發(fā)中,可以直接使用usb的,利用愛思助手等工具,一鍵“打開ssh通道”。
- .theos :隱藏文件夾
常見命令
修改Tweak.x文件之后,即可使用相關(guān)命令:
- 編譯命令:
make - 打包成deb命令:
make package - 安裝命令:
make install - 打包成deb命令并安裝:
make package install - 清除緩存命令:
make clean
常見異常
報錯:Nothing to be done for `internal-library-compile'..
原因:之前已經(jīng)編譯過,有緩存導(dǎo)致的,需要clean一下,命令 make clean報錯:ERROR: package name has characters that aren't lowercase alphanums or '-+.'.
原因:Package Name : 需要小寫, com.wesk.appleBWL 不符合規(guī)范,需要改成小寫,??