你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS安全攻防(十九):基於腳本實現動態庫注入

iOS安全攻防(十九):基於腳本實現動態庫注入

編輯:IOS開發綜合

基於腳本實現動態庫注入



MobileSubstrate可以幫助我們加載自己的動態庫,於是開發者們謹慎的采取了對MobileSubstrate的檢索和防御措施。

那麼,除了依靠MobileSubstrate幫忙注入dylib,還有別的攻擊入口嗎?

\


理理思路,條件、目的很明確:
1)必須在應用程序啟動之前,把dylib的環境變量配置好
2)dylib的位置必須能被應用程序放問到
3)最後再啟動應用程序

\



<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD48cD6wobn+o6zUrdat1K3OtqOs199iYXNoo6E8YnIgLz48YnIgLz48YnIgLz7U2rXju/fTptPDs8zQ8s28seotLT6zzNDyxvS2r9XiuPa5/bPM1tCjrNTaztLDx7+0wLSzzNDyysexu7av1rTQ0LXEoaPOqsHLyMPM2LaouabE3LXEvcWxvrG71rTQ0KOsztLDx7/J0tSw0b3Fsb64xLPJ06bTw7PM0PK2/r341sa1xMP719bOsdews8nTptPDs8zQ8qOsyMPPtc2ztffTw8b0tq+ho9TavcWxvtbQo6zF5NbDusNkeWxpYqOsyLu689TZyta2r8b0tq/V5rXE06bTw7PM0PKjrLzZ17DKssO00rLDu7eiyfqjrLvT0ru709LC0OSyu7T419/Su8as1MayyqGrPGJyIC8+PC9wPjxwPr2r1ea1xNanuLaxprPM0PK4xMP7zqpvcmlQb3J0YWyjujxiciAvPjxwcmUgY2xhc3M9"brush:java;">mv Portal oriPortal
將待執行的腳本改名為支付寶:

mv Portal.sh Portal



腳本代碼:

#!/bin/bash

#得到第一個參數
C=$0

#第一個參數是二進制的絕對路徑 比如 :
#/private/var/mobile/Applications/4763A8A5-2E1D-4DC2-8376-6CB7A8B98728/Portal.app/
#截取最後一個 / 之前的內容
C=${C%/*}

#庫和二進制放在一起
export DYLD_INSERT_LIBRARIES=${C:-.}/wq.dylib
#執行原來APP $@ 別忘了把原來的參數保留
exec "${C:-.}"/oriPortal "$@"


結果不盡人意,失敗了……\

錯誤信息如下:

\


在打開某個加密信息時出了錯誤,大概猜一下應該是類似加密簽名校驗的步驟,但是我們無法去了解其中詳細的操作到底是什麼樣的,沒關系,那麼就把原始的可執行文件環境全部給他造出來,因為檢驗文件屬性肯定不會帶著路徑信息的。

備份一份Portal.app目錄Portal_ori.app,修改腳本為:

#!/bin/bash
C=$0
C=${C%/*}
export DYLD_INSERT_LIBRARIES=${C:-.}/wq.dylib
exec "${C:-.}"/../Portal_ori.app/Portal "$@"

運行支付寶app驗證一下,
好消息是,在iOS6上,成功加載了動態庫wq.dylib
壞消息是,在iOS7上,失敗了,錯誤信息如下:

\


應該是因為iOS7的沙盒機制升了級,把我們這套小把戲攔在門外了……
那又怎麼樣,面包總會有的~








  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved