日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Cydia Tweak

發(fā)布時(shí)間:2023/12/16 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cydia Tweak 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://www.jianshu.com/p/8982e9670fc6

?

Cydia Substrate、MobileHooker

  • MSHookMessageEx
  • MSHookFunction
  • MobileLoader
  • Safe Mode
  • Logos

下面進(jìn)行一一說(shuō)明

四、基本原理說(shuō)明

1,Cydia Substrate 和 Mobile Substrate

* Cydia Substrate 原名為 Mobile Substrate 已經(jīng)正式更名為 Cydia Substrate。

?

* 它是越獄后cydia插件/軟件運(yùn)行的一個(gè)基礎(chǔ)依賴包。提供軟件運(yùn)行的公共庫(kù),可以用來(lái)動(dòng)態(tài)替換

? 內(nèi)存中的代碼、數(shù)據(jù)等所以iOS系統(tǒng)越獄環(huán)境下安裝絕大部分插件,必須首先安裝Cydia Substrate。

?

* Cydia Substrate主要由3部分組成:MobileHooker,MobileLoader 和 safe mode。

2,MobileHooker、Logos

* MobileHooker用于替換覆蓋系統(tǒng)的方法,這個(gè)過(guò)程被稱為Hooking(掛鉤)

* 它主要包含兩個(gè)函數(shù):

void MSHookMessageEx(Class class, SEL selector, IMP replacement, IMP *result);

void MSHookFunction(void*function,void* replacement,void** p_original);

MSHookMessageEx 主要作用于Objective-C函數(shù)

MSHookFunction 主要作用于C和C++函數(shù)

Logos語(yǔ)法就是對(duì)此函數(shù)做了一層封裝,讓編寫hook代碼變的更直觀,上面的例子用的就是logos語(yǔ)法。

MSHookMessageEx 和MSHookFunction 使用方法這里就不介紹了,大家可去看書籍或者查詢相關(guān)資料。

3,MobileLoader

* MobileLoader用于加載第三方dylib在運(yùn)行的應(yīng)用程序中。

* 啟動(dòng)時(shí)MobileLoader會(huì)根據(jù)dylib的同名plist文件指定的作用范圍,有選擇的在不同進(jìn)程里通過(guò)dlopen函數(shù)打開(kāi)目錄/Library/MobileSubstrate/DynamicLibraries/ 下的所有dylib。

4,safe mode

* 因?yàn)锳PP程序質(zhì)量參差不齊崩潰再所難免,tweak本質(zhì)是dylib,寄生在別人進(jìn)程里,如果注入Springboard等。

? 系統(tǒng)進(jìn)程一旦出錯(cuò),可能導(dǎo)致整個(gè)進(jìn)程崩潰,崩潰后就會(huì)造成iOS癱瘓。

?

* 所以CydiaSubstrate引入了安全模式,在安全模

? 式下所有基于CydiaSubstratede 的三方dylib都會(huì)被禁用,便于查錯(cuò)與修復(fù)。

?

* 本人建議自己測(cè)試的時(shí)候如果HOOK Springboard的時(shí)候一定要注意!如果出錯(cuò),進(jìn)入安全模式刪除插件即可。

總結(jié):

在我的理解就是:我們?cè)赥weak.xm文件里用封裝后的logos語(yǔ)法編寫代碼(底層利用了MSHookMessageEx,MSHookFunction函數(shù),使用 Object-C 的runtime特性發(fā)送了method_setImplementation消息)然后theos自動(dòng)打包成dylib,上傳到/Library/MobileSubstrate/DynamicLibraries/里面后,重啟Springboard, 利用MobileLoader尋找目錄并根據(jù)dylib的同名plist文件加載里面的dylib動(dòng)態(tài)庫(kù),這時(shí)候當(dāng)我們?cè)俅蜷_(kāi)APP后執(zhí)行方法時(shí),方法就被替換了。

總結(jié)

以上是生活随笔為你收集整理的Cydia Tweak的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。