最近很多人上來(lái)就讓我教他們?nèi)绾纹平?如何做 一個(gè)黑客,讓我一時(shí)無(wú)所適從,不知道如何回答.希望寫(xiě)這篇文章可以勸退一些頭腦發(fā)熱一心想做黑客的人. 沒(méi)有做過(guò)正向開(kāi)發(fā)的人,很難做逆向開(kāi)發(fā),因?yàn)槟嫦蚧臼遣麻_(kāi)發(fā)者正向開(kāi)發(fā),你不知道正向思路,怎么做逆向呢,所以這里先列舉一些逆向開(kāi)發(fā)所需要的知識(shí)和工具,如果這些基礎(chǔ)的東西你都大概了解或者明白了,接著我們?cè)僮瞿嫦蚱平?
逆向基礎(chǔ)知識(shí)
-
有iOS編程基礎(chǔ)
- 最好開(kāi)發(fā)過(guò)幾個(gè)真正的項(xiàng)目,真正的被現(xiàn)實(shí)捶打過(guò)
-
了解iOS的運(yùn)行原理
- 比如Runtime等
-
有C/C++的語(yǔ)法基礎(chǔ)
- 這點(diǎn)大學(xué)里面一般都學(xué)習(xí)過(guò)C++,忘記了可以翻出來(lái)當(dāng)時(shí)的書(shū)看看,雖然晦澀難懂,也不需要你全部記住
逆向工具
按照逆向的步驟我們一步一步看需要什么樣的工具:
-
砸殼工具 dumpdecrypted
砸殼工具,正常情況下我們?cè)贏pp Store下載的ipa都是加密過(guò)的,無(wú)法直接操作.所以需要一個(gè)砸殼的過(guò)程,dumpdecrypted其原理是讓app預(yù)先加載一個(gè)解密的dumpdecrypted.dylib,然后在程序運(yùn)行后,將代碼動(dòng)態(tài)解密,最后在內(nèi)存中dump出來(lái)整個(gè)程序.實(shí)際上各種XX助手之類的應(yīng)用都有砸殼好的越獄應(yīng)用,不需要自己動(dòng)手.
-
界面分析工具 Cycript、Reveal
Reveal能夠?qū)pp界面的視圖層次結(jié)構(gòu)實(shí)時(shí)的展示出來(lái),以便于調(diào)試分析,也就是你想hook別人的東西,你需要?jiǎng)e人家里的布局.這個(gè)工具是收費(fèi)的,30天免費(fèi)試用.
Screen shot of Reveal -
代碼分析工具 MachOView、class-dump、Hopper Disassembler、ida
知道了別人家的布局,就需要知道別人家的東西內(nèi)部放了哪些東西,這些工具可以看到內(nèi)部的class和方法名,變量等
MachOView 如何用請(qǐng)百度或者直接點(diǎn)擊鏈接看github官方說(shuō)明

class-dump顧名思義,它的作用就是把Mach-O文件的class信息給dump出來(lái)(把類信息給導(dǎo)出來(lái)),生成對(duì)應(yīng)的.h頭文件,和MachOView功能類似.
動(dòng)態(tài)調(diào)試 LLDB
-
代碼編寫(xiě)
iOSOpenDev
這個(gè)東西挺難安裝的,我安裝失敗了無(wú)數(shù)次,哪一步成功了,也忘記了.
image.png
-
動(dòng)態(tài)庫(kù)注入及簽名工具
動(dòng)態(tài)庫(kù)注入就用我在開(kāi)源基礎(chǔ)上改的一個(gè)吧. 下載地址
image.png
每一個(gè)步驟和環(huán)境都是看似簡(jiǎn)單,實(shí)際上無(wú)數(shù)個(gè)坑,工具的安裝和使用請(qǐng)自行百度,這里僅僅提供一下介紹,今天太累了,改天繼續(xù)寫(xiě).
參考
http://www.itdecent.cn/p/0a03c477c637
https://pandara.xyz/2016/08/14/fake_wechat_location2/
https://gitee.com/dongdongxiaotaozi/iOSAppHook


