# 序
曾經我花了很長的時間,尋找一門適合 hacking 和逆向工程的語言。幾年前,終于讓我 發現了 Python,而如今它已經成為了黑客編程的首選。不過對于 Python 的在 hacking 應用 方面一直缺少一本詳實的手冊。當我們用到問題的時候,不得不花很多時間和精力去閱讀論 壇或者用戶手冊,然后讓我們的代碼運行起來。這本書的目標就是提供給各位一本強大的 Python Hack 手冊,讓大家在 hacking 和逆向工程中更加得心應手。
在閱讀此書之前,假設大家已經對各種黑客工具,技術(調試器,后門,fuzzer,仿真器, 代碼注入)都有一個理論上的認識。我們的目的是不僅僅會使用各種基于 Python 編寫的工具, 還要能夠自定和編寫自己的工具。一本書是不可能介紹完所有的的工具和技術的,但我們是 對一些常用的技術,進行詳細的解說,而這些技術都是一通百通的,在以后的安全開發中, 大家只要靈活應用就行了。
這是本手冊類的書籍,所以閱讀的時候不一定從頭到尾。如果你是一個 Python 新手, 建議把全書都閱覽一遍,因為你會學到很多必要的 hack 原理和編程技巧,便于以后的完成 各種復雜的任務。如果你已經對 Python 很熟悉,并且對 ctypes 庫也很了解了,那就可以跳 過第二章。當然,你也可以只是當當看其中感興趣的一章,每章的代碼都做了詳實的解釋。
我花了很多事件講解調試器,因為調試器就似乎 hacker 的手術刀:從第二章調試原理, 第五章 Immunity 的應用和擴展,到第六章和第七章的 hooking 以及注入技術的介紹(用于內 存的控制和處理)。
本書的第二部分就是對 fuzzers 的介紹。第八章會講解基礎的 fuzzer 原理,并且構建一 個簡單的 file fuzzer。第九章,介紹強大的 Sulley fuzzing 框架,并且使用它 fuzz 一個真正 的 FTP 服務器。第十章,學習構建一個 Windows 驅動 fuzzer。
第十一章,介紹 IDA(最常用的靜態反匯編工具)的 Python 擴展。十二章,詳細講解 PyEmu,一個基于 Python 的仿真器。
本書的所有代碼都盡量保持簡短,在關鍵的地方都做了詳細的解說。學習一門新的語言 或一個新的庫,都需要花費事件和精力。所以建議各位自己手寫代碼。所有的源碼可以在 [http://www.nostarch.com/ghpython.htm](http://www.nostarch.com/ghpython.htm) 找到。
Now let’s get coding!
陸陸續續花了兩個月時間,終于初步完成了 gray python 的翻譯。對自己的英文和技術 的提高是最讓我欣慰的。還有還有很多需要改進的地方,不過苦于時間不許,遂無法進一步 完成。
將此書獻給我的家人,尤其是我的母親,是她的堅韌和聰慧,讓我的人生變得不同。我 的伙伴們---自由之光的所有隊員(眉宇間,codeblue,小龍,。。。),以及曾經教育和指引過我 的老師,還有那些默默奉獻分享自己技術的 hacker 們。
歲月如梭,那些在學生時代的激情歲月,那些永遠不知疲倦的夜晚,無數的汗水和青春 已經消逝在歲月的長河里。只有對技術和極限的自由追求,不曾變過。
為自由和理想而戰----天國之翼[自由之光]
個人簡介:
網名:天國之翼[自由之光] , winger
年齡:20-30
編程語言:asm,c,python
就讀過的學校:集美大學
專業:網絡系統管理
工作:自由安全工作者,secoder(security coder)
網址:hi.baidu.com/freewinge
聯系方式:free.winger at gmail.com
愛好:搏擊,修禪,音樂,電影
最愛吃的東西:老爹的手搟面
自由之光----一個追求技術自由和個人極限的安全團隊。起源于集美大學。
- 序
- 1 搭建開發環境
- 1.1 操作系統準備
- 1.2 獲取和安裝 Python2.5
- 1.3 配置 Eclipse 和 PyDev
- 2 調試器設計
- 2.1 通用 CPU 寄存器
- 2.2 棧
- 2.3 調試事件
- 2.4 斷點
- 3 自己動手寫一個 windows 調試器
- 3.2 獲得 CPU 寄存器狀態
- 3.3 實現調試事件處理
- 3.4 全能的斷點
- 4 PyDBG---純 PYTHON 調試器
- 4.1 擴展斷點處理
- 4.2 處理訪問違例
- 4.3 進程快照
- 5 IMMUNITY----最好的調試器
- 5.1 安裝 Immunity 調試器
- 5.2 Immunity Debugger 101
- 5.3 Exploit 開發
- 5.4 搞定反調試機制
- 6 HOOKING
- 6.1 用 PyDbg 實現 Soft Hooking
- 6.2 Hard Hooking
- 7 Dll 和代碼注入
- 7.1 創建遠線程
- 7.2 邪惡的代碼
- 8 FUZZING
- 8.1 Bug 的分類
- 8.2 File Fuzzer
- 8.3 改進你的 Fuzzer
- 9 SULLEY
- 9.1 安裝 Sulley
- 9.2 Sulley primitives
- 9.3 獵殺 WarFTPD
- 10 Fuzzing Windows 驅動
- 10.1 驅動通信
- 10.2 用 Immunity fuzzing 驅動
- 10.4 構建 Driver Fuzzer
- 11 IDAPYTHON --- IDA 腳本
- 11.1 安裝 IDAPython
- 11.2 IDAPython 函數
- 11.3 腳本例子
- 12 PyEmu
- 12.1 安裝 PyEmu
- 12.2 PyEmu 一覽
- 12.3 IDAPyEmu