逆向工程一詞篮洁,對很多人來說可能很陌生邑商,在android領(lǐng)域绕德,我們經(jīng)常會聽到“反編譯某個apk”患膛,那么逆向工程從某種角度講也包括反編譯這項技術(shù),這樣一對比耻蛇,可能我們就更容易理解逆向工程的定義了踪蹬。
我們引用百度百科對這個詞更加精準地解釋:
逆向工程(又稱逆向技術(shù)),是一種產(chǎn)品設(shè)計技術(shù)再現(xiàn)過程臣咖,即對一項目標產(chǎn)品進行逆向分析及研究跃捣,從而演繹并得出該產(chǎn)品的處理流程、組織結(jié)構(gòu)夺蛇、功能特性及技術(shù)規(guī)格等設(shè)計要素枝缔,以制作出功能相近,但又不完全一樣的產(chǎn)品。逆向工程源于商業(yè)及軍事領(lǐng)域中的硬件分析愿卸。其主要目的是在不能輕易獲得必要的生產(chǎn)信息的情況下灵临,直接從成品分析,推導出產(chǎn)品的設(shè)計原理趴荸。
一儒溉、逆向工程的作用是什么
逆向工程并不是為了破解他人的軟件為目的,在商業(yè)領(lǐng)域发钝,有更加重要的作用顿涣,具體包括以下幾個方面。
安全審查:對于iOS 開發(fā)者來說酝豪,不僅僅是完成產(chǎn)品的業(yè)務功能涛碑,尤其對大公司,還需要非常重視安全問題孵淘。通過逆向工程蒲障,及早發(fā)現(xiàn)問題,修改問題瘫证,避免發(fā)布后到用戶手中引起各種輿情問題揉阎,損害公司聲譽。
分析競品:1.參考競品app的架構(gòu)設(shè)計背捌;2.參考競品app的接口設(shè)計毙籽;3.關(guān)鍵技術(shù)的實現(xiàn)細節(jié)。
學術(shù)研究:通過逆向毡庆,實現(xiàn)學術(shù)研究坑赡,主要用于學習。
突破app的使用限制:很多app對不同的用戶有使用權(quán)限的限制么抗,比如收費垮衷,或者vip用戶才能使用的功能,通過逆向提前獲取使用權(quán)限乖坠,當然不推薦這種方式搀突,建議大家還是支持正版。
識別侵權(quán):主要用于調(diào)查競品或商業(yè)產(chǎn)品熊泵,識別侵權(quán)行為仰迁。
二、逆向分析的方法
iOS逆向分析的方法主要包括靜態(tài)和動態(tài)兩種分析方法顽分。
靜態(tài)分析顧名思義是在app未運動的情況下徐许,對應用本身的一種分析方法。我們都知道iOS的沙盒機制卒蘸,沙盒里會存儲app的各種信息雌隅,包括應用的文件系統(tǒng)結(jié)構(gòu)翻默,比如數(shù)據(jù)庫等;此外恰起,使用一些特殊工具修械,如反匯編工具對app代碼進行查看等,都屬于靜態(tài)分析的范疇检盼。
動態(tài)分析是在app運行過程中肯污,通過在線調(diào)試,分析應用的文件結(jié)構(gòu)吨枉,內(nèi)存的變化蹦渣,界面的展示等,同時也可以觀察網(wǎng)絡(luò)數(shù)據(jù)的請求貌亭,通過抓包分析業(yè)務的走向柬唯,協(xié)議的定義等。
兩種分析方法在實際的逆向過程中圃庭,應當配合使用锄奢,比如靜態(tài)分析獲取app的基本信息以及數(shù)據(jù)存儲結(jié)構(gòu),再通過動態(tài)分析的方法進一步深入app內(nèi)部冤议,研究具體實現(xiàn)和原理斟薇,大大提供分析效率师坎。
三恕酸、逆向分析工具
工欲善其事必先利其器,掌握了方法之后胯陋,還要學會使用各種工具蕊温,分析app的不同功能。這些工具主要包括以下:
以上工具有的是付費工具遏乔,可以使用破解版本义矛,具體的功能我們在后續(xù)章節(jié)介紹。
四盟萨、總結(jié)
本篇對iOS逆向工程做了概述凉翻,介紹了逆向的方法以及工具,后面的章節(jié)會進行詳細的介紹捻激。
如果您喜歡我們的文章制轰,點贊就好,您的認可是我分享的最大動力胞谭。