特特特特特別強調,只用於技術交流,任何責任我都不想負~~
再特特特特特別強調,若是你一步一步跟着作,出現了任何問題,任何報錯。不要急不要急,後面會有您想要的。ios
本例攔截某即時通信軟件😛的手機登陸頁面中的登陸點擊事件。步驟以下:spring
NIC 2.0 - New Instance Creator
------------------------------
[1.] iphone/activator_event
[2.] iphone/application_modern
[3.] iphone/cydget
[4.] iphone/flipswitch_switch
[5.] iphone/framework
[6.] iphone/ios7_notification_center_widget
[7.] iphone/library
[8.] iphone/notification_center_widget
[9.] iphone/preference_bundle_modern
[10.] iphone/tool
[11.] iphone/tweak
[12.] iphone/xpc_service
複製代碼
$ 11
Project Name (required): //建立項目的惟一名字。
Package Name [com.yourcompany.wechatpwddemo]: //建立包的惟一ID,中括號中爲默認選項,注意小寫。
Author/Maintainer Name [馬萬旻]://建立者的名字
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]://須要注入的目標應用的Bundle ID(你要爲哪一個APP編寫tweak)
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]://安裝成功後殺掉的制定進程(SpringBoard就是咱們正向開發中心心念念想控制的那個桌面😂)bash
初始化成功後,會在當前目錄中生成一個與你的Project Name同名的純小寫文件夾,子目錄下有四個文件。app
%hook WCAccountNewPhoneVerifyViewController
- (void)onNext {
%orig;
UIView *view = MSHookIvar<UIView *>(self,"_pwdView");
UITextField *pwdTf = view.subviews[0].subviews[0];
NSLog(@"\n\n\n\n\n\n\n\n%@\n\n\n\n\n\n\n\n\n", pwdTf.text);
}
%end
複製代碼
在用戶輸入密碼的時候,將會在控制檯輸出密碼。ssh
$ make
,使用$ make message=yes
能夠看到Theos的內部處理細節。編譯完成後,會生成一個隱藏的.theos文件夾和一個obj文件夾。$ make package
。完成後會生成一個packages文件夾,文件夾下會有一個deb包。$ make install
,這裏會報錯,須要在環境變量中設置,能夠設置在makefile文件中,也能夠設置在.zchrc/.bash_profile中。 這裏的THEOS_DEVICE_IP和THEOS_DEVICE_PORT是ssh登陸的IP和端口。$ export THEOS_DEVICE_IP=127.0.0.1
$ export THEOS_DEVICE_PORT=12345
複製代碼
安裝完成後,會在設備的Library/MobileSubstrate/DynamicLibraries/
查看到你的dylib和plist。如下方式能夠查看日誌:iphone
idevicesyslog | grep 關鍵字
命令,查看日誌。在使用theos的時候,有幾個坑,點這裏。ide