本書介紹竊取傳遞檔案功能的設計,以及偷取密碼的鍵盤記錄功能。整個木馬以Python寫成,適合已學習並對Python具有最基本寫作能力的讀者。
除了傳遞檔案、鍵盤記錄功能外,本書最為特別的地方在於靈活運用Python語法的巧思,例如:運用類別即物件的特性,依類別改變程式流程;巧用dict讓Python具有類似C語言的switch。另外,駭客製作木馬時,為了躲避除錯器的追踪,發展出運用exception來改變程式的走向的技巧。本書將這種運用exception的手法以Python實作出來呈現給大家,讓大家對於駭客的思路和程式設計的技巧有更多的認識。
本書適合已學習 Python 語法的朋友,如果你覺得雖然學會了Python的語法,要寫程式時仍常常抓不到頭緒,可以看看本書是如何從無到有設計出一整套系統,將提供你一個良好的範例參考。
目錄
前言
導讀
Chapter01 網路連線-Socket
1.1 簡單介紹 socket
1.2 Python 的 socket 模組-socket
1.2.1 不保證傳輸-UDP
1.2.2 保證傳輸正確-TCP
1.3 TCP 函式
1.3.1 開啟-socket()
1.3.2 綁定埠號-bind()
1.3.3 等待連線-listen()
1.3.4 接受連線-accept()
1.3.5 傳輸資料-recv() 和 send()
1.3.6 關閉連線-close()
1.3.7 客戶端連線-connect()
Chapter02 最小的連線程式
2.1 伺服器端
2.2 客戶端
2.3 讓伺服器持續服務
Chapter03 傳送檔案
3.1 將 str 變成 bytes
3.2 最短的檔案傳輸程式
3.3 雙方同時進入等待
3.4 加上傳送檔名的問題
3.5 檔案大小的傳遞-數字的傳遞
3.5.1 整數 int 和 bytes 之間的轉換
3.5.2 位元序的問題-大端(big-endian)和小端(little-endian)
3.6 不定長度資料的傳送問題
Chapter04 協定的設計和實作
4.1 什麼是協定
4.2 基本資料標籤的設計
4.3 傳送數值的程式
4.4 超大數值
4.5 傳送不定長度資料(字串)實作
Chapter05 檔案訊息標籤
5.1 基本的檔案標籤
5.2 回傳狀態標籤
5.3 溝通的函式
5.4 輸出入包成物件
5.5 檔案標籤前面是否加基本標籤?
5.6 檔案資料存取包成物件
5.7 伺服器端存檔的檔名
5.8 大型檔案
Chapter06 例外處理
6.1 例外的狀況
6.2 try ... except 例外處理的利用
6.3 INOUT 的修改
6.3.1 Exception 的基本知識
6.3.2 INOUT 的修改
6.3.3 NetAPI 的修改
6.4 檔案傳遞的速度
Chapter07 掃描目錄
7.1 遞迴掃描目錄
7.2 掃瞄的起始目錄
Chapter08 多客戶端連線-執行緒
Chapter09 檔案更新自動上傳
9.1 判斷檔案修改
9.2 判斷值(檔案大小及修改時間)存檔-JSON
9.3 JSON 的函式
Chapter10 鍵盤記錄
10.1 鍵盤記錄的種類
10.2 Python 的鍵盤記錄
10.2.1 Virtual-Key Code
10.2.2 GetAsyncKeyState()
10.3 建立對照表
10.3.1 定義編碼名稱
10.3.2 定義編碼對照的字元
10.3.3 win32api
Chapter11 合併
11.1 傳送目錄函式
11.2 鍵盤記錄及傳送記錄
11.3 三個執行緒
Chapter12 其他話題補充
12.1 Banner
12.2 還有更多
12.2.1 選擇性上傳
12.2.2 斷點續傳
12.2.3 IP 以外的連絡方式
12.2.4 只是個開始
Appendix A 本書所有程式碼
Appendix B 下載 Python
Appendix C 安裝 Python
Appendix D 安裝執行檔轉換程式
Appendix E 找出本機的 IP 位址
Appendix F 修改程式中的 IP 位址
Appendix G 製作執行檔
Appendix H 關閉防火牆
Appendix I 設定虛擬機
Appendix J 操作木馬
導讀
Chapter01 網路連線-Socket
1.1 簡單介紹 socket
1.2 Python 的 socket 模組-socket
1.2.1 不保證傳輸-UDP
1.2.2 保證傳輸正確-TCP
1.3 TCP 函式
1.3.1 開啟-socket()
1.3.2 綁定埠號-bind()
1.3.3 等待連線-listen()
1.3.4 接受連線-accept()
1.3.5 傳輸資料-recv() 和 send()
1.3.6 關閉連線-close()
1.3.7 客戶端連線-connect()
Chapter02 最小的連線程式
2.1 伺服器端
2.2 客戶端
2.3 讓伺服器持續服務
Chapter03 傳送檔案
3.1 將 str 變成 bytes
3.2 最短的檔案傳輸程式
3.3 雙方同時進入等待
3.4 加上傳送檔名的問題
3.5 檔案大小的傳遞-數字的傳遞
3.5.1 整數 int 和 bytes 之間的轉換
3.5.2 位元序的問題-大端(big-endian)和小端(little-endian)
3.6 不定長度資料的傳送問題
Chapter04 協定的設計和實作
4.1 什麼是協定
4.2 基本資料標籤的設計
4.3 傳送數值的程式
4.4 超大數值
4.5 傳送不定長度資料(字串)實作
Chapter05 檔案訊息標籤
5.1 基本的檔案標籤
5.2 回傳狀態標籤
5.3 溝通的函式
5.4 輸出入包成物件
5.5 檔案標籤前面是否加基本標籤?
5.6 檔案資料存取包成物件
5.7 伺服器端存檔的檔名
5.8 大型檔案
Chapter06 例外處理
6.1 例外的狀況
6.2 try ... except 例外處理的利用
6.3 INOUT 的修改
6.3.1 Exception 的基本知識
6.3.2 INOUT 的修改
6.3.3 NetAPI 的修改
6.4 檔案傳遞的速度
Chapter07 掃描目錄
7.1 遞迴掃描目錄
7.2 掃瞄的起始目錄
Chapter08 多客戶端連線-執行緒
Chapter09 檔案更新自動上傳
9.1 判斷檔案修改
9.2 判斷值(檔案大小及修改時間)存檔-JSON
9.3 JSON 的函式
Chapter10 鍵盤記錄
10.1 鍵盤記錄的種類
10.2 Python 的鍵盤記錄
10.2.1 Virtual-Key Code
10.2.2 GetAsyncKeyState()
10.3 建立對照表
10.3.1 定義編碼名稱
10.3.2 定義編碼對照的字元
10.3.3 win32api
Chapter11 合併
11.1 傳送目錄函式
11.2 鍵盤記錄及傳送記錄
11.3 三個執行緒
Chapter12 其他話題補充
12.1 Banner
12.2 還有更多
12.2.1 選擇性上傳
12.2.2 斷點續傳
12.2.3 IP 以外的連絡方式
12.2.4 只是個開始
Appendix A 本書所有程式碼
Appendix B 下載 Python
Appendix C 安裝 Python
Appendix D 安裝執行檔轉換程式
Appendix E 找出本機的 IP 位址
Appendix F 修改程式中的 IP 位址
Appendix G 製作執行檔
Appendix H 關閉防火牆
Appendix I 設定虛擬機
Appendix J 操作木馬
網路書店
類別
折扣
價格
-
新書78折$406
-
新書79折$411
-
新書79折$411
-
新書79折$411
-
新書85折$442
-
新書88折$458
-
新書9折$468