當前位置:首頁 » 編程語言 » python逆向工程

python逆向工程

發布時間: 2022-09-04 20:55:11

Ⅰ 逆向工程為什麼會用到python

1.先說: 我對黑客知識,也懂的很少。 充其量之前用過高手寫的工具,折騰過一些小功能,但是不是python寫的。 2.對你說: 基於你的這樣的基礎,勸告你: 如果真的是想對網路安全方面有所研究,那麼首先去學習很多網路方面的基礎知識去。 那些知...

Ⅱ python灰帽子講的什麼

內容簡介

《Python灰帽子》是由知名安全機構Immunity Inc的資深黑帽Justin Seitz主筆撰寫的一本關於編程語言Python如何被廣泛應用於黑客與逆向工程領域的書籍。老牌黑客,同時也是Immunity Inc的創始人兼首席技術執行官(CTO)Dave Aitel為這本書擔任了技術編輯一職。書中絕大部分篇幅著眼於黑客技術領域中的兩大經久不衰的話題:逆向工程與漏洞挖掘,並向讀者呈現了幾乎每個逆向工程師或安全研究人員在日常工作中所面臨的各種場景,其中包括:如何設計與構建自己的調試工具,如何自動化實現煩瑣的逆向分析任務,如何設計與構建自己的fuzzing工具,如何利用fuzzing 測試來找出存在於軟體產品中的安全漏洞,一些小技巧諸如鉤子與注入技術的應用,以及對一些主流Python安全工具如PyDbg、 Immunity Debugger、Sulley、IDAPython、PyEmu等的深入介紹。作者藉助於如今黑客社區中備受青睞的編程語言 Python引領讀者構建出精悍的腳本程序來一一應對上述這些問題。出現在書中的相當一部分Python代碼實例借鑒或直接來源於一些優秀的開源安全項目,諸如Pedram Amini的Paimei,由此讀者可以領略到安全研究者們是如何將黑客藝術與工程技術優雅融合來解決那些棘手問題的。

相關推薦:《Python教程》

作者簡介

Justin Seitz是一名Immunity公司的高級安全研究員,他在以往的工作中花費了大量的時間從事漏洞挖掘、逆向工程、編寫漏洞利用以及編寫Python代碼的研究。

目錄

第1章 搭建開發環境 1

1.1 操作系統要求 1

1.2 獲取和安裝Python 2.5 2

1.2.1 在Windows下安裝Python 2

1.2.2 在Linux下安裝Python 2

1.3 安裝Eclipse和PyDev 4

1.3.1 黑客摯友:ctype庫 5

1.3.2 使用動態鏈接庫 6

1.3.3 構建C數據類型 8

1.3.4 按引用傳參 9

1.3.5 定義結構體和聯合體 9

第2章 調試器原理和設計 12

2.1 通用寄存器 13

2.2 棧 15

2.3 調試事件 17

2.4 斷點 18

2.4.1 軟斷點 18

2.4.2 硬體斷點 20

2.4.3 內存斷點 22

第3章 構建自己的Windows調試器 24

3.1 Debugee,敢問你在何處 24

3.2 獲取寄存器狀態信息 33

3.2.1 線程枚舉 34

3.2.2 功能整合 35

3.3 實現調試事件處理常式 39

3.4 無所不能的斷點 44

3.4.1 軟斷點 44

3.4.2 硬體斷點 49

3.4.3 內存斷點 55

3.5 總結 59

第4章 PyDbg——Windows下的純Python調試器 60

4.1 擴展斷點處理常式 60

4.2 非法內存操作處理常式 63

4.3 進程快照 66

4.3.1 獲取進程快照 67

4.3.2 匯總與整合 70

第5章 Immunity Debugger——兩極世界的最佳選擇 74

5.1 安裝Immunity Debugger 74

5.2 Immunity Debugger 101 75

5.2.1 PyCommand命令 76

5.2.2 PyHooks 76

5.3 Exploit(漏洞利用程序)開發 78

5.3.1 搜尋exploit友好指令 78

5.3.2 「壞」字元過濾 80

5.3.3 繞過Windows 下的DEP機制 82

5.4 破除惡意軟體中的反調試常式 87

5.4.1 IsDebuugerPresent 87

5.4.2 破除進程枚舉常式 88

第6章 鉤子的藝術 90

6.1 使用PyDbg部署軟鉤子 90

6.2 使用Immunity Debugger部署硬鉤子 95

第7章 DLL注入與代碼注入技術 101

7.1 創建遠程線程 101

7.1.1 DLL注入 102

7.1.2 代碼注入 105

7.2 遁入黑暗 108

7.2.1 文件隱藏 109

7.2.2 構建後門 110

7.2.3 使用py2exe編譯Python代碼 114

第8章 Fuzzing 117

8.1 幾種常見的bug類型 118

8.1.1 緩沖區溢出 118

8.1.2 整數溢出 119

8.1.3 格式化串攻擊 121

8.2 文件Fuzzer 122

8.3 後續改進策略 129

8.3.1 代碼覆蓋率 129

8.3.2 自動化靜態分析 130

第9章 Sulley 131

9.1 安裝Sulley 132

9.2 Sulley中的基本數據類型 132

9.2.1 字元串 133

9.2.2 分隔符 133

9.2.3 靜態和隨機數據類型 134

9.2.4 二進制數據 134

9.2.5 整數 134

9.2.6 塊與組 135

9.3 行刺WarFTPD 136

9.3.1 FTP 101 137

9.3.2 創建FTP協議描述框架 138

9.3.3 Sulley會話 139

9.3.4 網路和進程監控 140

9.3.5 Fuzzing測試以及Sulley的Web界面 141

第10章 面向Windows驅動的Fuzzing測試技術 145

10.1 驅動通信基礎 146

10.2 使用Immunity Debugger進行驅動級的Fuzzing測試 147

10.3 Driverlib——面向驅動的靜態分析工具 151

10.3.1 尋找設備名稱 152

10.3.2 尋找IOCTL分派常式 153

10.3.3 搜尋有效的IOCTL控制碼 155

10.4 構建一個驅動Fuzzer 157

第11章 IDAPython——IDA PRO環境下的Python腳本編程 162

11.1 安裝IDAPython 163

11.2 IDAPython函數 164

11.2.1 兩個工具函數 164

11.2.2 段(Segment) 164

11.2.3 函數 165

11.2.4 交叉引用 166

11.2.5 調試器鉤子 166

11.3 腳本實例 167

11.3.1 搜尋危險函數的交叉代碼 168

11.3.2 函數覆蓋檢測 169

11.3.3 檢測棧變數大小 171

第12章 PYEmu——腳本驅動式模擬器 174

12.1 安裝PyEmu 174

12.2 PyEmu概覽 175

12.2.1 PyCPU 175

12.2.2 PyMemory 176

12.2.3 PyEmu 176

12.2.4 指令執行 176

12.2.5 內存修改器與寄存器修改器 177

12.2.6 處理常式(Handler) 177

12.3 IDAPyEmu 182

12.3.1 函數模擬 184

12.3.2 PEPyEmu 187

12.3.3 可執行文件加殼器 188

12.3.4 UPX加殼器 188

12.3.5 利用PEPyEmu脫UPX殼 189

Ⅲ 求《Python灰帽子黑客與逆向工程師的編程之道》全文免費下載百度網盤資源,謝謝~

《Python灰帽子黑客與逆向工程師的Python編程之道》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/1QqjrTzpKBsgFisae1oXZ9w

?pwd=x4sd 提取碼:x4sd
簡介:本書的絕大部分篇幅著眼於黑客技術領域中的兩大經久不衰的話題:逆向工程與漏洞挖掘,並向讀者呈現了幾乎每個逆向工程師或安全研究人員在日常工作中所面臨的各種場景,其中包括:如何設計?構建自己的調試工具,如何自動化實現煩瑣的逆向分析任務,如何設計與構建自己的fuzzing工具,如何利用fuzzing測試來找出存在於軟體產品中的安全漏洞,一些小技巧諸如鉤子與注入技術的應用,以及對一些主流Python安全工具如PyDbg、Immunity Debugger、Sulley、IDAPython、PyEmu等的深入介紹。作者藉助於如今黑客社區中備受青睞的編程語言Python讀者構建出精悍的腳本程序來——應對上述這些問題。出現在本書中的相當一部分Python代碼實例借鑒或直接來源於一些的開源安全項目,諸如Pedram Amini的Paimei,由此讀者可以領略到安全研究者?是如何將黑客藝術與工程技術優雅融合來解決那些棘手問題的。
本書適合熱衷於黑客技術,特別是與逆向工程與漏洞挖掘領域相關的讀者,以及所有對Python編程感興趣的讀者閱讀與參考。


Ⅳ 黑客與逆向工程師的python編程之道怎麼樣

很好,逆向現在也很吃香!

Ⅳ 黑客與逆向工程師的python編程之道 怎麼樣

Python是一款非常流行的腳本編程語言。特別是在黑客圈子裡,你不會Python就幾乎無法與國外的那些大牛們溝通。這一點我在2008年的XCon,以及2009年的idefense高級逆向工程師培訓中感觸頗深。前一次是因為我落伍,幾乎還不怎麼會Python,而後一次……記得當時我、海平和Michael Ligh(他最近出版的Malware Analyst's Cookbook and DVD: Tools and Techniques for Fighting Malicious Code)一書在Amazon上得了7顆五星!)討論一些惡意軟體分析技術時經常會用到Python,從Immunity Debugger的PyCommand、IDA的IDAPython到純用Python編寫的Volatility工具(這是一款內存分析工具,用於發現rootkit之類的惡意軟體)。Python幾乎無處不在!我也嘗試過對Volatility進行了一些改進,在電子工業出版社舉辦的「在線安全」Open Party上海站活動中,我以《利用內存分析的方法快速分析惡意軟體》為題進行了演講。
遺憾的是,之前市面上還沒有一本關於如何利用黑客工具中提供的Python(由於必須使用許多黑客工具中提供的庫函數,所以這時你更像在用一種Python的方言編程)的書籍。故而,在進行相關編程時,我們總是要穿行於各種文檔、資料之中,個中甘苦只自知。
本書的出版滿足了這方面的需求,它會是我手頭常備的一本書,啊不!是兩本,一本備用,另一本因為經常翻看用不了多久就肯定會破爛不堪。
說到這本書的好處也許還不僅於此,它不僅是一本Python黑客編程方面的極佳參考書,同時也是一本軟體調試和漏洞發掘方面很好的入門教材。這本書的作者從調試器的底層工作原理講起,一路帶你領略了Python在調試器、鉤子、代碼注入、fuzzing、反匯編器和模擬器中的應用,涵蓋了軟體調試和漏洞發掘中的各個方面,使你在循序漸進中了解這一研究領域目前最新研究成果的大略。
本書譯者的翻譯也很到位。不客氣地說,不少好書是被糟糕的翻譯耽誤掉的。比如我在讀大學時的一本中文版的參考書,我看了三遍沒明白是怎麼回事,後來想起老師推薦時用的是英文版,於是試著去圖書館借了本英文版,結果看一遍就明白了。不過這本書顯然不屬於此例。譯者丁贇卿本來就是從事這一領域研究的,對原文意思的理解非常到位,中文用詞也十分貼切。特別是這本書的英文版中原本是存在一些錯誤的(包括一些代碼),譯者在中文版中竟然已經一一予以糾正了,從這一點上也可以看出譯者在翻譯過程中的認真細致。
我已經啰啰嗦嗦地講了不少了,你還在等什麼?還不快去賬台付錢?

Ⅵ 黑客與逆向工程師的Python編程之道的簡介

我為了進行黑客技術研究而特地學習了Python這門語言,我敢斷言在這個領域中的眾多其他同行們也是如此。我曾經花費了大量的時間來尋找一種能夠同時適用於黑客技術和逆向工程領域的編程語言,就在幾年前,Python成為了黑客編程領域內顯而易見的王者。而一個不盡人如意的事實是,到目前為止還沒有一本真正意義上的參考手冊,來指導你將Python應用於不同的黑客技術場景中。你往往需要遊走於各大論壇的技術討論帖子中或者各種工具手冊中。有時為了使你的工具能夠正確地運轉起來,花費一番不小的功夫來閱讀和調試源代碼也是司空見慣的情況。而本書正是致力於填補這方面的空缺,將引領你經歷一次「旋風」之旅——你將看到Python這門語言是如何被應用在各式各樣的黑客技術與逆向工程場景中的。
本書將向你揭示隱藏在各種黑客工具背後的原理機制,其中包括:調試器、後門技術、Fuzzer、模擬器以及代碼注入技術,本書將向你一 一演示如何駕馭這些技術工具。除了學到如何使用現有的基於Python的工具之外, 你還將學習如何使用Python構建自己的工具。需要有言在先的一點就是,這並不是一本大全式的參考手冊!有大量使用Python編寫的信息安全類工具未在此書中被提及。本書的信條是授之以漁,而非授之以魚!你應當把從本書中所獲得的技能靈活地應用於其他的場景中,根據自身的需求對你選擇的其他Python工具進行調試,並做出擴展和定製。
閱讀本書的方式不僅限於一種,如果你是個Python新手或者對於構建黑客工具尚感陌生,那麼從前往後依次閱讀對你來說是最好的選擇,你將從最基本的理論開始,並在閱讀本書的過程中編寫相當數量的Python代碼。當你閱讀完本書時,你應當具備了自行解決各種黑客或逆向工程任務的能力。如果你對Python已有一定程度的了解,並且對Ctype庫的使用駕輕就熟,那麼不妨直接跳過第1章。對於那些行業浸沉已久的老手,相信你們可以在本書中來回穿梭自如,歡迎你們在日常工作中隨時按需擷取本書中的代碼片段或者相關章節。
本書在調試器相關的內容上花費了相當的篇幅,從第2章講述調試器的基本原理開始,直至第5章介紹完Immunity Debugger為止。調試器對於任何一個真正的黑客而言都是至關重要的工具,因此我毫不吝惜筆墨來對它們進行廣泛而全面的介紹。在之後的第6章和第7章中你將學到一些鉤子和代碼注入的技術,這些技術同樣可以被調試器工具採用,作為控製程序流和操縱內存的手段。
本書接下來的焦點放在使用Fuzzer工具來攻破應用程序體繫上。在第8章中,你將開始學習基本的Fuzzing技術理論,我們將構建自己的文件Fuzzing工具。第9章將向你演示如何駕馭強大的Fuzzing框架——Sulley來攻破一個現實世界中的FTP daemon程序。在第10章中,你將學習如何構建一個Fuzzer工具來攻擊Windows驅動。
在第11章中,你將看到如何在IDA Pro中(一款流行的二進制靜態分析工具)實現自動化執行靜態分析任務。在第12章中,我們將介紹一款基於Python的模擬器——PyEmu,來為本書畫上句號。
我試著使出現在本書中的代碼盡量簡潔,並在某些特定的地方加上了詳細的注釋以幫助你理解代碼的本質。學習一門新的編程語言或者掌握一套陌生的函數庫的過程少不了你自己的親身實踐,以及不斷的自我糾正。

Ⅶ 《Python灰帽子黑客與逆向工程師的 Python編程之道》txt下載在線閱讀全文,求百度雲資源

《Python灰帽子》([美] Justin Seitz)電子書網盤下載免費在線閱讀

鏈接:

提取碼:p13o

書名:Python灰帽子

作者:[美] Justin Seitz

譯者:丁贇卿 譯

豆瓣評分:7.5

出版社:電子工業出版社

出版年份:2011-3

頁數:216

內容簡介:

《Python灰帽子》是由知名安全機構Immunity Inc的資深黑帽Justin Seitz主筆撰寫的一本關於編程語言Python如何被廣泛應用於黑客與逆向工程領域的書籍。老牌黑客,同時也是Immunity Inc的創始人兼首席技術執行官(CTO)Dave Aitel為這本書擔任了技術編輯一職。書中絕大部分篇幅著眼於黑客技術領域中的兩大經久不衰的話題:逆向工程與漏洞挖掘,並向讀者呈現了幾乎每個逆向工程師或安全研究人員在日常工作中所面臨的各種場景,其中包括:如何設計與構建自己的調試工具,如何自動化實現煩瑣的逆向分析任務,如何設計與構建自己的fuzzing工具,如何利用fuzzing 測試來找出存在於軟體產品中的安全漏洞,一些小技巧諸如鉤子與注入技術的應用,以及對一些主流Python安全工具如PyDbg、 Immunity Debugger、Sulley、IDAPython、PyEmu等的深入介紹。作者藉助於如今黑客社區中備受青睞的編程語言 Python引領讀者構建出精悍的腳本程序來一一應對上述這些問題。出現在書中的相當一部分Python代碼實例借鑒或直接來源於一些優秀的開源安全項目,諸如Pedram Amini的Paimei,由此讀者可以領略到安全研究者們是如何將黑客藝術與工程技術優雅融合來解決那些棘手問題的。

作者簡介:

Justin Seitz是一名Immunity公司的高級安全研究員,他在以往的工作中花費了大量的時間從事漏洞挖掘、逆向工程、編寫漏洞利用以及編寫Python代碼的研究。

Ⅷ 《Python灰帽子黑客與逆向工程師的編程之道》pdf下載在線閱讀全文,求百度網盤雲資源

《Python灰帽子黑客與逆向工程師的Python編程之道》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/1QqjrTzpKBsgFisae1oXZ9w

?pwd=x4sd 提取碼:x4sd
簡介:本書的絕大部分篇幅著眼於黑客技術領域中的兩大經久不衰的話題:逆向工程與漏洞挖掘,並向讀者呈現了幾乎每個逆向工程師或安全研究人員在日常工作中所面臨的各種場景,其中包括:如何設計?構建自己的調試工具,如何自動化實現煩瑣的逆向分析任務,如何設計與構建自己的fuzzing工具,如何利用fuzzing測試來找出存在於軟體產品中的安全漏洞,一些小技巧諸如鉤子與注入技術的應用,以及對一些主流Python安全工具如PyDbg、Immunity Debugger、Sulley、IDAPython、PyEmu等的深入介紹。作者藉助於如今黑客社區中備受青睞的編程語言Python讀者構建出精悍的腳本程序來——應對上述這些問題。出現在本書中的相當一部分Python代碼實例借鑒或直接來源於一些的開源安全項目,諸如Pedram Amini的Paimei,由此讀者可以領略到安全研究者?是如何將黑客藝術與工程技術優雅融合來解決那些棘手問題的。

本書適合熱衷於黑客技術,特別是與逆向工程與漏洞挖掘領域相關的讀者,以及所有對Python編程感興趣的讀者閱讀與參考。

Ⅸ 使用python語言如何保密源代碼以防止逆向工程

大家都很忙,誰有時間看你的的爛代碼!

如果真的怕泄露,別用python.

我以前做過這類事情,而且當時更嚴格,需要打包部署到客戶的服務只在有效期內有效,超過有效期必須更新證書才行。

Python代碼用任何方法都沒法保證保密性,這個時候你可以考慮用一個工具「nuitka」,這個工具會把你的python源代碼映射為c++然後編譯為二進制,因此對方是無論如何得不到你的源代碼的。

代價就是nuitka這個工具並不完美,有一些限制並不能100%完美的轉換所有python代碼。

1.用Cython編譯python成 Windows的pyd文件或Linux的so文件,二進制文件相對安全性較高。

2.用源碼混淆器把代碼搞的又臭又長。。。混淆完了再用Cython編譯為二進制。。。這樣靜態反編譯逆向難度也不小。

3.同其他語言程序一樣,可以對調試狀態進行檢測,當處於調試狀態時退出程序或進入混亂代碼耗費逆向工程人員心神。

4.分享一個跨平台反調試手段,檢測函數運行時間,加斷點會導致函數運行時間變長,也可感知正在被調試。

Python是提倡開源的,既然選擇Python還是擁抱開源才好~ 都開源還擔心逆向工程嘛

沒有不能逆的軟體。

只要匯編語言過關,逆向工程都是可以實現的,不要有其它想法。

你唯一可以做的,就是不讓別人用python讀取源代碼而已。那樣實現起來比較簡單。

python 適合開發伺服器程序,或者自己科研使用的程序,如果是 作為用戶程序,安裝到 pc 或手機上,還是 其它 c++ 或java 比較合適

1)可以把需要保護的部分用c語言實現,從而編譯成so等文件,這樣逆向的成本會比較高,可以防止直接打開python文件看到代碼邏輯。

2)so文件通過ida等工具也是可以反匯編的,可以通過對c語言進行代碼混淆,花指令等操作,提高通過ida等反匯編工具的分析難度。

3)不存在絕對無法逆向的技術手段,因此只能是看具體需求,選擇具體的防逆向的技術手段。

有工具類似py2exe轉成可執行程序,隱藏全部源代碼,雖然bytecode還是可以反編譯,但是難度大多了

1. 最穩的就是你改cpython載入代碼的過程,改zip包讀取最穩。

2. 藉助一些加密工具在編譯pyc之前進行一定的混淆,可以防君子,自我安慰一下。

商用一般都是用第一種辦法,小打小鬧用第二種。

可以考慮使用pymod工具,使用pymod pack 將模塊加密打包,發布的時候一個模塊就一個文件。

先睹為快,看看一個項目發布的時候,只有幾個文件,

main.py 項目程序入口

setting.py 項目配置

apps 項目模塊

plusins 項目插件目錄

創建項目 pymod create demo1

cd demo1

創建模塊 pymod add mod1

啟動pycharm 開始編寫功能模塊

一個模塊默認由三個文件組成

__init__.py 、 handlers.py 、param_schemas.py

業務邏輯主要在handlers.py中編寫

__init__.py

from pymod.blueprint import Blueprint api = Blueprint("/mod1") from .handlers import *

param_schemas.py

schema_sfz = { "type": "object", "required": ["sfz", "nl"], "properties": { "sfz": { "type": "string", "minLength": 18, "maxLength": 18, "description": "身份證明號碼" }, "nl": { "type": "integer", "minimum": 0, "maximum": 150, "description": "年齡" } } }

handlers.py

from . import api from pymod.ext import RequestHandler, params_validate,TrueResponse,FalseResponse from .param_schemas import schema_sfz from pymod.plugins import sfz_check @api.add_route('/hello') class Hello(RequestHandler): def get(self): self.write('Hello World') @params_validate(schema_sfz) def post(self): sfz = self.get_json_arg("sfz") nl =self.get_json_arg("nl") # self.write(TrueResponse(sfz=sfz, nl=nl)) if sfz_check.check_sfzmhm(sfz): self.write(TrueResponse(hint="身份證明號碼驗證通過")) else: self.write(FalseResponse(hint="身份證明號碼驗證失敗"))

三、項目部署

程序調試 修改setting.py

# 開發模式下 運行的模塊名稱必須填寫

moles = ["mod1"] moles_config ={ "mod1": { "deny_ip": "", "allow_ip": "*" } }

啟動程序 python main.py

調試沒有問題,進入發布模式

在項目目錄下

pymod pack mod1

在target目錄下生成mod1.mod文件,將其復制到apps目錄中

修改setting.py

# 開發模式下 運行的模塊名稱必須填寫

moles = []

再次運行 python main.py 測試

一切OK,系統就可以發布了。

說不能保密的,是沒有研究過python的機制的。我做個一個項目,所有源代碼自定義加密,運行時解密。

Ⅹ Python灰帽子:黑客與逆向工程師的Python編程之道的前 言

「搞定了嗎?」,這可能是在Immunity公司出現頻率最高的一句話了。你也許會在類似以下的場景中聽到這樣的發問:「我正要給Immunity Debugger開發一個新的ELF載入器」,片刻停頓之後,「搞定了嗎?」或者,「我剛發現了IE瀏覽器的一個Bug!」又一片刻的沉寂之後,「那個漏洞利用程序搞定了嗎?」在日常的安全項目中我們幾乎無時無刻地須要創建或者改寫自己的安全工具,並在這些頻繁的活動中始終保持高速的開發節奏,這使得Python逐漸成為了這個舞台上的明星。你可以在下一個安全項目中選擇Python作為自己的開發工具,也許你將會用它來創建一個特殊的反編譯器或者開發一個完整的調試器。
當我走進位於南邁阿密海灘的Ace Hardware(美國的一家連鎖五金店),沿著擺放著螺絲刀的通道走過時,常常會感到目眩。你會看到接近50多種不同規格的螺絲刀以整齊的順序陳列在貨架上。每一種規格的螺絲刀都與緊鄰的螺絲刀有著微小卻又十分重要的區別。我不是一個合格的修理能手,因此無法准確地說出每一種螺絲刀最為理想的使用場合,但是我很確信類似的情況同樣適用於我們的安全工具軟體。尤其是當你在對Web類型或者其他類型的高度定製化的應用程序進行安全審計時,你會發現每一次的審計任務都會需要一把特殊的「螺絲刀」來解決問題。要知道能夠及時地拼湊出一些類似SQL API函數鉤子之類的安全小工具已經不止一次地拯救了Immunity的工作團隊。當然這些工具並不僅僅適用於安全審計任務,一旦你能夠使用鉤子函數對SQL API進行攔截,你就可以輕易地編寫出一個工具用於實時檢測可疑的異常SQL查詢,並及時向你的客戶公司提供修復方案,以抵禦那些來自頑固黑客們的攻擊。
眾所周知,要讓你的每一個安全研究人員真正成為團隊的一部分是一件棘手的事情。很多安全研究人員無論在面對何種類型的問題時,都懷揣著白手起家式的過度熱情,企圖將需要藉助的工具庫完全重寫。比如說Immunity發現了某個SSL Daemon的一個安全漏洞,接下來很有可能發生的一件事就是,你突然發現你的某個安全研究人員居然正在試圖從頭開始編寫一個SSL客戶端。而他們對此通常給出的解釋是「我能找到的SSL庫都醜陋不堪」。
你需要盡力避免這種情況發生。事實情況並不是現有的SSL庫醜陋不堪——它只是沒有按照某個安全研究人員的特別偏好風格來設計而已。而我們真正需要做的是能夠深入分析大量的現有代碼,快速地發現問題所在,並對其進行修改以適應自身所需,這才是及時地搭建出一個可用的SSL庫,並用其開發出一個尚處於保鮮期內的漏洞利用程序的關鍵。而要做到這一點,你需要使你的安全研究員們能夠像一個真正的團隊一樣去工作。一個熟練掌握了Python的安全研究人員就有了一個強大的武器,也許就像那些掌握了Ruby的安全研究人員一樣。然而Python真正的與眾不同之處顯現在那些Python狂熱分子們協同工作時,他們將猶如一個高速運轉的超個體①一樣戰鬥力驚人。正如你家廚房中的螞蟻大軍一樣,當它們的數量足夠組成一隻大烏賊時,要殺死它們將比殺死一隻烏賊棘手得多。而這正是本書極力告訴你的一個事實。
你也許已經為自己想做的事找到了一些工具。你也許會問:「我已經有了一套Visual Studio,裡面附帶了一個調試器,為什麼還要去編寫一個供自己專用的調試器。」或者「WinDbg不是有一個插件介面了嗎?」答案是肯定的。WinDbg的確提供了插件介面,你可以通過那些API慢慢地拼湊出一些有用的東西。直到某一天你很可能又會說:「Heck,如果我能和5000個WinDbg使用者互聯該有多好啊,這樣我們就可以互通各自的調試結果了」。如果你從一開始就選擇了Python,你只要寫 100 行左右的代碼就可以構建一個XML-RPC客戶端與服務端,接下來整個團隊可以同步地進行工作並使每個人及時地享有他人的成果和信息。
黑客絕不等同於逆向工程——你的目標並不是還原出整個應用程序的源碼。你的目標是對軟體系統獲得比系統開發者自身更加深入的理解。一旦你能做到這一點,無論目標以何種形式出現,你將最終成功地滲透它,獲得炙手可熱的漏洞利用(exploit)。這也意味著你需要成為可視化、遠程同步、圖論、線性方程求解、靜態分析技術以及其他很多方面的專家。因此,Immunity決定將這些都標准化實現在Python平台上,這樣一旦我們編寫了一個圖論演算法,這個演算法將在我們所有的工具中通用。
在第6章中,Justin向你演示了如何使用一個鉤子竊取Firefox瀏覽器中輸入的用戶名與密碼。這正是一個惡意軟體作者所做的事——從之前的一些相關報道中可以看出,惡意軟體作者通常使用一些更為高級語言來編寫此類程序。然而你同樣可以使用Python在15分鍾內編寫出一個樣常式序,用於向你的開發人員演示,讓他們明白他們對自己的產品所做的安全假設並不成立。現在的一些軟體公司出於他們所聲稱的安全考慮,在保護軟體內部數據方面的投資花費不菲。而實際上他們所做的往往只是實現了一些版權保護和數字版權管理機制而已。
這正是本書試圖教你的東西:快速創建安全工具的能力。你應當能夠藉助這種能力為你個人或者整個團隊帶來成功。而這也是安全工具開發的未來:快速實現、快速修改,以及快速互聯。我想,最後你唯一剩下的問題也許就是:「搞定了嗎?」
Immunity Ine的創始人兼CTO Dave Aitel
2009年2月於美國佛羅里達州,邁阿密海灘
致 謝
我想藉此機會感謝我的家人,對於他們在撰寫本書過程中所表現出來的理解和支持。感謝我的四個可愛的孩子:Emily、Carter、Cohen和Brady,是你們給了爸爸完成此書的理由,我為擁有你們而感到無比幸福。我還要為我的姐姐和兄弟們在這個過程中所給予的鼓勵說一聲謝謝,你們自己都曾經歷過著書立作的嚴苛和艱辛,擁有你們這些對技術作品出版感同身受的人真是受益匪淺——我愛你們。我還想對我的爸爸說,你的幽默感幫助我度過了那些難以執筆為繼的日子——我愛你,老爸,不要停止讓你周圍的人發出笑聲。
多虧了一路上眾多優秀的安全研究人員的幫助才使得本書得以羽翼漸豐,他們是:Jared DeMott、Pedram Amini、Cody Pierce、Thomas Heller(傳說中的無敵Python男)以及Charlie Miller——我欠你們大夥一個大大的感謝。至於Immunity團隊,毫無疑問,你們一直以來大度地支持著我來撰寫此書,正是得益於你們的幫助,我不僅僅成長為一個Python小子,同時更成為了一名真正的開發人員和安全技術研究者。Nico和Dami,抽出了額外的時間來幫助我解決問題,對此表示不勝感激。Dave Aitel,我的技術編輯,始終驅使著本書的進度直至完成,並確保本書的邏輯性與可讀性,在此致以莫大的感謝。對於另一個Dave, Dave Falloon,非常感謝你為我校閱此書,對於那些讓我自己都哭笑不得的錯誤,對於你在CanSecWest大會上拯救了本人的筆記本電腦的英雄行徑,以及你巫師一般神奇的網路知識,都令我印象深刻。
最後,是那些總是被放在最後感謝的傢伙們——No Starch出版團隊。Tyler與我經歷了本書的整個出版過程(相信我,Tyler將是你遇到的最有耐心的傢伙),Bill將鼓勵聲連同那個可愛的印有Perl小抄的咖啡杯贈予了我。Megan在本書創作的尾聲階段為我減輕了眾多的麻煩,還有其他為出版本書而工作在幕後的團隊成員——謝謝你們!。我對你們為我所做的每一件事充滿感激。現在這篇致謝詞的篇幅快要跟格萊美的獲獎感言有一拼了,最後再次說一聲感謝給所有那些幫助過我,卻可能被我忘記提及的朋友們——你們清楚自己之於本書的意義。
Justin Seitz

熱點內容
谷歌視頻緩存怎麼提取 發布:2025-01-15 08:07:47 瀏覽:77
php多條件篩選 發布:2025-01-15 08:07:39 瀏覽:928
百度提問怎麼上傳圖片 發布:2025-01-15 08:07:33 瀏覽:838
yy圖片文件夾 發布:2025-01-15 08:01:00 瀏覽:841
可緩存影視 發布:2025-01-15 07:42:50 瀏覽:799
php函數默認值 發布:2025-01-15 07:34:31 瀏覽:238
編譯應用後apk無法打開 發布:2025-01-15 07:33:45 瀏覽:438
lc腳本編輯器 發布:2025-01-15 07:18:59 瀏覽:529
追劇腳本 發布:2025-01-15 07:00:39 瀏覽:446
c語言字元串庫函數 發布:2025-01-15 06:54:49 瀏覽:526