官术网_书友最值得收藏!

前言

為什么要寫這本書

兩年前我正式從傳統網絡設備行業轉行進入移動互聯網行業,當時正是移動應用開發市場最火爆的時候,創業公司如雨后春筍般成立,社交類App更是大受追捧,只要有一個不錯的構想就可能拿到千萬級投資,高價挖人組隊的信息更是讓人眼花繚亂。那時我已經開發了幾個頗具難度的企業應用類App,對于那些輕量級的普通社交App不是太看得上,想著要玩點比較酷的技術,機緣巧合進入了安全管家(北京安管佳科技有限公司),從零開始組建iOS團隊,負責包括越獄方向在內的iOS開發。

其實iOS越獄開發就是基于iOS的逆向分析工程,那個時候我并沒有這方面的經驗,面向的是一個完全未知的領域,不過好在有Google,國內國外的信息多少還是能夠搜到點,而且對于iOS開發者,越獄開發/逆向分析并不是一個完全隔離的世界,雖然被分享出來的都是些零零散散甚至重復度很高的知識,但是只要投入大量精力,把知識歸納總結,慢慢也就整理出一幅完整的圖譜。

然而獨自一人學習的過程是孤獨的,尤其是遇見困難和問題無人交流,讓人一籌莫展。每次一個人扛下所有問題的時候,總是感嘆:要是有一個水平不錯的交流者該是多么幸福?雖然也可以給Ryan Petrich(@rpetrich)等一線大牛發郵件請教,但很多在我們看來當時解決不了的難題在這類高手眼中可能就是個低級問題,不苦心鉆研一番根本不好意思去問。這個階段大概持續了有大半年,直到2012年在微博上遇到本書的另一作者snakeninny,那時他還是一個面臨畢業的研究生,整天“不務正業”地研究iOS底層,而且研究得還相當有深度。我曾和他提過:“你看,有多少人都投入到App領域撈錢去了,你咋不去呢?”他說:“小弟的目標遠大,要玩就朝著國際一線大牛的目標去!”小兄弟,你夠狠!

不過,多數時候我們都是自己在折騰,雖然偶爾在網上交流一下問題及解決方法,但往往能分享得到一些有價值的內容。在一起合寫本書之前,我們曾經合作逆向分析過陌陌,做了一個插件用于在陌陌iPhone版上把美女的位置標注在地圖上,當然我們都是善意的開發者,主動將這個漏洞告訴了陌陌,他們很快就修復了。這次,我們再次合作,將逆向分析這個方向的知識整理出版,呈現給各位讀者。

在接觸越獄開發/逆向分析的這兩年,個人感覺最大的收獲就是看待App時,完全以一種庖丁解牛的眼光去審視:App如何構成、性能如何間接反映出開發團隊水平高低。這些經驗知識不僅可用于越獄開發,也可用于傳統的App開發,至于帶來的影響,有正有負吧。我們不能因為所謂正統的iOS平臺不提倡越獄就否定這個領域的存在,盲目相信那些安全問題不存在不過是掩耳盜鈴。

有經驗的開發者都明白,知識掌握得越深,越會接觸到底層技術。比如sandbox保護機制之外到底有什么?runtime只用來研究理論知識是不是有點大材小用了?

在Android領域,底層技術已經被擴散開,而在iOS領域,這個方向展現出來的內容還只是冰山一角。雖然國外也有幾本iOS安全方向的書籍,比如《Hacking and Securing iOS Applications》、《iOS Hacker's Handbook》,但是內容太難,多數人讀不出所以然,不適合中國國情,即使我們這些有一定經驗的開發者,讀這些書也像是在讀大學教科書。

陽春白雪不為我們這些喜歡實踐的技術宅所好,那么就來點下里巴人的,不必遮遮掩掩,直接全面展開這些知識豈不是更痛快?于是就有了我們這本書,書中的內容以工具+代碼的形式全面、系統地展開知識點,由淺入深,圖文并茂,旨在帶著讀者一步步地探索常規iOS App之外的世界。我們不會像一些技術博客那樣貌似很高深的獨立分析某一片段的代碼,而是盡我們所能將一個完整的知識體系呈現給讀者,相信讀者一定會有所收獲。

國內投入在越獄開發這個方向的人并不算少,但都比較低調,而且多集中在大公司中,比如騰訊、360、91、WeiPhone,他們積累的技術非我們這些散兵游勇所能及,不過我們更愿意先將這些知識分享出來,希望能夠拋磚引玉。

讀者對象

本書主要面向以下讀者:

?對iOS系統有濃厚興趣的讀者;

?中高級iOS開發人員,他們在掌握了普通App開發之后對iOS有更深的渴求;

?架構師,因為在逆向App的整個過程中,有心的技術人員能看到那些經典App在結構設計上的經驗、優勢,并博采眾長,有助于整體架構設計水平的提高;

?在別的系統上從事逆向工程,想要轉向iOS系統的逆向工程師。

如何閱讀本書

本書將分為四大部分,分別是概念、工具、理論和實戰。前三部分介紹iOS逆向分析這個領域的背景、知識體系,以及相應的工具集、理論知識;第四部分則具體以4個實際案例將前面的知識以實戰的方式展開,讓讀者可以實踐驗證前面學到的知識并進一步更扎實地掌握相應的知識。

如果讀者不具備一定的逆向分析經驗,建議還是從頭開始按順序閱讀,而不要直接跨越到第四部分去模擬實戰。雖然實戰的成果似乎比較炫,但弄個半懂不懂也沒意思對不對?

第一部分為概念篇,將簡單介紹iOS逆向分析的概念以及iOS平臺系統架構。

第二部分為工具篇,將會介紹一系列基于Mac和iOS平臺的配套工具,并且重點講解其中的class-dump、Theos、Reveal、IDA、GDB等5個工具的使用方法,前3個側重于使用,后2個側重于分析。

第三部分為理論篇,除了介紹iOS逆向/越獄這個方向的理論知識之外,還順帶聊了一點iOS逆向/越獄方向的國際一線大牛們的八卦,輕松一下。

第四部分為實戰篇,將通過對3個App Store App及1個系統App進行逆向分析的實戰操作,讓讀者能夠了解并同步實踐已掌握的知識。

勘誤和支持

由于作者的水平有限,編寫的時間也很倉促,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正,歡迎微博聯系 @iOS應用逆向工程,或訪問我們的技術論壇http://www.iosre.com,或加入QQ技術群251453531,我們將盡量為讀者提供滿意的解答。如果你有更多的寶貴意見,也歡迎你通過微博或技術博客與我們聯系,我們很期待能夠聽到你們的真摯反饋。

致謝

首先要感謝Jay Freeman(@saurik)這樣的頂級高手,他奠定了越獄iOS的基石。還要感謝Dustin Howett(@DHowett),是他提供的Theos這樣強大的開發工具讓我得以邁進iOS逆向分析的大門。

感謝安全管家,為我進入iOS逆向領域提供了一個能充分發揮的環境,雖然我早已離開,但希望它發展得更好。

感謝微博上每一位熱心的朋友——唐巧_boy、盧明華、你在瓦西里、isdada、Jagie、onevcat、戴銘、費西FISH、xuzhanji、Life無法Debug、移動開發小冉、HorseLuke、網絡蝎子、hongjiang_wang、月之舞狼、StayNStay、bluesea哈哈哈、鄭州IOS、青年土豆的煩惱、木土吉吉,以及這個倉促寫就的名單之外的更多朋友,感謝他們對我的支持和鼓勵。特別感謝唐巧_boy的引薦,他的熱心幫助促成了本書的合作與出版。

感謝機械工業出版社華章公司的編輯楊繡國老師,感謝她的魄力和遠見,在這3個月的時間里始終支持我的寫作,她的指點和幫助引導我們順利完成全部書稿。

謹以此書獻給我最親愛的家人,以及眾多熱愛iOS開發的朋友們。

吳航(@hangcom2010)

主站蜘蛛池模板: 岳阳市| 福清市| 鹿泉市| 吉木萨尔县| 莱州市| 平安县| 罗城| 达孜县| 荔浦县| 正蓝旗| 石门县| 宜章县| 亚东县| 长子县| 武夷山市| 杭锦旗| 南通市| 招远市| 军事| 仁寿县| 安义县| 甘南县| 高青县| 伊金霍洛旗| 廊坊市| 密云县| 廉江市| 昌宁县| 新竹县| 文化| 上林县| 高淳县| 溧阳市| 莲花县| 达孜县| 蓝田县| 高邑县| 天等县| 上高县| 衢州市| 佛山市|