Theos的安裝和使用-iOS逆向工程
阿新 • • 發佈:2019-01-11
Theos的安裝和使用-iOS逆向工程
Theos就是一套越獄開發工具包
1. Theos的安裝
1.1 安裝homebrew
1.2 安裝dpkg
sudo brew install dpkg
1.3 安裝ldidsudo brew install ldid
1.4 安裝Theossudo git clone --recursive https://github.com/theos/theos.git /opt/theos
1.5 修改許可權sudo chown $(id -u):$(id -g) /opt/theos
export THEOS=/opt/theos
export PATH=/opt/theos/bin/:$PATH
如果出現commad not found執行: source ~/.bash_profile
1.7 $THEOS /bin/nic.pl
1.8 cd到任意可執行目錄執行:nic.pl
1.9 附加:如果報以下錯誤(1)dpkg-deb: error: obsolete compression type 'lzma'; use xz instead
解決:找到/opt/theos/makefiles/package/deb.mk檔案,將_THEOS_PLATFORM_DPKG_DEB_COMPRESSION ?= lzma 改為 _THEOS_PLATFORM_DPKG_DEB_COMPRESSION ?= xz
(2)dpkg-deb: file `/tmp/_theos_install.deb' contains ununderstood data member data.tar.xz
解決:找到/opt/theos/makefiles/package/deb.mk檔案,將$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
改為
$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
2. 使用
2.1 cd到任意可執行目錄執行nic.pl ,如圖2.2 執行完成之後在theoscsdn資料夾中,將看到以下幾個檔案
2.3 打包前的工作編寫Tweak.xm
#import <SpringBoard/SpringBoard.h> %hook SpringBoard - (void)applicationDidFinishLaunching:(id)application { %orig; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello 通" message:@"theos執行成功" delegate:self cancelButtonTitle:@"好的" otherButtonTitles:nil]; [alert show]; } %end
語法補充:
- %hook 指定需要hook的類名,以%end結尾
- %log 用來列印log的,將資訊輸入到syslog中,如%log((NSString *)@"tong")
- %orig 執行被hook函式的原始程式碼,類似於super.method功能
- %group 該指令用於%hook的分組,%group後邊跟的是組名,%group也是必須以%end結尾,其中可以包含多個%hook
- %init 該指令用來初始化某個%group,一個group只有被初始化後才可生效,init必須在hook中進行執行。
- %ctor tweak的構造器,用來初始化,如果不顯式定義,Theos就會自動生成一個%ctor,並在其中呼叫%init(_ungrouped). 如:%ctor { %init(_ungrouped)}
- %new 該指令用來給現有的class新增一個新的函式。與Runtime中的class_addMethod相同。
- %c 該指令用來獲取一個類的名稱,類似於objc_getClass。
2.4 配置 Makefile
export THEOS_DEVICE_IP = 192.168.2.98 配置裝置ip
執行完成之後重啟
after-install::install.exec "killall -9 SpringBoard"
#裝置ip地址,放在此檔案最上面
export THEOS_DEVICE_IP = 192.168.2.98
include $(THEOS)/makefiles/common.mk
TWEAK_NAME = TheosCSDN
TheosCSDN_FILES = Tweak.xm
include $(THEOS_MAKE_PATH)/tweak.mk
#執行完成後重啟SpringBoard
after-install::
install.exec "killall -9 SpringBoard"
3. 編譯
make
4. 打包
make package
5. 安裝(期間輸入兩次密碼,第一次安裝輸入,第二次重啟SpringBoard輸入)
make install
5.1 安裝完成之後在手機Cydia中會出現如圖
5.2 此時在手機鎖屏介面上出現了彈框如圖
整個使用過程結束