theos-tweak 簡單認(rèn)知

一步一步學(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/tweakiphone/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

常見異常

  1. 報錯:Nothing to be done for `internal-library-compile'..
    原因:之前已經(jīng)編譯過,有緩存導(dǎo)致的,需要clean一下,命令 make clean

  2. 報錯:ERROR: package name has characters that aren't lowercase alphanums or '-+.'.
    原因:Package Name : 需要小寫, com.wesk.appleBWL 不符合規(guī)范,需要改成小寫,??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容