由deb文件得到dylib庫后蚪拦,將dylib庫注入到二進(jìn)制文件中瘫絮,重新打包完成動(dòng)態(tài)庫附帶的功能嘱吗。
1. 獲得dylib文件
使用theos建立tweak工程后勺像,hook住要改寫的函數(shù)顷级,之后編譯凫乖、打包(make、make package)生成xxxx.deb文件愕把,deb文件是可以直接在越獄手機(jī)安裝的拣凹。
將該deb文件后綴改為.zip文件,使用Keka(自帶的沒測過)解壓恨豁,解壓幾次后嚣镜,會(huì)出現(xiàn)文件夾Library/MobileSubstrate/DynamicLibraries,里面有xxx.dylib文件橘蜜。
2. 查看dylib文件的依賴項(xiàng)
使用MAC自帶otool工具查看菊匿,筆者的依賴路徑如下,命令為:
otool -L /xx/xx/xxx.dylib
從圖中可以看出除了CydiaSubstrate庫计福,其他的都是系統(tǒng)自帶的庫跌捆。CydiaSubstrate為越獄手機(jī)中的庫文件,其在越獄手機(jī)中的路徑為/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate象颖,或直接通過SSH連接到手機(jī)搜索佩厚,命令為
find / -iname "CydiaSubstrate" //搜索CydiaSubstrate
把CydiaSubstrate拷貝到電腦上,重命名為libsubstrate.dylib
3. 移動(dòng)libsubstrate.dylib说订、xxxx.dylib文件到xxx.app中
將要破解的ipa文件改為zip文件解壓后抄瓦,把libsubstrate.dylib潮瓶、xxxx.dylib移動(dòng)到xxx.app中
4. 修改xxxx.dylib文件依賴
//loader_path固定字符串,不能更改
install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib xxxx.dylib
5. 再次查看xxx.app目錄下的xxx.dylib文件依賴項(xiàng)
從圖中可以看出依賴項(xiàng)路徑已被修改
6. 將dylib注入到二進(jìn)制文件中
optool工具地址:https://github.com/alexzielenski/optool
直接下載是編譯不過的钙姊,還要下載ArgumentParser毯辅,地址為:https://github.com/mysteriouspants/ArgumentParser
把ArgumentParser文件導(dǎo)入到optool工程中,編譯后生成optool工具煞额,之后使用optool工具將dylib文件注入到二進(jìn)制文件中(可直接下載我的工程思恐,https://github.com/hzpqt/optool-)
./optool install -c load -p "@executable_path/xxx.dylib" -t /xxx.app/xxx //executable_path為固定字符,不能更改
如果順利的話膊毁,終端應(yīng)該會(huì)輸出:
7. 重新簽名打包
筆者使用的工具是iOS App Signer胀莹,選擇好證書、授權(quán)文件后婚温,開始打包
8. 安裝xxx.ipa文件
如果安裝成功后嗜逻,點(diǎn)擊打開出現(xiàn)閃退,估計(jì)就是以上路徑配置有問題缭召,可以導(dǎo)出崩潰日志看看。
作者:百省
鏈接:http://www.reibang.com/p/8236249edd35
來源:簡書
簡書著作權(quán)歸作者所有逆日,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處嵌巷。