2015-12-31 13:52:40 1334瀏覽
對于iOS開發(fā)者們來說,iOS是一門神秘而又充滿挑戰(zhàn)的課程。隨著iOS系統(tǒng)的不斷更新?lián)Q代,代表著開發(fā)者們過去經(jīng)驗的結(jié)束。正是因為這樣,讓很多敢于挑戰(zhàn)的年輕人更加的鐘愛iOS開發(fā)領(lǐng)域,畢竟每一年都有希望讓前輩們被自己彎道超車,這種成就感不是每一個行業(yè)都可以賦予的。coding學(xué)堂在這里介紹iOS軟件逆向工程的主要作用,希望可以幫助到有需要的開發(fā)者們。
coding學(xué)堂iOS開發(fā)培訓(xùn)之iOS軟件逆向工程:
打個比喻,iOS逆向工程就像一桿長矛,專門用于刺破目標(biāo)程序本以為安全的保護(hù)盾。而且還是從想象不到的角度來刺破。對于微信、陌陌、WhatsApp之類的IM軟件,交流的信息是它們的核心;對于銀行、交易支付、電商類的軟件,交易和客戶信息是它們的核心。所有的核心數(shù)據(jù)都是需要重點保護(hù)的,于是,數(shù)據(jù)庫加密、網(wǎng)絡(luò)連接加密、云存儲等,開發(fā)人員通過各種手段重重保護(hù),為的就是讓使用者能夠高枕無憂。
可是iOS逆向工程對這些常規(guī)App的攻擊不是來自同一個維度!這些攻擊可用一個詞來定義:維度攻擊(“維度攻擊”的概念來自科幻小說《三體》,在此向《三體》致敬)。從維度的角度來解釋,我們看待常規(guī)App的感覺更像是將App的所有數(shù)據(jù)、uI、邏輯內(nèi)容都平展地鋪開在一張二維的大紙上,外圍圈上厚厚的城墻。但是當(dāng)我們跳躍到城墻之外,在三維的天空中俯瞰這個App的二維城堡,這個城堡的內(nèi)部結(jié)構(gòu)幾乎完全開放在眼前,包括所有的Objective,C函數(shù)定義、所有的接口數(shù)據(jù)、甚至所有的函數(shù)內(nèi)執(zhí)行代碼。城墻的防護(hù)意義已經(jīng)蕩然無存!此時限制我們的只是這個二維平面城堡到底有多大,里面的內(nèi)容到底有多豐富,以及排列是整齊有序的還是雜亂無章的。此時,基于逆向工程的技術(shù)能力,可以選擇想進(jìn)入的任意點“高維進(jìn)入”,監(jiān)視甚至改變二維平面上的運行邏輯,從而達(dá)到獲取核心信息或軟件設(shè)計原理等戰(zhàn)術(shù)目的,而不是從二維世界打破外圍城墻強行攻破。說得似乎很玄乎,但事實上,就筆者對十余款經(jīng)典App以及iOS系統(tǒng)進(jìn)行逆向的經(jīng)歷過程來看,逆向T程的使用確實無一例外地達(dá)到了目標(biāo)。上面的比喻雖有些不恰當(dāng),但也形象地說明了iOS逆向工程的強大能力。
不了解iOS開發(fā)領(lǐng)域的人應(yīng)該顛覆了你對開發(fā)這個行業(yè)的看法。iOS開發(fā)可不只是枯燥和加班。讀者如果對iOS開發(fā)有興趣可以進(jìn)入扣丁學(xué)堂官網(wǎng)免費觀看講師們錄制的iOS課程視頻講座。與行業(yè)大神一起交流學(xué)習(xí)。
查看更多關(guān)于“iOS資訊”的相關(guān)文章>>