?? 聯(lián)系人:石虎 QQ:1224614774??昵稱(chēng):?嗡嘛呢叭咪哄
? ? ? ? ? ? ? ? ? ? ? ? ??QQ群:807236138??群稱(chēng):?iOS 技術(shù)交流學(xué)習(xí)群
一蒙袍、概念
? ? ?HOOK茂浮,中文譯為“掛鉤”或“鉤子”滔岳。在iOS逆向中是指改變程序運(yùn)行流程的一種技術(shù)。通過(guò)hook可以讓別人的程序執(zhí)行自己所寫(xiě)的代碼澡绩。在逆向中經(jīng)常使用這種技術(shù)豹爹。所以在學(xué)習(xí)過(guò)程中,我們重點(diǎn)要了解其原理党巾,這樣能夠?qū)阂獯a進(jìn)行有效的防護(hù)萎庭。
二、iOS中HOOK技術(shù)的幾種方式
? ? ? Method Swizzle
? ? ?利用OC的Runtime特性齿拂,動(dòng)態(tài)改變SEL(方法編號(hào))和IMP(方法實(shí)現(xiàn))的對(duì)應(yīng)關(guān)系驳规,達(dá)到OC方法調(diào)用流程改變的目的。主要用于OC方法署海。
? ? ?fishhook
? ? 它是Facebook提供的一個(gè)動(dòng)態(tài)修改鏈接mach-O文件的工具吗购。利用MachO文件加載原理,通過(guò)修改懶加載和非懶加載兩個(gè)表的指針達(dá)到C函數(shù)HOOK的目的砸狞。
? ?Cydia Substrate?
? ?Cydia Substrate 原名為?Mobile Substrate?捻勉,它的主要作用是針對(duì)OC方法、C函數(shù)以及函數(shù)地址進(jìn)行HOOK操作刀森。當(dāng)然它并不是僅僅針對(duì)iOS而設(shè)計(jì)的踱启,安卓一樣可以用。官方地址:http://www.cydiasubstrate.com/
三研底、demo 效果圖
對(duì)?Method Swizzle理解: