IOS 非越獄代碼注入(Framework)

首先代碼注入思路:

  • dyld會(huì)動(dòng)態(tài)加載Frameworks中所有的動(dòng)態(tài)庫(kù),那么在Frameworks中增加一個(gè)自己的動(dòng)態(tài)庫(kù)耳峦,然后就可以在自己動(dòng)態(tài)庫(kù)中寫注入的代碼。

準(zhǔn)備

  • 本文章是基于上一篇IOS應(yīng)用重簽名(三種方法)最后一種方法自動(dòng)化重簽名所創(chuàng)建的項(xiàng)目
  • 需要的工具 - yololib(下載成功后最好把yololib復(fù)制到/usr/local/bin或$PATH中的其他路徑,后面直接在終端命令行中使用)

yololib下載地址https://github.com/KJCracks/yololib?spm=a2c4e.11153940.blogcont63256.9.5126420eAJpqBD

  • 需要的工具 - MachOView(只是用來查看非必要)

開始

1轰驳、創(chuàng)建framework

image.png

2、創(chuàng)建一個(gè)寫hook方法的類(TestHook)

image.png

3、把代碼寫在load方法中级解,一加載就運(yùn)行

image.png

4冒黑、把framwork加入到目標(biāo)app中

  • 在targets的Build Phases中添加Copy Files


    image.png
  • 在Copy Files中選擇Frameworks并添加剛剛創(chuàng)建的Frameworks


    image.png
  • 編譯運(yùn)行后,在xx.app->Frameworks中查看是否包含新創(chuàng)建的Framework


    image.png

5勤哗、將DevilHook.framework加到MachO文件抡爹,yololib去添加動(dòng)態(tài)庫(kù)依賴(修改targetApp文件夾的ipa包中的MachO)

  • 解壓targetApp文件夾的ipa,找到MachO文件


    image.png
  • 使用命令
    yololib DingTalk Frameworks/DevilHook.framework/DevilHook
    第一個(gè)參數(shù)指定被修改的mach-o文件的路徑芒划,第二個(gè)參數(shù)指定動(dòng)態(tài)庫(kù)的路徑


    image.png
  • 查看MachO文件中Load Commands是否添加依賴成功


    image.png
  • 重新打包targetApp的ipa包
    zip -ry DingTalk.ipa Payload

6冬竟、編譯運(yùn)行

  • 成功注入


    image.png

* 在之前的重簽名腳本中添加相應(yīng)的注入腳本,省去上述第五步

  • 腳本腊状,前提配置yololib可直接使用
# ${SRCROOT} 它是工程文件所在的目錄
TEMP_PATH="${SRCROOT}/Temp"
#資源文件夾诱咏,我們提前在工程目錄下新建一個(gè)targetAPP文件夾,里面放ipa包
ASSETS_PATH="${SRCROOT}/targetApp"
#目標(biāo)ipa包路徑
TARGET_IPA_PATH="${ASSETS_PATH}/*.ipa"
#清空Temp文件夾
rm -rf "${SRCROOT}/Temp"
mkdir -p "${SRCROOT}/Temp"



#----------------------------------------
# 1. 解壓IPA到Temp下
unzip -oqq "$TARGET_IPA_PATH" -d "$TEMP_PATH"
# 拿到解壓的臨時(shí)的APP的路徑
TEMP_APP_PATH=$(set -- "$TEMP_PATH/Payload/"*.app;echo "$1")
# echo "路徑是:$TEMP_APP_PATH"


#----------------------------------------
# 2. 將解壓出來的.app拷貝進(jìn)入工程下
# BUILT_PRODUCTS_DIR 工程生成的APP包的路徑
# TARGET_NAME target名稱
TARGET_APP_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app"
echo "app路徑:$TARGET_APP_PATH"

rm -rf "$TARGET_APP_PATH"
mkdir -p "$TARGET_APP_PATH"
cp -rf "$TEMP_APP_PATH/" "$TARGET_APP_PATH"



#----------------------------------------
# 3. 刪除extension和WatchAPP.個(gè)人證書沒法簽名Extention
rm -rf "$TARGET_APP_PATH/PlugIns"
rm -rf "$TARGET_APP_PATH/Watch"



#----------------------------------------
# 4. 更新info.plist文件 CFBundleIdentifier
#  設(shè)置:"Set : KEY Value" "目標(biāo)文件路徑"
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $PRODUCT_BUNDLE_IDENTIFIER" "$TARGET_APP_PATH/Info.plist"


#----------------------------------------
# 5. 給MachO文件上執(zhí)行權(quán)限
# 拿到MachO文件的路徑
APP_BINARY=`plutil -convert xml1 -o - $TARGET_APP_PATH/Info.plist|grep -A1 Exec|tail -n1|cut -f2 -d\>|cut -f1 -d\<`
#上可執(zhí)行權(quán)限
chmod +x "$TARGET_APP_PATH/$APP_BINARY"



#----------------------------------------
# 6. 重簽名第三方 FrameWorks
TARGET_APP_FRAMEWORKS_PATH="$TARGET_APP_PATH/Frameworks"
if [ -d "$TARGET_APP_FRAMEWORKS_PATH" ];
then
for FRAMEWORK in "$TARGET_APP_FRAMEWORKS_PATH/"*
do

#簽名
/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
done
fi


#注入
yololib "$TARGET_APP_PATH/$APP_BINARY" "Frameworks/DevilHook.framework/DevilHook"





image.png
  • 編譯運(yùn)行缴挖,同樣成功注入


    image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末袋狞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子映屋,更是在濱河造成了極大的恐慌苟鸯,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棚点,死亡現(xiàn)場(chǎng)離奇詭異早处,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)瘫析,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門砌梆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贬循,你說我怎么就攤上這事咸包。” “怎么了杖虾?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵烂瘫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我奇适,道長(zhǎng)坟比,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任嚷往,我火速辦了婚禮葛账,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘皮仁。我一直安慰自己注竿,他們只是感情好茄茁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著巩割,像睡著了一般。 火紅的嫁衣襯著肌膚如雪付燥。 梳的紋絲不亂的頭發(fā)上宣谈,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音键科,去河邊找鬼闻丑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛勋颖,可吹牛的內(nèi)容都是我干的嗦嗡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼饭玲,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼侥祭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起茄厘,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤矮冬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后次哈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胎署,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年窑滞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琼牧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哀卫,死狀恐怖巨坊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情聊训,我是刑警寧澤抱究,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站带斑,受9級(jí)特大地震影響鼓寺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜勋磕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一妈候、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挂滓,春花似錦苦银、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纺念。三九已至,卻和暖如春想括,著一層夾襖步出監(jiān)牢的瞬間陷谱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工瑟蜈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烟逊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓铺根,卻偏偏與公主長(zhǎng)得像宪躯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子位迂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 延伸 做過游戲外掛的人都知道访雪,代碼注入通常是通過這工具去注入的進(jìn)行測(cè)試的【當(dāng)然還有劫持注入等等其他注入方式】 im...
    洪呵呵_閱讀 4,126評(píng)論 9 51
  • 題外話:此教程是一篇嚴(yán)肅的學(xué)術(shù)探討類文章,僅僅用于學(xué)習(xí)研究囤官,也請(qǐng)讀者不要用于商業(yè)或其他非法途徑上冬阳,筆者一概不負(fù)責(zé)喲...
    WinJayQ閱讀 7,630評(píng)論 10 14
  • 在我們通過將代碼重新簽名(如果對(duì)第三方app重簽名不太熟悉的,請(qǐng)參考iOS逆向安全之代碼重簽名)能夠讓我們?cè)诒镜赝?..
    SharaYuki閱讀 1,739評(píng)論 0 8
  • 概論通過操作演示流程可以得知一個(gè)知識(shí)點(diǎn):就是通過把framewrok文件或者dylib文件寫入程序中肝陪,系統(tǒng)會(huì)通過自...
    Hanfank閱讀 1,090評(píng)論 0 4
  • 簡(jiǎn)介代碼注入:靜態(tài)注入氯窍、動(dòng)態(tài)注入 動(dòng)態(tài)庫(kù)dylib其實(shí)是修改MacO文件,展開 Load Commands在Fra...
    lukyy閱讀 4,878評(píng)論 6 7