免越獄tweak應用逆向開發


文章封面~忽略忽略~

對於已越獄的設備,系統默認安裝了mobilesubstrate動態庫,提供一個系統級的入侵管道,所有的tweak都可以依賴它來進行開發。而對於沒有越獄的手機,我們需要向目標app注入libsubstrate.dylib動態庫,才能使程序在運行時加載我們編寫的動態庫。

訪問:http://www.jianshu.com/p/cd1f8ae46a3c獲得更好的閱讀體驗~

環境准備:
sudo clone git://github.com/DHowett/theos.git /opt/theos
sudo chmod 777 /opt/theos/bin/ldid
  • 配置dpkg-deb下載dm.pl,重命名為dpkg-deb后,放到/opt/theos/bin/
sudo chmod 777 /opt/theos/bin/dpkg-deb

編譯安裝 optool 工具,下載之后需要修改項目Build Setting中Base SDK項為當前系統sdk,否則可能編譯報錯:

# 因為 optool 添加了 submodule,因為需要使用 --recuresive 選項,將子模塊全部 clone 下來
git clone --recursive https://github.com/alexzielenski/optool.git
cd optool
xcodebuild -project optool.xcodeproj -configuration Release ARCHS="x86_64" build
#編譯完成后建議將生成二進制文件放到/usr/local/bin目錄下

實現部分:
1. 在tweak工程目錄下編譯代碼,生成目標庫:
make

可以在./.theos/obj/debug下找到生成的目標庫xxx.dylib

2.修改目標庫依賴文件的相對地址:
otool -L xxx.dylib

修改前依賴庫
查看動態庫的依賴庫,圖中可以看到兩個架構的依賴庫,其中大部分都是系統庫,只有一個需要我們注入的庫。由於

/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate

在實際設備上沒有對應的文件,我們需要修改其地址為相對地址:

install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib xxx.dylib

如果系統顯示的是/usr/lib/libsubstrate.dylib而不是/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate的話,使用以下命令:(命令中只有依賴地址不同,@loader_path指明相對地址。)

install_name_tool -change/usr/lib/libsubstrate.dylib @loader_path/libsubstrate.dylib xxx.dylib

完成之后我們再次查看依賴庫:
修改后依賴庫
可以看到,依賴庫加載地址已經成功被修改

3.注入xxx.dylib到目標應用中

拷貝libsubstrate.dylib和我們編寫的庫xxx.dylib到需要hook的應用的zzz.app目錄下,修改應用目錄下二進制文件的zzz的Load Commands段:

optool install -c load -p "@executable_path/xxx.dylib" -t ./zzz
#注:zzz為二進制文件名
4.重簽名和打包應用:
codesign -f -s ‘iPhone Developer: xxx(xxx)’ —entitlements xxx.entitlements zzz.app

此處也可以簡單的使用工具一步完成ios-app-signer生成ipa

ios-app-signer應用截圖

5.使用itunes或pp助手或itool等方法安裝食用~

知識擴展鏈:

移動App入侵與逆向破解技術-iOS篇
免越獄版 iOS 搶紅包插件
iOS微信搶紅包Tweak安裝教程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM