iOS逆向工程概述(轉)

逆向工程一詞,對不少人來講可能很陌生,在android領域,咱們常常會聽到「反編譯某個apk」,那麼逆向工程從某種角度講也包括反編譯這項技術,這樣一對比,可能咱們就更容易理解逆向工程的定義了。android

咱們引用百度百科對這個詞更加精準地解釋:數據庫

逆向工程(又稱逆向技術),是一種產品設計技術再現過程,即對一項目標產品進行逆向分析及研究,從而演繹並得出該產品的處理流程、組織結構、功能特性及技術規格等設計要素,以製做出功能相近,但又不徹底同樣的產品。逆向工程源於商業及軍事領域中的硬件分析。其主要目的是在不能輕易得到必要的生產信息的狀況下,直接從成品分析,推導出產品的設計原理。安全

1、逆向工程的做用是什麼網絡

逆向工程並非爲了破解他人的軟件爲目的,在商業領域,有更加劇要的做用,具體包括如下幾個方面。架構

  • 安全審查:對於iOS 開發者來講,不只僅是完成產品的業務功能,尤爲對大公司,還須要很是重視安全問題。經過逆向工程,及早發現問題,修改問題,避免發佈後到用戶手中引發各類輿情問題,損害公司聲譽。app

  • 分析競品:1.參考競品app的架構設計;2.參考競品app的接口設計;3.關鍵技術的實現細節。工具

  • 學術研究:經過逆向,實現學術研究,主要用於學習。學習

  • 突破app的使用限制:不少app對不一樣的用戶有使用權限的限制,好比收費,或者vip用戶才能使用的功能,經過逆向提早獲取使用權限,固然不推薦這種方式,建議你們仍是支持正版。開發工具

  • 識別侵權:主要用於調查競品或商業產品,識別侵權行爲。.net

2、逆向分析的方法

iOS逆向分析的方法主要包括靜態和動態兩種分析方法。

靜態分析顧名思義是在app未運動的狀況下,對應用自己的一種分析方法。咱們都知道iOS的沙盒機制,沙盒裏會存儲app的各類信息,包括應用的文件系統結構,好比數據庫等;此外,使用一些特殊工具,如反彙編工具對app代碼進行查看等,都屬於靜態分析的範疇。

動態分析是在app運行過程當中,經過在線調試,分析應用的文件結構,內存的變化,界面的展現等,同時也能夠觀察網絡數據的請求,經過抓包分析業務的走向,協議的定義等。

兩種分析方法在實際的逆向過程當中,應當配合使用,好比靜態分析獲取app的基本信息以及數據存儲結構,再經過動態分析的方法進一步深刻app內部,研究具體實現和原理,大大提供分析效率。

3、逆向分析工具

工欲善其事必先利其器,掌握了方法以後,還要學會使用各類工具,分析app的不一樣功能。這些工具主要包括如下:

工具分類 工具名稱
越獄工具 盤古越獄
UI分析工具 Reveal和PonyDebugger等
文件系統查看工具 iExplorer, iFunbox, iTool等
網絡分析工具 WireShark, Charles等
反彙編工具 Hopper, IDA Pro等
調試器 Cycript, gdb等
逆向程序開發工具 Theos
其餘 ...

以上工具備的是付費工具,可使用破解版本,具體的功能咱們在後續章節介紹。

4、總結

本篇對iOS逆向工程作了概述,介紹了逆向的方法以及工具,後面的章節會進行詳細的介紹。

轉自:https://blog.csdn.net/wu__di/article/details/54934683

相關文章
相關標籤/搜索