iOS 逆向工具
一、安裝和配置
Theos是一個越獄開發工具包,Logos語法。
1. 指定安裝路徑
export THEOS=/opt/theos
2. 從github下載
sudo git clone --recursive git://github.com/DHowett/theos.git $THEOS
3. 配置ldid
. 用來簽名iOS可執行檔案的工具,用以在越獄iOS中取代Xcode自帶的codesign;
. 下載地址:http://joedj.net/ldid
. 放到/opt/theos/bin/
. 賦予可執行許可權:sudo chmod 777 /opt/theos/bin/ldid
4. 配置 CydiaSubstrate
最簡單的方法,將越獄後的手機,連上Mac ,然後使用開啟iFunBox,將 “/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate“ 拷貝到OSX 中,
並且將其重新命名為libsubstrate.dylib 後放到"/opt/theos/lib/" 中。
5. 配置dpkg-deb
. Deb 是越獄開發安裝包的標準格式,dpkg-deb 是用於操作deb檔案的工具;
. 下載dm.pl, github download dm.pl (https://raw.githubusercontent.com/DHowett/dm.pl/master/)
. dm.pl 重新命名為 “dpkg-deb”, 將dpkg-deb 放到"/opt/theos/bin" 目錄下
. sudo chmod 777 /opt/theos/bin/dpkg-deb
二、Theos使用
1. 建立工程
執行:/opt/theos/bin/nic.pl , 按提示生成tweak工程;
2. 配置工程
a. Makefile
.指定處理器架構:ARCHS = armv7 arm64
.指定SDK版本:TARGET = iphone:8.1:8.0 (iphone:Base SDK:Deployment Target)
. 匯入framework:iOSREProject_FRAMEWORKS = UIKit CoreAudio
. private framework:iOSREProject_PRIVATE_FRAMEWORKS = AppSupport ChatKit
注:如果tweak支援iOS7 iOS8,但private fw只存在7中,就不能這樣寫,這種情況通過弱連結或dlopen 系列函式動態呼叫。
. 連結Mach-O物件:iOSREProject_LDFLAGS = -lx (包括.dylib,.a,.o)
b. Tweak.xm
. Logos 常用預處理指令:%hook, %log, %orig, %group, %init, %ctor, %new, %c;
c. control
記錄了deb包管理系統所需的基本資訊;
d. plist
描述了tweak的作用返回;
Filter 下是array,分3類:Bundles,Classes,Executables;
注:當Filter下有不同類的array時,需要新增一個Mode:Any。
3. 編譯+打包+安裝
a. 編譯:執行 make
b. 打包:執行 make package
c. 安裝:
. iFunBox 安裝;
. Ssh命令:在Makefile最上一行加本機IP(如:THEOS_DEVICE_IP = iOSIP);
然後呼叫 make package install 完成編譯打包安裝;
注:打包時遇到了lzma錯誤,具體解決方法見:iOS 逆向常見問題。
三、Demo
見 iosregreetings,實現了鎖屏頁面彈窗和修改時間下面的文字資訊。