0x12 iOS7的動(dòng)態(tài)庫注入

注:原文---念茜的博客

iOS系統(tǒng)不斷升級(jí),結(jié)構(gòu)不斷調(diào)整,所以我們可以利用的動(dòng)態(tài)庫注入方法也根據(jù)系統(tǒng)版本的不同而不同。

在此之前,我們可以利用環(huán)境變量 DYLD_INSERT_LIBRARY 來添加動(dòng)態(tài)庫,iOS7被成功越獄后,我們需要自己去探索實(shí)踐iOS7動(dòng)態(tài)庫注入的方式。

本文將在iOS7.0.4環(huán)境下,以 hook 支付寶app 程序中?ALPLauncherController 的視圖加載方法為例,介紹在iOS7下,如何實(shí)現(xiàn)動(dòng)態(tài)庫注入攻擊。

相關(guān)工具位置信息

先總結(jié)羅列一下相關(guān)編譯、鏈接工具的位置路徑信息,在各位自行下載的iOS SDK中:

clang:? ? /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang

gcc: ? ?/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2

ld: ? /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ld

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld

sdk: ??/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/

動(dòng)態(tài)庫源程序

我們編寫一個(gè) hook 支付寶app 程序中?ALPLauncherController 的 viewDidLoad 方法,具體方法是利用?Method Swizzling 。

不熟悉?Method Swizzling 的話,可以參看我之前的這篇文章:Objective-C的hook方案(一): Method Swizzling

編譯dylib

我們可以利用xcode直接幫忙編譯.o,或者自己手動(dòng)使用clang編譯,然后手動(dòng)ld:

ld -dylib -lsystem -lobjc? -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/ -o libwq.dylib xxx.o

安置、驗(yàn)證dylib

將編譯好的 libwq.dylib 拷貝到iPhone 文件系統(tǒng)中?/Library/MobileSubstrate/DynamicLibraries/

如果不放心庫是否能正常工作,可以加一步驗(yàn)證操作,寫一個(gè)demo嘗試打開自己的庫:

運(yùn)行檢驗(yàn)效果

到了驗(yàn)證效果的時(shí)候,重啟設(shè)備后者執(zhí)行:

killall SpringBoard

啟動(dòng)支付寶app,然后觀察log信息:

證明我們的動(dòng)態(tài)庫已經(jīng)被加載, 我們的Hook 也成功了。

剩下的就要自己去思考了,除了加句無聊的Log,我們還可以做點(diǎn)什么呢?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • two Last login: Tue Aug 4 17:09:57 on ttys000 yushengyang...
    aofeilin閱讀 1,156評(píng)論 1 9
  • 首先如果遇到應(yīng)用卡頓或者因?yàn)閮?nèi)存占用過多時(shí)一般使用Instruments里的來進(jìn)行檢測。但對(duì)于復(fù)雜情況可能就需要用...
    攻克乃還_閱讀 2,236評(píng)論 0 7
  • 放一篇之前一直在私人筆記里的參考,也就是個(gè)參考手冊(cè),用到的時(shí)候回來看看。 ‘$’ 作為引用關(guān)鍵字 ex:$PROJ...
    SMThree閱讀 4,188評(píng)論 0 13
  • 你的心愛的物件丟失了,你會(huì)怎么辦? 我想會(huì)有那么兩種人: 第一種:心情會(huì)極其低落難受,而且會(huì)不知所措,內(nèi)心不希望這...
    堅(jiān)持堅(jiān)持再堅(jiān)持N閱讀 370評(píng)論 0 0
  • 在人類文明史上,我們耳熟能詳?shù)氖禽S心時(shí)代,這個(gè)時(shí)期歐亞大陸文明發(fā)展進(jìn)程似乎是同步的。 但我覺得,有一件...
    忠實(shí)眼睛閱讀 1,518評(píng)論 6 3

友情鏈接更多精彩內(nèi)容