當前位置:編程學習大全網 - 源碼下載 - 非越獄下的Iosshook模式

非越獄下的Iosshook模式

註意工具名稱和用途之間的區別

由theos和iosOpenDev生成dylib

將dylib插入到二進制文件中。

安裝工具名稱

修改dylib參考路徑

被壹些重簽名工具修改過的二進制文件,比如I design,sigh resign,codesign,都需要重簽名。

第二,流程

1,生成dylib

Dylib可以由theos或iosOpenDev生成。

Theos是專門為越獄開發的工具,生成的dylib可以直接在越獄機器上使用。

但是,theos並不是蘋果支持的工具。它在Mac端編譯生成deb包,安裝到IOS系統中,由IOS系統的dpkg安裝成插件模式,然後生成dylib。Theos需要調用Mac端的IOS開發SDK。目前無法調用9.3以上的SDK,theos工具也沒有更新。

IosOpenDev是蘋果官方支持的插件生成工具,可以直接用Xcode生成。

這種dylib包括兩種類型:CaptainHookTweak,Logos Tweak。

然而,兩者之間沒有區別:Logos Tweak的語法相對簡單,與theos的語法壹致,而CaptainHookTweak更復雜。

2.插入dylib

這三個工具都可以將dylib插入到二進制文件中,但是各有各的優勢。

Yololib只能將32位插入內容插入到64位二進制文件中,但它顯示如下。

Insert_dylib既可以插入64位,也可以插入32位,同時可以用來選擇是否刪除二進制文件的原始簽名,即LC_CODE_SIGNATURE。

Optool更強大。您可以選擇插入哪個LC LIB。這個例子暫時不用。

3.修改dylib參考

插入dylib後,需要添加對它的引用。也就是說,使用工具install_name_tool。

就是這個地方之前沒做,導致簽過名的文件閃了,迪倫Lib沒調用。

因為目前手頭沒有越獄手機,之前沒有調出cydiaSubstrate dylib,所以暫時中斷這壹步(主要是每個越獄版本系統的cydiaSubstrate dylib不壹樣。目前沒有越獄系統,所以沒有對應的dylib)。

不過妳可以仔細想想,因為cydiaSubstrate dylib本身就存在於越獄手機上,所以theos插件本身不需要導入這個dylib,直接添加壹個對它的引用就可以了。

但是在非越獄手機上,妳需要將這個cydiaSubstrate dylib放入app包中,並在手邊添加它的引用路徑。

既然如此,為什麽起源於蘋果的iosOpenDev會有開發dylib的工具?

那是因為蘋果引入iosOpenDev生成dylib,根本不是讓妳這麽玩的?Apple要求您將這個dylib添加到IOS項目中,並在項目中添加對它的引用。如果以後app有少量更新,妳只需要更新這個dylib,而不需要更新整個app。這在IOS開發中叫做增量更新。

完全不用cydia提供的hook接口,也可以使用openDev使用的hook接口。

操作如下所示:

答:在app包中添加dylib(如果需要調用cydia substrate的MSHOOK函數,需要添加cy dia substrate dylib);

b:插入工具插入。註意這裏有個坑,就是每個復制到dylib的包,除了通過使用install_name_tool添加對它的引用,插入Mach-O LOAD命令,還需要添加壹個可執行路徑。

首先,妳需要在應用包裏放壹張cd。

然後是/users/陳丹/desktop/diff _ hook/insert _ dylib @ executable _ path/IOs _ hook . dylib hook _ demo _ demo。

c:以後再簽吧。

對應用包中每個修改和添加的文件進行簽名。

codesign-f-s“iPhone開發者:694708086@qq.com(t 4mm 3 jzdl 2)”hook _ demo

codesign -f -s "iPhone開發者:694708086@qq.com(t 4mm 3 jzdl 2)" IOs _ hook . dylib

然後給整個app包添加簽名權限。

code sign-f-s“iPhone開發者:694708086@qq.com(t 4mm 3 jzdl 2)”-entitlements . plist hook _ demo . app

可以直接安裝app包,也可以用xcrun打包成ipa進行安裝。

dylib中的內容

4.重新簽名

完成這些步驟後,

首先要對修改後的二進制文件dylib和cydiaSubstrate dylib重新簽名,也就是在裏面寫iPhone開發者:694708086@qq.com(t 4 m3 jzdl 2)。

然後使用xcrun將app文件打包成ipa,使用iResign、sigh resign等工具對ipa包重新簽名後再安裝到系統中。

對權限文件entitlements.plist重新簽名

您可以使用ldid -e二進制文件來查看授權文件的內容生成。

第三,區別

Theos和iosOpenDev

區分theosiosOpenDev備註

源碼越獄開發者appletheos由第三方開發,iosOpenDev由蘋果官方Xcode支持。

UI沒有Xcodetheos還沒有開發UI接口,iosOpenDev的開發接口是Xcode。

版本支持目前theos只支持SDK,兩者都支持調用iOS 9.3以下的SDK,theos只支持9.3以下的SDK。目前theos的作者還沒有更新工具。

掛鉤語言模式徽標調整徽標調整,CaptainHookTweak

insert_dylib、optool和yololib工具之間的區別

區分insert _ dyliboptoolyololib註釋

支持結構64,32位都支持64,32位都只支持64位。

第四,總結

這個方法只能用在hook app本身的過程中,不能用在hook系統級的過程中。

由於非越獄上的沙盒機制,本地app只能訪問這個app的數據,不能訪問其他app的數據。訪問系統數據(相冊、地理位置等)。)也需要用戶的許可。更不用說鉤子系統級的進程了。

當然,有壹種技術可以繞過沙盒機制而不越獄:http://chuansong.me/n/2248208.

比如這個人不越獄下壹個app卸載另壹個app,壹個app獲取壹個app裏的文件內容。不過這個漏洞技術並沒有公開,只存在於越獄團隊內部。而且,這種漏洞技術沒能鉤住系統級進程。

理論上來說,不越獄也可以處理hook系統級,但是難度相當大(換句話說,如果真有這種不越獄也可以hook系統級的漏洞和技術,越獄團隊又何必越獄呢)

  • 上一篇:為什麽現在說vb過時了,我學過c,覺得c要編寫壹個應用程序很難,而vb可視化編寫很方便,vb應該更
  • 下一篇:首嫁大導演,又嫁大富豪,如今又官宣戀情,張雨綺的“混亂情史”
  • copyright 2024編程學習大全網