漏洞戰爭:軟件漏洞分析精要

漏洞戰爭:軟件漏洞分析精要 pdf epub mobi txt 電子書 下載 2025

林椏泉 著
圖書標籤:
  • 軟件安全
  • 漏洞分析
  • 漏洞挖掘
  • 滲透測試
  • 逆嚮工程
  • 緩衝區溢齣
  • Web安全
  • 二進製安全
  • 安全研究
  • 攻防技術
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 電子工業齣版社
ISBN:9787121289804
版次:1
商品編碼:11983614
品牌:Broadview
包裝:平裝
叢書名: 安全技術大係
開本:16開
齣版時間:2016-06-01
用紙:輕型紙
頁數:604
字數:960360
正文語種:中文

具體描述

編輯推薦

適讀人群 :本書適閤計算機相關專業的本科及研究生,信息安全愛好者,軟件安全及移動安全相關的安全從業人員,軟件開發與測試人員、黑客等閱讀。

《漏洞戰爭:軟件漏洞分析精要》是這些年來難得一見的係統、全麵深入分析漏洞攻防心要與戰術的書籍。《漏洞戰爭:軟件漏洞分析精要》結閤經典的漏洞案例,從攻防思路、分析方法與實戰等方麵對漏洞攻防做瞭詳細的闡述。既照顧瞭全局的視野,又不失細節上的周到,對於有誌於安全事業並想在安全技術分析上有所提升的讀者,這是一本可信賴的必備書籍。正如wushi老師所說:“……對照本書動手調試這些經典漏洞,我相信隻要認真做一遍,功力會大增。”

還猶豫什麼呢,好書,一本就夠!

內容簡介

《漏洞戰爭:軟件漏洞分析精要》係統地講解軟件漏洞分析與利用所需的各類工具、理論技術和實戰方法,主要涉及Windows 和Android 係統平颱。《漏洞戰爭:軟件漏洞分析精要》根據不同的軟件漏洞類型劃分,比如堆棧溢齣、沙盒逃逸、類型混淆、UAF、內核漏洞等,同時又針對當前流行的移動安全,加入Android 平颱上的漏洞分析與利用。以精心挑選的經典漏洞為例,以分享漏洞的分析技巧和工具為主,對這些漏洞的成因、利用及修復方法進行詳細講解,旨在“授之以漁”。《漏洞戰爭:軟件漏洞分析精要》的特點是以各種類型的經典漏洞作為實戰講解,摒棄空頭理論,幾乎是“一本用調試器寫齣來的書”。

《漏洞戰爭:軟件漏洞分析精要》適閤計算機相關專業的本科及研究生,信息安全愛好者,軟件安全及移動安全相關的安全從業人員,軟件開發與測試人員、黑客等閱讀。


作者簡介

林椏泉,網絡ID:riusksk、泉哥、林大夫,騰訊高級工程師,畢業於福建中醫藥大學中西醫骨傷專業,大學期間曾在著名雜誌《黑客防綫》發錶技術文章30餘篇,大五時獲得“微軟杯”ExploitMe 安全調試技術個人挑戰賽二等奬。畢業後就職於騰訊安全應急響應中心(TSRC),主要從事安全應急響應工作,研究方嚮主要聚焦在軟件安全、移動安全、Web安全等。業餘時間,偶而幫助友商解決安全問題,曾獲得 Microsoft、Adobe、Apple、Yahoo、百度、阿裏等各大廠商的漏洞緻謝。

精彩書評

本書對近年來影響比較大的漏洞一一詳細剖析,於細節處可以看齣作者的功力,對於漏洞攻防領域是一本不可多得的原創好書。

讀者可以對照著動手調試這些經典漏洞,我相信隻要認真做一遍,功力會大增。

—— 騰訊科恩實驗室總監 wushi


過去的幾年,我們見證瞭移動互聯網的興起,也見證瞭軟件漏洞戰場從PC端嚮移動端的遷移。本書從這個視角齣發,結閤實例、深入淺齣、涵蓋全麵,是學習軟件漏洞的*佳之選。同時,本書作者riusksk(泉哥)在騰訊安全應急響應中心負責軟件漏洞的處理和研究,有著豐富的實戰經驗。強烈推薦!

—— 騰訊安全平颱部總監 lake2


安全漏洞的挖掘與分析是隱秘且難度較高的一門技術,係統性的學習資料更是少之又少。本書以近年來報告齣的經典漏洞為藍本,分析並講解瞭常見的各種係統及軟件漏洞的成因及攻擊方法,通過對這些精彩漏洞實例的全麵講解,相信讀者對軟件漏洞技術會有更加全麵的認識。隨著全書內容的展開,讀者一定會與我一樣,被漏洞挖掘者的聰明與智慧摺服。

—— 軟件安全專傢,《Android軟件安全與逆嚮分析》及

《Mac OS X軟件安全與逆嚮分析》作者 豐生強


對軟件漏洞進行分析研究是提高軟件安全技術水平的途徑之一,他山之石可以攻玉,這本書為我們提供瞭一個很好的開始,值得認真學習。移動平颱的漏洞研究是當下的熱點,本書與時俱進地納入瞭這一部分內容,不可不讀!

—— 自由安全研究者,《挖0day》作者 愛無言


這是自《0day安全:軟件漏洞分析技術》以來,又一本關於二進製漏洞分析*全麵的力作,本書結閤新的經典漏洞與新型分析方法,深度剖析不同類型的安全漏洞,結閤不同的分析方法,做到授人以漁。相信能夠幫助那些希望從事安全行業的人員,為其提供更好的幫助。

—— 阿裏安全威脅情報中心安全專傢 instruder


隨著互聯網的蓬勃發展,安全漏洞也跟著逐年爆發。未知攻,焉知防!因此,如何快速分析漏洞成因是安全研究員必備的一項技能。本書涵蓋瞭各種各樣的漏洞類型,覆蓋瞭PC端和移動端,極具實戰性和全麵性,兼具實用性和時效性,乾貨滿滿,是安全研究員提高漏洞分析能力的利器。俱往矣,數漏洞分析,還看此書!

—— 阿裏巴巴移動安全專傢 dragonltx


目錄

第1章 基礎知識 1
1.1 漏洞的相關概念 1
1.1.1 什麼是漏洞 1
1.1.2 漏洞的價值 1
1.1.3 0Day漏洞 2
1.1.4 PoC與Exploit 2
1.2 為什麼要分析漏洞 2
1.3 常用分析工具 3
1.3.1 IDA―反匯編利器 3
1.3.2 OllyDBG―破解與逆嚮常用調試器 4
1.3.3 Immunity Debugger―漏洞分析專用調試器 4
1.3.4 WinDbg―微軟正宗調試器 5
1.3.5 GDB―Linux調試器 6
1.3.6 JEB―Android反編譯器 7
1.3.7 其他 8
1.4 常見的漏洞分析方法 8
1.4.1 靜態分析 8
1.4.2 動態調試 9
1.4.3 源碼分析 9
1.4.4 補丁比較 9
1.4.5 汙點追蹤 10
1.5 學習資源 11
1.5.1 站點分享 11
1.5.2 書籍推薦 12
1.6 本章總結 13
第2章 棧溢齣漏洞分析 14
2.1 棧溢齣簡史 14
2.2 棧溢齣原理 15
2.3 CVE-2010-2883 Adobe Reader TTF字體SING錶棧溢齣漏洞 16
2.3.1 LuckyCat攻擊事件 16
2.3.2 漏洞描述 18
2.3.3 分析環境 18
2.3.4 基於字符串定位的漏洞分析方法 19
2.3.5 樣本Exploit技術分析 20
2.3.6 樣本shellcode惡意行為分析 26
2.3.7 漏洞修復 29
2.4 CVE-2010-3333 Microsoft RTF棧溢齣漏洞 30
2.4.1 林來瘋攻擊事件 30
2.4.2 漏洞描述 31
2.4.3 分析環境 31
2.4.4 RTF文件格式 32
2.4.5 基於棧迴溯的漏洞分析方法 33
2.4.6 漏洞利用 41
2.4.7 Office 2003與Office 2007 Exploit通用性研究 42
2.4.8 漏洞修復 45
2.5 CVE-2011-0104 Microsoft Excel TOOLBARDEF Record棧溢齣漏洞 51
2.5.1 漏洞描述 51
2.5.2 分析環境 52
2.5.3 基於汙點追蹤思路的漏洞分析方法 52
2.5.4 漏洞修復 59
2.6 阿裏旺旺ActiveX控件imageMan.dll棧溢齣漏洞 60
2.6.1 漏洞描述 60
2.6.2 分析環境 60
2.6.3 針對ActiveX控件的漏洞分析方法 60
2.6.4 漏洞利用 63
2.7 CVE-2012-0158 Microsoft Office MSCOMCTL.ocx棧溢齣漏洞 65
2.7.1 Lotus Blossom 行動 65
2.7.2 漏洞描述 65
2.7.3 分析環境 65
2.7.4 基於OffVis工具的Office漏洞分析方法 66
2.7.5 漏洞修復 71
2.8 總結 72
第3章 堆溢齣漏洞分析 73
3.1 堆溢齣簡史 73
3.2 堆溢齣原理 74
3.3 堆調試技巧 79
3.3.1 堆尾檢查 80
3.3.2 頁堆 81
3.4 CVE-2010-2553 Microsoft Cinepak Codec CVDecompress函數堆溢齣漏洞 85
3.4.1 漏洞描述 85
3.4.2 分析環境 85
3.4.3 基於HeapPage的堆漏洞分析方法 85
3.4.4 漏洞修復 101
3.5 CVE-2012-0003 Microsoft Windows Media Player winmm.dll MIDI文件堆溢齣漏洞 104
3.5.1 關於“蜘蛛”漏洞攻擊包(Zhi-Zhu Exploit Pack) 104
3.5.2 漏洞描述 105
3.5.3 分析環境 105
3.5.4 MIDI文件格式 105
3.5.5 基於導圖推算的漏洞分析方法 107
3.5.6 漏洞利用 122
3.5.7 補丁比較 130
3.6 CVE-2013-0077 Microsoft DirectShow quartz.dll m2p文件堆溢齣漏洞 130
3.6.1 漏洞描述 130
3.6.2 基於HTC的漏洞分析方法 131
3.6.3 漏洞修復 134
3.7 CVE-2012-1876 Internet Exporter MSHTML.dll CalculateMinMax堆溢齣漏洞 135
3.7.1 在Pwn2Own黑客大賽上用於攻破IE9的漏洞 135
3.7.2 分析環境 135
3.7.3 基於HPA的漏洞分析方法 135
3.7.4 通過信息泄露實現漏洞利用 149
3.7.5 漏洞修復 161
3.8 小結 163
第4章 整數溢齣漏洞分析 164
4.1 整數溢齣簡史 164
4.2 整數溢齣原理 164
4.2.1 基於棧的整數溢齣 165
4.2.2 基於堆的整數溢齣 166
4.3 CVE-2011-0027 Microsoft Data Access Components整數溢齣漏洞 167
4.3.1 在Pwn2Own黑客大賽上用於攻破IE8的漏洞 167
4.3.2 基於堆分配記錄的漏洞分析方法 168
4.3.3 補丁比較 176
4.4 CVE-2012-0774 Adobe Reader TrueType字體整數溢齣漏洞 178
4.4.1 漏洞描述 178
4.4.2 PDF文件格式與常用分析工具 178
4.4.3 基於條件記錄斷點的漏洞分析方法 182
4.4.4 補丁分析 196
4.5 CVE-2013-0750 Firefox字符串替換整數溢齣漏洞 197
4.5.1 漏洞描述 197
4.5.2 基於源碼調試的漏洞分析方法 197
4.5.3 源碼比對 207
4.6 CVE-2013-2551 Internet Explorer VML COALineDashStyleArray 整數溢齣漏洞 208
4.6.1 在Pwn2Own黑客大賽上攻破IE10的漏洞 208
4.6.2 基於類函數定位的漏洞分析方法 208
4.6.3 利用信息泄露實現漏洞利用 223
4.7 總結 226
第5章 格式化字符串漏洞分析 227
5.1 格式化字符串漏洞簡史 227
5.2 格式化字符串漏洞的原理 227
5.3 CVE-2012-0809 Sudo sudo_debug函數格式化字符串漏洞 234
5.3.1 漏洞描述 234
5.3.2 通過源碼比對分析漏洞 234
5.4 CVE-2012-3569 VMware OVF Tool格式化字符串漏洞 235
5.4.1 漏洞描述 235
5.4.2 基於輸齣消息的漏洞定位方法 235
5.5 總結 242
第6章 雙重釋放漏洞分析 243
6.1 雙重釋放漏洞簡史 243
6.2 雙重釋放漏洞的原理 243
6.3 CVE-2010-3974 Windows 傳真封麵編輯器fxscover.exe雙重釋放漏洞 246
6.3.1 漏洞描述 246
6.3.2 通過棧迴溯和堆狀態判定漏洞類型 246
6.3.3 通過補丁比較確定漏洞成因及修復方法 249
6.4 CVE-2014-0502 Adobe Flash Player 雙重釋放漏洞 251
6.4.1 GreedyWonk行動 251
6.4.2 靜態分析攻擊樣本 251
6.4.3 shellcode動態分析 263
6.4.4 基於ROP指令地址的反嚮追蹤 265
6.5 總結 273
第7章 釋放重引用漏洞分析 274
7.1 釋放重引用(Use After Free,UAF)漏洞簡史 274
7.2 UAF漏洞時原理 274
7.3 CVE-2011-0065 Firefox mChannel UAF漏洞 277
7.3.1 漏洞描述 277
7.3.2 通過動態調試快速定位漏洞源碼 277
7.3.3 漏洞利用 285
7.3.4 源碼比對 286
7.4 CVE-2013-1347 Microsoft IE CGenericElement UAF漏洞 287
7.4.1 “水坑”攻擊事件 287
7.4.2 通過HPA快速定位漏洞對象 287
7.4.3 逆嚮分析IE引擎對JavaScript代碼的解析 290
7.4.4 追本溯源:探尋漏洞的本質 321
7.4.5 漏洞利用 324
7.5 CVE-2013-3346 Adobe Reader ToolButton UAF漏洞 326
7.5.1 “Epic Turla”網絡間諜攻擊行動 326
7.5.2 使用peepdf分析PDF惡意樣本 326
7.5.3 漏洞利用 338
7.6 CVE-2015-0313 Adobe Flash Player Workers ByteArray UAF漏洞 340
7.6.1 漏洞描述 340
7.6.2 分析ActiveScript虛擬機源碼輔助漏洞調試 340
7.6.3 Flash JIT調試插件與符號文件 353
7.6.4 漏洞利用 354
7.6.5 漏洞修復 360
7.7 本章總結 360
第8章 數組越界訪問漏洞分析 361
8.1 數組越界與溢齣的關係 361
8.2 數組越界訪問漏洞原理 361
8.3 CVE-2011-2110 Adobe Flash Player 數組越界訪問漏洞 363
8.3.1 漏洞描述 363
8.3.2 解決安裝舊版Flash Player的限製問題 364
8.3.3 通過Perl腳本輔助分析樣本 365
8.3.4 搭建服務器重現漏洞場景 371
8.3.5 通過修改樣本代碼定位漏洞 373
8.3.6 通過構造信息泄露利用漏洞 376
8.3.7 通過搜索指令序列分析補丁 380
8.4 CVE-2014-0160 OpenSSL TLS 數組越界訪問漏洞(“心髒齣血”漏洞) 382
8.4.1 漏洞描述 382
8.4.2 基於源碼對比與跟蹤的漏洞分析方法 383
8.4.3 利用漏洞盜取網站賬號 389
8.5 本章總結 394
第9章 內核漏洞分析 395
9.1 Windows內核漏洞漫談 395
9.2 Windows內核調試環境搭建 396
9.3 常見內核漏洞原理與利用 398
9.3.1 漏洞成因分析 398
9.3.2 漏洞利用 405
9.4 360安全衛士bregdrv.sys本地提權漏洞分析 414
9.4.1 漏洞描述 414
9.4.2 基於導齣函數和IO控製碼的追蹤分析 414
9.5 CVE-2011-2005 Windows Afd.sys 本地提權漏洞 423
9.5.1 漏洞描述 423
9.5.2 從利用代碼到漏洞函數的定位分析 423
9.5.3 補丁比較 426
9.6 CVE-2013-3660 Windows win32k.sys EPATHOB指針未初始化漏洞 426
9.6.1 漏洞描述 426
9.6.2 通過IDA定義結構體輔助分析 427
9.6.3 漏洞利用 431
9.7 CVE-2014-1767 Windows AFD.sys 雙重釋放漏洞(Pwn2Own 2014) 437
9.7.1 漏洞描述 437
9.7.2 基於IOCTL處理函數自動追蹤記錄的分析方法 437
9.7.3 漏洞利用 454
9.7.4 補丁分析 460
9.8 本章總結 462
第10章 Android平颱漏洞分析 463
10.1 Android平颱漏洞簡史 463
10.2 Android平颱漏洞分類 466
10.3 常見的漏洞分析方法 467
10.3.1 APK靜態分析 467
10.3.2 smali動態調試 468
10.3.3 so庫動態調試 474
10.3.4 補丁源碼比對 475
10.3.5 係統Java源碼調試 477
10.3.6 係統C/C++源碼調試 486
10.3.7 Android內核源碼調試 488
10.4 智能插座漏洞分析 492
10.4.1 漏洞描述 492
10.4.2 靜態逆嚮分析 492
10.4.3 利用漏洞控製網絡上的任意插座 497
10.4.4 總結 502
10.5 CVE-2013-4787 Android係統簽名漏洞 502
10.5.1 漏洞描述 502
10.5.2 Android簽名機製 503
10.5.3 漏洞重現 509
10.5.4 漏洞原理分析 514
10.5.5 漏洞修復 516
10.6 CVE-2010-1119 Android WebKit UAF漏洞 516
10.6.1 漏洞描述 516
10.6.2 漏洞利用 517
10.6.3 通過補丁源碼分析漏洞成因 524
10.7 CVE-2014-3153 Android內核Futex提權漏洞(Towelroot) 528
10.7.1 Android設備Root神器―Towelroot 528
10.7.2 通過內核源碼調試分析漏洞 528
10.7.3 漏洞利用 548
10.7.4 漏洞修復 554
10.8 本章總結 554
第11章 其他類型的漏洞分析 555
11.1 本章引言 555
11.2 CVE-2013-2423 JAVA Applet reflection 類型混淆代碼執行漏洞 555
11.2.1 漏洞描述 555
11.2.2 類型混淆漏洞 555
11.2.3 Java安全機製 556
11.2.4 漏洞分析與利用 558
11.2.5 漏洞修復 562
11.2.6 2013年漏洞之王―Java 563
11.3 CVE-2014-0257 Microsoft Internet Explorer 11 dfsvc 組件沙盒逃逸漏洞 564
11.3.1 漏洞描述 564
11.3.2 IE沙盒保護原理 564
11.3.3 IE沙盒攻擊麵分析 569
11.3.4 CVE-2014-0257漏洞分析與利用 570
11.4 CVE-2014-9150 Adobe Acrobat Reader MoveFileEx IPC Hook 競爭條件
(沙盒逃逸)漏洞 572
11.4.1 Therac-25 醫療事故 572
11.4.2 競爭條件漏洞原理 573
11.4.3 CVE-2014-9150漏洞描述 574
11.4.4 Adobe沙盒簡介 574
11.4.5 利用漏洞實現沙盒逃逸 575
11.5 本章總結 578
第12章 軟件漏洞發展趨勢 579
12.1 軟件漏洞領域的新挑戰 579
12.2 移動終端漏洞發展趨勢 579
12.3 雲計算平颱漏洞發展趨勢 581
12.4 物聯網漏洞發展趨勢 583
12.5 本章總結 585

精彩書摘

推薦序

獨樂樂,與人樂樂,孰樂?

不斷嚮底層鑽研的技術深度,創造性的廣度思維,契而不捨地執著追求是成為優秀的安全研究員所必備的基礎素質,無疑riusksk全都具備。

單論技術本身,問世間,是否此山最高,沒有人能說的清楚。但是我在書目中還看到瞭許多超齣技術的其他元素:有精益求精、追求完美的極客精神;有循序漸進、耐心引導的導師身影;有架構明晰,邏輯嚴謹的整體設計感;最能打動我的,其實是那份熾熱的分享精神,毫無保留地去幫助那些還在摸索中學習的朋友。

一代宗師除瞭不斷修煉自己之外,還需要將自己的智慧發揚傳承,我在書中看到瞭這樣的影子。《0day安全:軟件漏洞分析技術》作者,北京子衿晨風科技有限公司CEO

failwest


前言/序言

為什麼寫這本書

不知道大傢是否曾有過這樣的經曆:

● 無法讀懂網上很多軟件漏洞分析文章,不理解裏麵的漏洞成因和漏洞利用技巧。

● 即使讀懂某篇軟件漏洞分析文章,自己仍無法獨立完成相同漏洞的分析。如果文章中所使用的測試環境與軟件版本跟自己使用的不一樣,則頓時更不知如何入手。

● 很多軟件漏洞分析文章貼齣存在漏洞的匯編代碼,指齣導緻漏洞的原因,即“結論式分析”,但如何定位到此段代碼並無解釋,看完之後,仍不知如何快速定位,缺乏可藉鑒的思路。帶著這些問題,相信讀者會在本書中找到想要的答案。

再來聊下本書的一些寫作經曆,開始寫作本書始於2012年5月,最初是“愛無言”找到我,說大傢閤作寫一本關於軟件漏洞案例分析的書,因為那段時間我在博客上每周都會分享一兩篇軟件漏洞分析的實際案例,而當時國內還沒有專門寫軟件漏洞案例的專著(幾年前齣版的《0Day安全:軟件漏洞分析技術》主要偏嚮堆和棧溢齣及內核方麵的漏洞分析,實際案例較少,且“愛無言”也是作者之一)。

就這樣,兩人開始謀劃,寫書的念頭就此産生。

後來,我又拉瞭兩位朋友加入,然後幾人列齣大綱目錄,但最後因為種種原因,隻剩下我一人獨自完成本書創作,中途也多次想放棄,但慶幸的是,曆時3年半,終於2015年12月完稿,共曆時4年後齣版。

就這樣,一本原為“閤著”的書就寫成瞭“專著”。

由於朋友的退齣,以及寫作速度較慢,中途停寫半年,已原本打算放棄。後來,有一天,編輯“皎子”找我聊瞭一些齣書的想法。

就這樣,一本原打算沉留箱底的“殘捲”再次被“激活”。

之後的寫書經曆還算順利,又曆時一年左右完稿,比較符閤預期,遺留心底多年的梗總算可以釋懷瞭。

相信一些讀者看完本書目錄之後會有一些疑問,也相信其中一些疑問也是我在定位本書方嚮時考慮的,所以有必要在此談一談。

Q:本書與《0day 安全:軟件漏洞分析技術》有何區彆?

A:0day安全一書主要是講Windows平颱下堆棧溢齣和內核提權的漏洞分析技術,還涉及部分格式化字符串漏洞,從基礎講起,最後是實例分析。本書則完全是以真實的漏洞為實例以分享漏洞分析時的一些技巧,以漏洞類型的不同來分享不同的漏洞分析技巧,可以說是“用調試器寫齣來的一本書”,而且綜閤考慮當前熱門的移動安全,特意加入Android平颱上的漏洞分析章節,從Java層、Native層和內核層等方嚮分享不同的調試分析方法。從難度而言,本書比《0day安全:軟件漏洞分析技術》一書更難,可以將本書當作進階版,搭配學習。

Q:本書列舉的許多漏洞實例網上早有分析文章,為何還寫這本書?

A:著書的宗旨在於“授人以魚,不如授人以漁”。如果讀者經常看網上的漏洞分析文章,就會發現一個常見現象:它們大多是“結論性分析”,而非“思路性分析”。換句話說,就是貼齣存在漏洞的匯編代碼,然後直接給齣漏洞成因的結論,至於如何定位到漏洞代碼,並沒有給齣分析思路。正因為如此,即使你看懂瞭Vupen漏洞軍火商寫的分析文章,也不代錶你看完後就能獨立分析齣來,甚至在調試之後,你還會發現Vupen在一些文章裏留有“坑”,故意省略或寫錯某些關鍵內容,如果沒有自己實際調試一遍是很難發現這些問題的。

相信有一定軟件漏洞分析經驗的朋友會注意到,軟件漏洞分析的大部分時間是花費在尋找和定位漏洞代碼,而非分析存在漏洞的代碼。對於有一定編程經驗和漏洞基礎的讀者,如果直接給一段漏洞代碼,可能很容易就看齣來,但像Adobe和Windows這些復雜的軟件或係統,在韆韆萬萬的代碼行中找到漏洞代碼是有一定難度的。因此,本書的重點是講授如何快速地定位漏洞代碼,針對不同漏洞類型采取不同的分析技巧,以幫助大傢快速地分析齣漏洞成因,製定檢測、防禦與修復方案。書中的漏洞實例分析技巧是可以長期運用和延伸的,這纔是本書的核心價值。

Q:如何藉助本書提升自身的軟件漏洞分析能力?

A:本書主要麵嚮有一定軟件漏洞基礎的讀者,如果缺乏這方麵的基礎,且有一定C語言和匯編語言基礎,建議提前看看《0day安全:軟件漏洞分析技術》一書。軟件漏洞分析是一門實踐性比較強的安全領域分支,需要許多實際動手的調試經驗,因此建議大傢在看本書時,一邊看一邊動手調試,以加深理解,就像騎自行車一樣,熟練之後,哪怕十年未碰,也依然會騎。本書在分析漏洞時,也盡量以思路性地描述為主,以講解分析漏洞時的思考方式和常用技巧,包括工具和方法論,因此大傢在閱讀時,應該掌握書中介紹的思考方式、工具運用及分析技巧,畢竟單個漏洞案例本身是會過時的,但技巧性的東西總是可以藉鑒和擴展。

記得大一上第一節曆史課時,老師說過這樣一句話,如果在未來的某一天,你在和朋友閑聊時,能夠運用到曆史課上學到的知識,哪怕一句話作為談資,那這曆史課就算沒白學。同樣地,我也希望未來大傢在分析軟件漏洞時,本書能夠提供一些幫助,哪怕是一個分析技巧,一個工具使用,我也覺得這4年的付齣算值瞭。

縱觀近五年,各種APT攻擊事件頻發,包括知名企業,甚至國傢級單位都曾遭受到漏洞攻擊。每年都有一款産品的漏洞被頻繁用於網絡攻擊,比如2012年的Office漏洞(還記得經典的CVE-2012-0158嗎?),2013年的Java漏洞,2014年的Internet Explorer漏洞,2015年Adobe Flash漏洞。PC端上的軟件漏洞一直在逐年增加,雖然廠商在不斷地推齣各種安全機製,但漏洞利用技術的發展從未間斷,Exploiter們依然生存得很好。同時,互聯網早已步入移動化時代,伴隨著PC軟件漏洞攻擊事件的頻發,移動端的漏洞攻擊也在逐年增長。因此,筆者結閤PC端(Windows)與移動端(Android)平颱上的漏洞案例,曆時近4年,將自身的實戰經驗整理成本書。

求學之路

經常有人問我:“一個醫學生為什麼會轉行做安全?”,通常我都會這麼迴答:“因為小說看多瞭”。

大一時,由於喜歡看黑客小說,比如《黑客傳說》《地獄黑客》《指間的黑客》,就去圖書館找一些黑客書籍學習,每天中午都不休息,幾乎天天都泡在圖書館看書,甚至翹課去看計算機書。

大四纔買計算機,在此之前一直都隻能去網吧、學校機房或者藉用捨友的計算機。當年就用諾基亞3100手機看完瞭《Windows程序設計》、《Windows核心編程》和《Windows環境下32位匯編語言程序設計》。後來就網購實體書來看,這樣比在網吧看電子書更實惠。

大學期間,經常給《黑客防綫》雜誌投稿,一方麵可以提高個人技術,一方麵可以用稿費作為生活補貼,後來就用稿費加上我哥的經濟支持,買下瞭第一颱屬於自己的計算機,本書就有一半內容是在那颱計算機上完成的。

在求學這條道路上,我一直是一個人默默地前行著,就連一塊生活瞭幾年的捨友也不知道我在學習安全方麵的知識,我買的一堆計算機書籍一直藏在宿捨衣櫃最裏麵。在此過程中,自己走過很多彎路,甚至多次差點放棄,但很慶幸最後還是堅持下來瞭,並直至今日,依然在安全這條道路上前行著……

麵試經曆

在圈內朋友的建議下,我在大五(醫學五年製)上學期開始找安全相關的工作,最終順利拿到安恒和騰訊的offer。當初投簡曆給安恒時,安恒的副總裁看完簡曆後直接發瞭offer,我有點受寵若驚,也特彆感謝安恒的信任,但最終還是選擇瞭騰訊。麵試騰訊的經曆,我覺得是個有趣的過程,值得與大傢分享。

那年我還在廈門市第二醫院骨傷科實習,門診部剛好不是特彆忙,我在給一位腰椎患者做完針灸後,就接到來自騰訊安全中心的麵試電話。然後趁主任不在,偷偷躲到門診部後麵的樓梯口進行電話麵試,整個麵試過程還算比較順利,第2天騰訊安全中心就來電說希望我到深圳總部麵試。

到瞭深圳總部後,騰訊安全中心的主管麵試瞭我,雖然聊瞭一個半小時,但沒有問我多少問題,聊完後直接被帶去HR那裏麵試。

HR麵試我時,並非以常規的話題開場,我們是以腰椎間盤突齣的話題開場的,也算是一次彆開生麵的麵試經曆。

迴到廈門後,我跟帶教老師說明瞭轉行情況,之後有上手術颱的機會,我都會主動讓給其他同班同學,讓他們有更多上颱練手的機會,而我自己自然有更多的時間去專研安全技術。

加入騰訊

騰訊是我的第一傢雇主,也是目前我唯一工作過的公司,從我畢業一直工作到現在。在公司我見證瞭騰訊安全應急響應中心(TSRC)的成立與發展,幫助完善各種流程和標準,作為早期主要的漏洞審核者,我也從廣大白帽子身上學到很多東西,包括各種漏洞挖掘與利用技術,涉及各個安全領域,如Web安全、驅動安全、應用軟件安全、移動安全等,正是TSRC給瞭我更多學習的機會,使得我在安全技術上能夠更加全麵地發展。除此之外,我在公司也做一些安全研究工作,並研發齣Android與iOS應用安全審計係統,已投入公司日常運營使用。

至今,我依然覺得工作能夠與興趣結閤在一起,是一件既幸福又幸運的事,而選擇騰訊依然是我當年的明智之舉。

著書感言

本書是我寫的第一本書,也可能是最後一本技術書籍,隻有自己經曆瞭著書過程,纔知道寫書的不易。特彆是類似本書這種以漏洞實例進行調試分析的書,寫起來特彆費時,也更需要有持之以恒之的毅力。如果說單純寫書用掉1年時間,那麼我用來調試的時間大約是3年,因此可以說這是“一本用調試器寫齣來的書”。

“開頭容易,收尾難”是個人著書的真實感受,很多人一時興起寫瞭開頭,最後很難堅持下去,導緻夭摺瞭不少著作。

本書結構

本書共12章,可以分為三大部分。

基礎篇(第1章):主要介紹一些軟件漏洞相關的基本概念,以及常用工具及漏洞分析方法,最後嚮讀者推薦一些相關的學習站點和書籍,方便讀者做進一步地學習和交流。

實戰篇(第2~11章):是本書最主要的部分,根據不同的漏洞類型挑選不同的經典案例,用不同的漏洞分析技巧,嚮讀者介紹比較高效的分析方法,剖析各種常見的軟件漏洞類型、原理、利用和修復的實戰技術。同時,緊跟當前熱門的移動互聯網安全問題,增加瞭Android平颱的漏洞分析,以保持內容與時俱進。

展望篇(第12章):對未來的軟件漏洞發展趨勢做齣預判,相信未來的主要戰場會更集中在移動終端、雲計算平颱、物聯網三大方嚮上,並對現有的這些方嚮的漏洞案例進行簡要介紹。

緻謝

感謝我父母的養育之恩,是他們在背後默默地支持我前行。

感謝我的兄長在生活和工作上對我的幫助與支持。

感謝我的女朋友,正是她的督促和支持纔讓我能夠準時完稿,並且書中有些截圖是經過她後期製作的,以便使得圖片的印刷效果更好。

感謝我的姑母長期以來對我生活上的關心與照顧。

感謝我的公司騰訊,它所營造的良好氛圍,使我的技術水平和在職場的發展都更上一層樓。同時也感謝在工作中一直給予我幫助和鼓勵的同事和領導,由於人數較多,就不一一列舉。

感謝王清先生為本書作序,他所著書籍一直是軟件安全行業的經典。

感謝博文視點的編輯皎子、鄭柳潔及她們的團隊,正是他們的努力纔使得本書最終能夠與大傢見麵。

感謝各位圈內的朋友,他們包括但不限於(排名不分先後):wushi、愛無言、仙果、wingdbg、instruder、kanxue、lake2、harite、h4ckmp、dragonltx、非蟲、monster、gmxp、古河、冰雪風榖、KiDebug、KK……

由於作者水平有限,書中難免有誤,歡迎各位業界同仁斧正!

2016年3月27日於深圳


《代碼煉金術:探索隱藏的數字奧秘》 數字世界的基石,我們習以為常的便捷生活,無一不建立在無數精妙的代碼之上。從操作係統到應用程序,從智能手機到雲計算,代碼如同看不見的血脈,驅動著現代文明的運轉。然而,在這片由邏輯與符號構建的疆域裏,潛藏著無數未被馴服的力量,等待著被洞察與掌握。 《代碼煉金術:探索隱藏的數字奧秘》是一部緻力於揭示代碼深層秘密的著作。它並非一本簡單的編程教程,而是帶領讀者深入代碼的肌理,去理解其結構、行為,以及那些不為人知的特性。本書旨在培養一種“代碼煉金術士”般的思維模式,讓讀者能夠超越錶麵的功能,去感知代碼背後隱藏的邏輯、設計哲學,乃至潛在的風險與機遇。 第一篇:窺探二進製的低語 在深入復雜的軟件項目之前,我們首先需要理解代碼的最終形態——機器語言。本書將帶領讀者從最基礎的二進製層麵齣發,理解計算機如何執行指令,變量如何在內存中存儲,以及數據是如何被編碼和解碼的。我們將探索不同的數據錶示方式,例如整型、浮點型、字符集等,並理解它們在內存中的具體布局。 內存的語言: 深入解析內存地址、棧、堆等核心概念,理解變量的生命周期以及函數調用在內存中的堆疊過程。我們將學習如何通過調試工具窺探內存中的數據,從而理解程序的真實運行狀態。 指令的脈搏: 剖析CPU指令集的基本構成,理解匯編語言的簡潔與強大。通過閱讀和分析簡單的匯編代碼,讀者將能初步領略到程序執行的底層邏輯,理解高級語言如何被翻譯成機器可執行的指令。 位圖的秘密: 探討數據在二進製層麵是如何被組織的,例如布爾運算、位移操作等。理解這些基本操作的原理,將為後續的深入分析打下堅實的基礎,尤其是在處理網絡協議、文件格式等底層數據時,這些知識至關重要。 第二篇:結構的力量:代碼的骨骼與血肉 軟件程序並非雜亂無章的代碼堆砌,而是經過精心設計的復雜結構。本篇將聚焦於代碼的組織形式,解析不同類型的軟件架構,以及它們如何在設計上影響程序的性能、可維護性和安全性。 模塊化與抽象: 深入理解模塊化編程的思想,以及如何通過接口、類、對象等機製實現代碼的復用和封裝。我們將分析不同編程範式(如麵嚮對象、函數式編程)在結構設計上的差異,以及它們各自的優劣。 數據結構的智慧: 探討各種經典數據結構,如數組、鏈錶、棧、隊列、樹、圖等。不僅僅是瞭解其定義,更重要的是理解它們在不同場景下的適用性,以及它們如何影響算法的效率。我們將通過實際代碼示例,展示如何選擇和應用閤適的數據結構來解決實際問題。 算法的精妙: 聚焦於常見算法的設計思想,例如排序算法、搜索算法、圖算法等。理解算法的時間復雜度和空間復雜度,是優化程序性能的關鍵。本書將引導讀者思考算法的設計思路,並嘗試自己設計和實現一些簡單的算法。 設計模式的寶庫: 介紹一些常用的軟件設計模式,如單例模式、工廠模式、觀察者模式等。這些模式是前人經驗的總結,能夠幫助開發者構建更靈活、可擴展、易於維護的代碼。我們將分析每個模式的應用場景,以及它解決的核心問題。 第三篇:行為的藝術:代碼的動態與交互 代碼的生命在於其執行時的動態錶現。本篇將著重於分析程序的運行時行為,理解程序如何與外部環境交互,以及在復雜交互中可能産生的各種現象。 並發與同步: 探討多綫程、多進程編程的挑戰,以及如何使用鎖、信號量、消息隊列等機製來保證程序的正確性和穩定性。理解並發場景下的競態條件、死鎖等問題,是構建高性能、高可靠性係統的關鍵。 網絡通信的奧秘: 深入解析TCP/IP協議棧,理解HTTP、FTP、DNS等常見網絡協議的工作原理。我們將學習如何分析網絡數據包,理解客戶端與服務器之間的通信過程,以及網絡編程中的常見陷阱。 狀態的管理: 探索有限狀態機、事件驅動模型等狀態管理技術。理解程序在不同狀態之間的轉換邏輯,以及如何有效地管理程序的狀態,是構建復雜業務邏輯的關鍵。 異常的處理與恢復: 學習如何優雅地處理程序運行時可能齣現的異常,以及如何設計健壯的錯誤處理機製,保證程序在齣錯時能夠盡可能地恢復,或者提供有用的錯誤信息。 第四篇:隱匿的角落:程序分析的利器 理解代碼的結構與行為,離不開強大的分析工具與方法。本篇將介紹各種實用的程序分析技術,幫助讀者深入挖掘程序的內在機製。 靜態分析的洞察: 探索使用靜態分析工具(如Linter、代碼審查工具)來發現潛在的代碼問題、不規範的寫法以及可疑的代碼模式。我們將學習如何閱讀和理解靜態分析報告,並根據報告進行代碼優化。 動態分析的透視: 掌握使用調試器(如GDB、LLDB)進行斷點調試、單步執行、變量查看等技術。我們將學習如何通過動態分析來理解程序的執行流程,定位bug,以及驗證代碼的行為。 性能分析的診斷: 介紹性能分析工具(如Profiler)的使用方法,幫助讀者識彆程序的性能瓶頸,並提供優化建議。我們將學習如何從CPU使用率、內存占用、I/O操作等方麵入手,進行全麵的性能診斷。 逆嚮工程的挑戰: 簡要介紹逆嚮工程的基本概念和常用工具,瞭解如何分析已編譯的可執行文件,理解其工作原理。這部分內容將揭示代碼在被編譯後所呈現的另一麵,為理解復雜係統提供更廣闊的視角。 第五篇:代碼的倫理與未來 在掌握瞭代碼的底層原理與分析方法之後,本書將引導讀者思考代碼所帶來的社會影響與倫理問題。 安全意識的萌芽: 探討軟件安全的基本概念,理解常見的安全威脅,以及良好的編程實踐如何能夠降低安全風險。雖然不深入講解具體的漏洞,但會強調對代碼安全性敏感性的培養。 代碼的演進: 展望未來軟件開發的趨勢,如人工智能輔助編程、低代碼/無代碼平颱的發展,以及它們對傳統代碼開發模式可能帶來的影響。 持續學習的路徑: 為讀者提供繼續深入學習的建議,推薦相關的書籍、社區、資源,鼓勵讀者在實踐中不斷探索與成長。 《代碼煉金術:探索隱藏的數字奧秘》不僅僅是一本書,更是一場關於代碼的探索之旅。它將帶領你撥開迷霧,看見代碼背後隱藏的邏輯、結構與能量。無論你是初學者還是有經驗的開發者,都能從中獲得寶貴的啓發,提升你對軟件世界的認知與駕馭能力,讓你在數字的洪流中,成為那個能洞察本質、駕馭代碼的煉金術士。

用戶評價

評分

坦白說,在拿到《漏洞戰爭:軟件漏洞分析精要》之前,我對軟件漏洞的理解還比較片麵,停留在一些比較基礎的層麵。但這本書徹底顛覆瞭我的認知。它從根本上講解瞭軟件漏洞的産生機製,以及如何進行深層次的分析。我被書中對於二進製漏洞的講解深深吸引,那些關於反匯編、內存模型、以及ROP鏈構建的章節,雖然一開始有些挑戰,但作者循序漸進的講解方式,讓我最終能夠理解並掌握。尤其讓我印象深刻的是,書中還探討瞭如何從攻擊者的視角去思考問題,如何預測和發現可能存在的攻擊麵。這對於我們防禦者來說,是極其寶貴的財富。這本書的價值,遠不止於技術知識的傳遞,它更是一種思維方式的引導,讓我能夠更主動、更全麵地去麵對軟件安全帶來的挑戰。

評分

對於一個在安全領域摸爬滾打多年的老兵來說,《漏洞戰爭:軟件漏洞分析精要》依然帶來瞭巨大的驚喜。這本書的視角非常獨特,它不隻是羅列漏洞,而是深入剖析瞭“為什麼”這些漏洞會存在,以及“如何”去係統性地發現它們。書中關於代碼審計的章節,給我留下瞭深刻的印象。作者分享瞭大量實用的代碼審計技巧,從靜態分析的要點,到動態調試的輔助,都進行瞭詳細的講解。我特彆喜歡書中對於一些復雜漏洞的案例分析,那些看似微不足道的代碼缺陷,在作者的筆下被層層剝開,最終揭示齣驚人的安全隱患。閱讀過程中,我常常會停下來,迴顧自己過去的工作,反思在安全防護上可能存在的疏漏。這本書不僅提升瞭我的技術能力,更重要的是,它讓我對軟件安全這個領域有瞭更深的敬畏之心。

評分

這絕對是今年我讀過的最棒的技術書籍之一!從拿到《漏洞戰爭:軟件漏洞分析精要》的那一刻起,我就被它深深吸引瞭。書中深入淺齣地講解瞭各種復雜的軟件漏洞,從經典的緩衝區溢齣,到更現代的邏輯漏洞和組件供應鏈安全問題,無不涵蓋。作者的敘述方式非常引人入勝,仿佛一位經驗豐富的偵探,一步步地引導讀者去探究漏洞的根源。我特彆喜歡書中關於利用技巧的部分,那些通過精心設計的payload來觸發漏洞並最終獲得控製權的演示,真是讓人拍案叫絕。而且,書中不僅停留在“如何找到漏洞”,更側重於“如何理解漏洞”,幫助我從更宏觀的角度認識軟件安全,以及如何構建更健壯、更安全的軟件。對於任何想要深入瞭解軟件漏洞,提升自己安全防護能力的技術人員來說,這本書都是一份不可多得的寶藏。它改變瞭我對安全漏洞的看法,讓我看到瞭其中的邏輯、藝術和挑戰。

評分

這本書無疑是我近期技術閱讀體驗中的一顆璀璨明珠。《漏洞戰爭:軟件漏洞分析精要》以一種彆開生麵的方式,帶領讀者走進軟件漏洞分析的奇妙世界。我特彆欣賞書中將理論知識與實踐技巧完美結閤的編排方式。例如,在講解到某些高危漏洞時,書中不僅給齣瞭漏洞原理的詳盡闡述,還提供瞭實際的攻擊代碼示例,讓我能夠直觀地感受到漏洞的威力,並從中學習如何去復現和防禦。另外,作者在書中對於防禦策略的探討,也是我非常看重的部分。它並沒有僅僅停留在漏洞的挖掘,而是深入分析瞭如何從代碼層麵、架構層麵去加固係統,從而有效抵禦潛在的攻擊。這種“知己知彼,百戰不殆”的理念貫穿全書,讓我受益匪淺。對於任何希望在軟件安全領域有所建樹的開發者、測試人員、安全工程師來說,這本書都將是他們職業生涯中不可或缺的指導手冊。

評分

翻開《漏洞戰爭:軟件漏洞分析精要》,我仿佛置身於一場高強度的技術博弈之中。書中對各種軟件漏洞的剖析,簡直是教科書級彆的。作者對細節的關注令人驚嘆,無論是內存損壞類的漏洞,還是Web應用中的注入類攻擊,都被講解得淋灕盡緻。我尤其欣賞書中對於不同漏洞類型之間的關聯性分析,以及它們如何組閤起來形成更具破壞性的攻擊鏈。讀到關於fuzzing技術的部分,我更是受益匪淺,書中詳細介紹瞭各種fuzzing框架的使用方法和效率提升技巧,這對於我實際工作中發現潛在的安全隱患非常有幫助。而且,作者在講解過程中,並沒有迴避一些晦澀的技術細節,而是用通俗易懂的語言進行闡釋,這使得我能夠真正理解其中的原理,而不是停留在錶麵的操作。總而言之,這本書為我打開瞭一扇新的大門,讓我對軟件安全有瞭更深刻的認識和更全麵的掌握。

評分

同事湊單買瞭,據說還不錯

評分

這本書真的很不錯,搞活動的時候買的,可以瞭。

評分

收拾收拾收拾收拾收拾收拾收拾收拾收拾收拾三生三世十

評分

哈哈哈哈哈哈哈哈哈

評分

該書籍與網上描述相符,值得一讀。

評分

絕對是一本技術性書籍

評分

我剛購買後,就齣現滿150-50活動,這讓我情何以堪!唉

評分

我為什麼喜歡在京東買東西,因為今天買明天就可以送到。我為什麼每個商品的評價都一樣,因為在京東買的東西太多太多瞭,導緻積纍瞭很多未評價的訂單,所以我統一用段話作為評價內容。京東購物這麼久,有買到很好的産品,也有買到比較坑的産品,如果我用這段話來評價,說明這款産品沒問題,至少85分以上,而比較垃圾的産品,我絕對不會偷懶到復製粘貼評價,我絕對會用心的差評,這樣其他消費者在購買的時候會作為參考,會影響該商品銷量,而商傢也會因此改進商品質量。

評分

還沒開始看,先屯著,應該還可以

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有