1. 程式人生 > >iOS 逆向工具

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,實現了鎖屏頁面彈窗和修改時間下面的文字資訊。