標籤:情況 tab 生產 安全 xpl explore 其他 shark 功能
逆向工程一詞,對很多人來說可能很陌生,在android領域,我們經常會聽到“反編譯某個apk”,那麼逆向工程從某種角度講也包括反編譯這項技術,這樣一對比,可能我們就更容易理解逆向工程的定義了。
我們引用百度百科對這個詞更加精準地解釋:
逆向工程(又稱逆向技術),是一種產品設計技術再現過程,即對一項目標產品進行逆向分析及研究,從而演繹並得出該產品的處理流程、組織圖、功能特性及技術規格等設計要素,以製作出功能相近,但又不完全一樣的產品。逆向工程源於商業及軍事領域中的硬體分析。其主要目的是在不能輕易獲得必要的生產資訊的情況下,直接從成品分析,推匯出產品的設計原理。
一、逆向工程的作用是什麼
逆向工程並不是為了破解他人的軟體為目的,在商業領域,有更加重要的作用,具體包括以下幾個方面。
安全審查:對於iOS 開發人員來說,不僅僅是完成產品的業務功能,尤其對大公司,還需要非常重視安全問題。通過逆向工程,及早發現問題,修改問題,避免發布後到使用者手中引起各種輿情問題,損害公司聲譽。
分析競品:1.參考競品app的架構設計;2.參考競品app的介面設計;3.關鍵技術的實現細節。
學術研究:通過逆向,實現學術研究,主要用於學習。
突破app的使用限制:很多app對不同的使用者有使用許可權的限制,比如收費,或者vip使用者才能使用的功能,通過逆向提前擷取使用許可權,當然不推薦這種方式,建議大家還是支援正版。
識別侵權:主要用於調查競品或商業產品,識別侵權行為。
二、逆向分析的方法
iOS逆向分析的方法主要包括靜態和動態兩種分析方法。
靜態分析顧名思義是在app未運動的情況下,對應用本身的一種分析方法。我們都知道iOS的沙箱機制,沙箱裡會儲存app的各種資訊,包括應用的檔案系統結構,比如資料庫等;此外,使用一些特殊工具,如反組譯碼工具對app代碼進行查看等,都屬於靜態分析的範疇。
動態分析是在app運行過程中,通過線上調試,分析應用的檔案結構,記憶體的變化,介面的展示等,同時也可以觀察網路資料的請求,通過抓包分析業務的走向,協議的定義等。
兩種分析方法在實際的逆向過程中,應當配合使用,比如靜態分析擷取app的基本資料以及資料存放區結構,再通過動態分析的方法進一步深入app內部,研究具體實現和原理,大大提供分析效率。
三、逆向分析工具
工欲善其事必先利其器,掌握了方法之後,還要學會使用各種工具,分析app的不同功能。這些工具主要包括以下:
工具分類 |
工具名稱 |
越獄工具 |
Apsara Distributed File System越獄 |
UI分析工具 |
Reveal和PonyDebugger等 |
檔案系統查看工具 |
iExplorer, iFunbox, iTool等 |
網路分析工具 |
WireShark, Charles等 |
反組譯碼工具 |
Hopper, IDA Pro等 |
調試器 |
Cycript, gdb等 |
逆向程式開發工具 |
Theos |
其他 |
... |
以上工具有的是付費工具,可以使用破解版本,具體的功能我們在後續章節介紹。
四、總結
本篇對iOS逆向工程做了概述,介紹了逆向的方法以及工具,後面的章節會進行詳細的介紹。
轉自:54934683
iOS逆向工程概述(轉)