iOS逆向與安全
  • 推薦0
  • 收藏3
  • 瀏覽883

iOS逆向與安全

劉培慶 (作者) 

  • 叢  書:安全技術大系
  • 書  號:978-7-121-34099-4
  • 出版日期:2018-06-08
  • 頁  數:404
  • 開  本:16(185*235)
  • 出版狀態:上市銷售
  • 維護人:潘昕
紙質版 ¥85.00
本書從正向開發、工具的使用、逆向實戰及安全保護等方面,對iOS應用的逆向與安全進行了講解。本書內容包括基本概念、逆向環境的準備、常用逆向分析工具、類的結構、App簽名、Mach-O文件格式、hook原理等,并通過在越獄平臺和非越獄平臺上的逆向分析實例,帶領讀者學習逆向分析的思路和方法。在應用安全及保護方面,本書內容涉及網絡傳輸、安全檢測、代碼混淆等。
快速上手編寫iOS插件;深入理解iOS逆向原理;擴展iOS安全相關知識
劉培慶(@Alone_Monkey)
iOS逆向愛好者,網易云課堂“iOS逆向與安全”主講。大學畢業后在網易負責iOS安全保護、基礎組件開發、質量保障等工作。目前就職于阿里巴巴米諾斯實驗室,從事安全保護相關工作。開源作品有MonkeyDev、frida-ios-dump等。
推薦序

第一次和劉培慶見面是在2017年,西湖大道的碧桃小館。
四月的杭州已是初夏,只穿一件單衣的我,后背仍被汗水浸濕?;璋档牟蛷d里,劉培慶坐在角落,一件牛仔夾克扣到頂,看上去又悶又熱。我眉頭一皺,心生不悅:這人真傻。
高溫敗了胃口,團購的雙人餐,倆大老爺們兒竟然沒吃完。結賬走人,我們在涌金門一帶的巷弄里穿行消食,有一搭沒一搭地聊著。劉培慶說,他放棄了晉升的機會,跳到了另一個更辛苦的部門,是因為新部門的業務更吸引他。放棄更舒適的環境和更高的薪水去追求興趣?興趣值幾個錢?這人真傻。
是夜一別,我們各自忙于生活,很久沒有再會。五月某天,微信上突然彈出劉培慶的名字,“狗神,你那本書有沒有打算再出一版,幫你更新一下”,然后向我介紹了他的更新計劃,原來是在《iOS應用逆向工程》的基礎上更深入了。我覺得他的內容定位有些超出原書目標讀者的水平,于是建議他當作技術博客發出來,算是委婉的回絕。你的原創內容,放在我的書里,如果廣受歡迎,名氣豈不全讓我賺了?這人真傻。
七月的艷陽炙烤著大地,室內活動陡然增多。我要去濱江的HZEcers英語角分享出書經歷,地點恰好就在網易旁邊,于是邀請了他。沒想到這哥們兒把女朋友帶了來,兩人在活動中一前一后,緊張地用生澀的英語做自我介紹:“Good afternoon everyone, my name is Liu Peiqing...”他的生物專業小女友梳著齊劉海,戴著圓框眼鏡,英語比他溜得多:“...recently I'm learning programming, because I want to have more common topics with my boyfriend...”單純的出發點,真是傻得可愛。也只有這樣的傻姑娘,才會愛上這樣的傻小子吧?
沒過多久,我的論壇上出現了一個名為MonkeyDev的工具,是劉培慶寫的,號稱“原有iOSOpenDev的升級,非越獄插件開發集成神器”。我大致瀏覽了一下,看上去挺復雜,技術含量挺高,但竟然是開源的?!從Git提交記錄來看,劉培慶一直在花時間維護它,免費供大家使用。這個年頭,還有這樣的雷鋒,做這樣的好事?這人真傻。
金秋十月,劉培慶又在微信上找我,說他要出書了,邀請我寫個序。坦白地說,以劉培慶、James等90后為代表的新一代iOS逆向工程師鼓搗出來的新技術,我其實看不懂,也跟不上;同時,因為對庫克的失望,我早已不再往蘋果系技術上投入更多的精力。我已然從原來技術舞臺的主角淪為了看客?!昂罄恕本谷徽乙呀洝八涝谏碁┥稀钡摹扒袄恕睂懶??這人真傻。
但是,傻子劉培慶就在這樣的評價中朝著自己的目標一步步前進,最終寫出了《iOS應用逆向與安全》,推動了行業的發展。
他讓我想起了行業內的其他傻子。
四年前,另一個傻子,不知天高地厚地出版了《iOS應用逆向工程》,填補了市場的空白,受到了讀者的歡迎。這個傻子辦了個名叫iOSRE的論壇,為所有iOS逆向工程愛好者提供免費、自由、平等、純凈的交流平臺,卻不做廣告、不收贊助,自掏腰包維護論壇。這人真傻。
一個來自加拿大的傻子,為越獄iOS寫了個名叫Activator的插件,全球總下載量近2億次——據說這是喬布斯最喜愛的越獄插件。如果每次下載只收1毛錢,這個傻子也能成為千萬富翁,可是他卻把Activator免費提供給大家使用。這人真傻。
一個大學輟學的美國傻子,為越獄iOS提供了一套名為Theos的開發工具,它的簡單易用吸引了大量人才進入這個領域,為越獄開發的黃金5年揭開了序幕。為了維護這套免費、開源的工具,他每天熬夜到凌晨2點,義務解決用戶的問題,優化它的體驗,卻分文不取。這人真傻。
一個被親生父母遺棄的傻子,都沒正經上過大學,就自不量力地想要“Think different”。他創造的產品改變了世界,卻積勞成疾,英年早逝,留給后人一句“Stay hungry, stay FOOLISH”。這人真傻。
“……
我不害怕全世界就剩下我一個傻瓜
我要堅持到底,用我的方式
別在意這世界的奇妙
……”
感謝劉培慶這樣的傻子們。世界因為你們,變得可愛了一些。

沙梓社
2018年3月28日夜,于杭州


前言

2015年,通過校招,我以Windows安全方向進入網易,組內安排投入iOS安全方向的研究。當時,我連蘋果產品都沒用過,于是攢了點錢,在淘寶上買了一臺可越獄的iPad來研究。因為之前也沒有接觸過Objective-C,無法深入閱讀當時在網上找到的教程,所以只能跟著敲敲代碼,看看效果。后來,通過研讀念茜的文章,以及國外博客上的一些教程,把基本工具實踐了一番,“狗神”沙梓社的書出版后,把他的書認真看了一遍,才算是踏進了門檻。
在那一段學習過程中,我對新的知識點都是囫圇吞棗,一直停留在工具的使用上,沒有形成完整的知識體系和深層的認識,一旦出現問題就要花很長的時間去解決。這一點在后面張平引薦我去做網易云課堂的教學視頻時感受尤為深刻——當你要規劃整個課程時,你必須從全局出發考慮問題,僅僅根據自身的經驗、知道工具的使用方法是不夠的,只有理解和掌握原理,才能達到舉一反三的效果。雖然從準備資料、制作PPT到最后錄制視頻的過程挺累的,但在這個過程中,我加深了對知識點的理解。這是我第一次錄制視頻課程,由于經驗不足,導致了部分視頻在終端的顯示字體太小等問題,但總的來說,還是要感謝那些信任我、購買了我的視頻課程的人。
后來,有幾個朋友建議我出本書,把掌握的東西分享出來,也讓新人少踩點坑。當時我是有點猶豫的。我不僅擔心寫書會占用很多時間,也擔心自己的水平不夠、寫得不好。后來,想到視頻里面的一些內容需要更新,很多知識點可以補充和完善,加上書籍的學習和沉淀效果也比視頻好一些,我就開始做準備,規劃每一章的完成時間,每天下班后或者周末在電腦前整理資料、寫書,也挺充實的?,F在,這本書終于和你見面了,希望書中的內容能夠幫助你擴充自己的知識面,少走彎路,成為技術大牛。
讀者對象
本書介紹了iOS開發、逆向和安全等方面的內容,面向以下讀者:
*高校計算機相關專業的學生
*iOS開發工程師
*逆向工程師
*越獄開發工程師
*iOS安全工程師
*應用安全審計人員
近幾年,iOS開發人員數量激增。正向開發人員應該努力提升自己的競爭力,掌握一些底層技能,為自己開發的應用保駕護航。逆向新人也不要一味追求工具的使用和功能的實現,應該靜下心來,基礎知識掌握得扎實一些,后面的問題自然迎刃而解。
如何閱讀本書
考慮到很多逆向分析人員缺乏正向開發和安全保護方面的知識,本書將分成以下4個部分進行講解。
*第1章~第3章是快速上手部分,內容包括一些基本概念的介紹,環境的準備,以及一些常用逆向分析工具的使用和原理。
*第4章~第6章是正向知識儲備和進階部分,內容包括逆向過程中一些理論知識的深入講解,例如類的結構、App簽名、Mach-O文件格式、hook原理等。
*第7章是逆向實戰部分,通過在越獄平臺和非越獄平臺上的逆向分析實例,帶領讀者學習逆向分析的思路和方法。
*第8章是安全保護部分,內容包括應用安全及保護方面的知識,涉及網絡傳輸加密、動態保護、代碼混淆等。
盡管不同的人感興趣的方面可能不一樣,但我還是建議讀者能夠從頭開始閱讀本書,并把書中提到的每個知識點都實踐一遍,以加深理解。
本書的源代碼可以在GitHub上面找到:
https://github.com/AloneMonkey/iOSREBook
聲明
本書的寫作花費了大量的時間和心血,我只是想幫助大家在學習過程中少走彎路、拓寬知識面、增加技術積累,所以,請支持正版書籍,堅決抵制盜版!另外,本書內容僅供技術學習和研究之用,請勿將本書內容用于非法商業用途。
勘誤
由于知識水平有限,寫作過程也比較匆忙,書中難免出現錯誤及不足,歡迎各位讀者指正。同時,我為本書開設了一個提交issue的項目:
https://github.com/AloneMonkey/iOSREBook-issues
致謝
感謝我的家人,在我成長的路上一直支持我、鼓勵我。
感謝我異地三年的女友,很抱歉沒有陪在你的身邊。即便如此,你還是不離不棄,一直支持我的選擇。
感謝念茜、狗神及在我的學習路上給予我幫助的人,感謝在網易期間的所有同事,是你們讓我不斷成長。
感謝電子工業出版社提供的平臺,感謝編輯潘昕對本書內容的把控和指導。
感謝正在閱讀本書的你,謝謝你的支持和信任。

劉培慶
2018年4月,于杭州

目錄

第1章 概述
1.1 逆向工程簡介 1
1.1.1 iOS逆向學習基礎 1
1.1.2 iOS逆向的流程 1
1.1.3 iOS逆向使用的工具 2
1.1.4 iOS逆向的應用場景 2
1.2 應用面臨的安全風險 2
1.2.1 靜態修改文件 3
1.2.2 動態篡改邏輯 3
1.2.3 協議分析 3
1.3 應用保護手段 3
1.3.1 數據加密 3
1.3.2 程序混淆 4
1.3.3 安全監測 4
1.4 本書工具 4
1.4.1 效率工具 4
1.4.2 實用工具 5
1.4.3 逆向工具 5

第2章 越獄設備
2.1 什么是越獄 6
2.2 Cydia 6
2.3 SSH 7
2.3.1 安裝OpenSSH 8
2.3.2 配置dropbear 10
2.3.3 修改默認密碼 11
2.3.4 公鑰登錄 11
2.3.5 通過USB登錄 13
2.4 iOS系統結構 14
2.4.1 文件目錄 15
2.4.2 文件權限 17
2.5 Cydia Substrate 18
2.5.1 MobileHooker 19
2.5.2 MobileLoader 19
2.5.3 Safe mode 20
2.6 越獄必備工具 21
2.6.1 adv-cmds 21
2.6.2 appsync 21
2.6.3 iFile 21
2.6.4 scp 22

第3章 逆向工具詳解
3.1 應用解密 23
3.1.1 dumpdecrypted 23
3.1.2 Clutch 28
3.1.3 小結 30
3.2 class-dump 30
3.2.1 class-dump的使用 30
3.2.2 class-dump的原理 33
3.2.3 OC和Swift混編 40
3.3 Reveal 41
3.3.1 開發集成Reveal 41
3.3.2 越獄注入Reveal 42
3.4 Cycript 43
3.4.1 開發集成Cycript 44
3.4.2 使用Cycript越獄 45
3.4.3 使用Cycript分析應用 46
3.4.4 Cycript的高級用法 49
3.5 抓包 52
3.5.1 Charles抓包 53
3.5.2 修改網絡請求 55
3.5.3 HTTPS抓包 59
3.5.4 Wireshark抓包 60

第4章 開發儲備
4.1 App的結構及構建 66
4.1.1 獲取應用包 66
4.1.2 應用包的格式 71
4.1.3 應用的構建過程 72
4.2 界面結構和事件傳遞 76
4.2.1 界面的組成 76
4.2.2 界面事件的響應 79
4.3 類與方法 83
4.3.1 類與方法的底層實現 84
4.3.2 運行時類的結構 89
4.3.3 消息機制 91
4.3.4 runtime的應用 94
4.4 App簽名 98
4.4.1 配置Xcode簽名 98
4.4.2 App簽名的原理 100
4.4.3 重簽名 107

第5章 分析與調試
5.1 靜態分析 109
5.1.1 Hopper 109
5.1.2 IDA 118
5.1.3 靜態庫分析 125
5.2 動態調試 128
5.2.1 LLDB調試 128
5.2.2 LLDB解密 141
5.2.3 用Xcode調試第三方應用 144
5.2.4 LLDB的高級調試技巧 151
5.3 Theos 167
5.3.1 Theos的安裝 168
5.3.2 Theos的基本應用 168
5.3.3 Theos的高級應用 172
5.4 MonkeyDev 177
5.4.1 安裝MonkeyDev 178
5.4.2 Logos Tweak 179
5.4.3 CaptainHook Tweak 181
5.4.4 Command-line Tool 185

第6章 逆向進階
6.1 程序加載 186
6.1.1 dyld簡介 186
6.1.2 dyld加載流程 187
6.2 Mach-O文件格式 206
6.2.1 Mach-O文件的基本格式 206
6.2.2 Mach-O頭部 208
6.2.3 Load Command 210
6.2.4 虛擬地址和文件偏移 214
6.2.5 懶加載和非懶加載 217
6.2.6 Code Signature 223
6.3 ARM匯編 228
6.3.1 ARM架構和指令集 228
6.3.2 AArch64寄存器 229
6.3.3 指令集編碼 231
6.3.4 AArch64指令 233
6.3.5 棧和方法 236
6.3.6 Objective-C匯編 245
6.4 hook 247
6.4.1 Method Swizzle 247
6.4.2 fishhook 248
6.4.3 Cydia Substrate 253
6.4.4 Swift hook 256
6.5 動態庫 259
6.5.1 編譯和注入 260
6.5.2 導出和隱藏符號 260
6.5.3 C++ 和OC動態庫 263
6.5.4 其他常見問題 267

第7章 實戰演練
7.1 越獄設備分析 270
7.1.1 分析準備 270
7.1.2 開始分析 272
7.1.3 編寫Tweak 284
7.1.4 安裝與小結 287
7.2 非越獄設備分析 288
7.2.1 創建MonkeyDev項目 288
7.2.2 非越獄逆向實戰 291
7.2.3 編寫hook代碼 303
7.2.4 制作非越獄Pod 304
7.2.5 小結 308
7.3 Frida實戰應用 309
7.3.1 Frida的安裝 309
7.3.2 Frida的初級使用 311
7.3.3 Frida的高級使用 319
7.3.4 小結 326

第8章 安全保護
8.1 數據加密 327
8.1.1 本地存儲加密 328
8.1.2 網絡傳輸加密 328
8.1.3 字符串加密 333
8.2 靜態混淆 341
8.2.1 宏定義 342
8.2.2 二進制修改 347
8.3 動態保護 349
8.3.1 反調試 349
8.3.2 反反調試 352
8.3.3 反注入 359
8.3.4 hook檢測 360
8.3.5 完整性校驗 361
8.4 代碼混淆 363
8.4.1 什么是LLVM 363
8.4.2 下載和編譯LLVM 364
8.4.3 開發和調試Pass 366
8.4.4 OLLVM源代碼分析 373
8.4.5 替換Xcode編譯器 379
8.4.6 靜態庫混淆 389
8.5 本章總結 390

讀者評論

圖書類別

同系列書

  • Android軟件安全權威指南

    豐生強 (作者)

    本書從平臺搭建和語言基礎開始,循序漸進地講解了Android平臺上的軟件安全技術,提供了對Windows、Linux、macOS三個平臺的支持,涉及與Andro...

     
  • 黑客攻防:實戰加密與解密

    陳小兵 (作者)

    本書從黑客攻防的專業角度,結合網絡攻防中的實際案例,圖文并茂地再現Web滲透涉及的密碼獲取與破解過程,是一本對密碼獲取與破解進行全面研究的圖書。本書共分7章,由...

    ¥69.00
  • 阻擊黑客:技術、策略與案例

    Steven M. Bellovin (作者) 徐菲 (譯者)

    作者是世界上最受尊重和認可的安全專家之一,他在本書中提供了一種看安全的新視角。<br>本書第1部分從問題定義開始,從系統化的角度看待安全,討論當前安全發展的變化...

    ¥79.00
  • 軟件保護及分析技術——原理與實踐

    章立春 (作者)

    本書對軟件安全領域的保護與分析技術進行了全面的討論和剖析,通過保護與分析的對比講解,結合代碼和操作流程,對軟件安全領域的各種技術進行了詳盡的討論,并將理論與實踐...

    ¥59.00
  • 數據恢復技術(經典重現版)

    戴士劍 (作者)

    數據恢復技術逐漸成為一門常用技術,它通過各種手段把丟失和遭到破壞的數據還原為正常數據。本書通過多個典型實例詳細介紹了Windows系統下數據恢復技術的原理和方法...

    ¥99.00

相關圖書

大型互聯網企業安全架構

石祖文 (作者)

本書全面闡述了新一代安全理論與安全架構,并結合作者自身經驗層層剖析了包括Google 公司在內的各大互聯網企業所應用的各種關鍵安全技術的原理及具體實現。全書分為...

 

Spring Security實戰

陳木鑫 (作者)

Spring Security 是一個強大且高度可定制的安全框架,致力于為Java 應用提供身份認證和授權。 本書通過4 部分內容由淺入深地介紹了Spring...

 

Android軟件安全權威指南

豐生強 (作者)

本書從平臺搭建和語言基礎開始,循序漸進地講解了Android平臺上的軟件安全技術,提供了對Windows、Linux、macOS三個平臺的支持,涉及與Andro...

 

加密與解密(第4版)

段鋼 (作者)

本書以軟件逆向為切入點,講述了軟件安全領域相關的基礎知識和技能。讀者閱讀本書后,很容易就能在逆向分析、漏洞分析、安全編程、病毒分析等領域進行擴展。這些知識點的相...

¥198.00

Kali Linux大揭秘

(美國)Raphael Hertzog,(美國)Jim O'Gorman (作者) 諸葛建偉 (譯者)

Kali Linux是設計用于數字取證和滲透測試的操作系統,本書是官方出版的僅有的一本著作。講述了如何上手、配置、安全加固、自定義、安全評估等概念。<br>在本...

¥59.00

Web安全攻防:滲透測試實戰指南

徐焱 李文軒 王東亞 (作者)

  本書由淺入深、全面、系統地介紹了當前流行的高危漏洞的攻擊手段和防御方法,并力求語言通俗易懂,舉例簡單明了,便于讀者閱讀、領會。結合具體案例進行講解,可以讓讀...

¥54.00
国际官方棋牌下载中心 三分彩预测 北京赛车平台官网下载 广西十一选五开奖记录 江苏11选5规则 黑龙江十一选五直三遗漏 福建11选5官网 重庆幸运农场选号方法 甘肃体彩十一选5 山西11选5平台 急速赛车漂移