|
-- 會員 / 註冊 --
|
|
|
|
Windows駭客程式設計:勒索病毒加密篇 ( 繁體 字) |
作者:北極星 | 類別:1. -> 安全 -> 網路安全 -> 駭客攻擊與入侵 |
譯者: |
出版社:博碩文化 | 3dWoo書號: 52172 詢問書籍請說出此書號!【缺書】 NT定價: 620 元 折扣價: 465 元
|
出版日:12/1/2019 |
頁數:480 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 繁體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9789864344512 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:揭開隱藏在視窗底下的封鎖危機若想要了解駭客,研究電腦病毒是一個不錯的方式。病毒的設計,充滿了駭客天馬行空的想像及創意。尤其是歷史悠久的病毒,那更是經過好幾代不斷地精心修改,簡直可以說是千錘百鍊的藝術品。這麼多病毒,為何選擇勒索病毒?其實,是它的鮮紅色的畫面吸引了我的注意。勒索病毒至今已有30年歷史,到目前仍困擾許多人們,其獨特之處值得作為研究的對象。本書將逐步重現勒索病毒的全貌,其中駭客的思路和創意,相信會帶給讀者相當大的啟發,並希望透過閱讀之後都能獲得滿滿的收獲。製作出一隻勒索病毒,需要多少知識?翻開這本書,你想知道的答案都在裡面。 |
目錄:第○章 本書大綱 0.1 本書的章節內容 0.2 Windows API 的函式名問題 0.3 星星 0.4 善用虛擬機
Part I 熱身篇
第一章 熱身一下 1.1 Visual Studio 的 hexdump 1.2 主控臺應用程式 1.3 Hexdump 1.4 ASCII 1.5 Debug 模式 1.6 巨集定義 1.7 顯示記憶體 - hexdump.cpp 1.8 運用 ASCII 的小程式(選讀) 1.9 微軟的變數命令
Part II 基礎篇
第二章 記憶體管理 2.1 記憶體 2.1.1 堆積(Heap) 2.1.2 堆疊(Stack) 2.2 記憶體配置 2.2.1 記憶體配置函式 - HeapAlloc 2.2.2 釋放記憶體 - HeapFree 2.3 常用的記憶體函式 2.3.1 複製記憶體內容 - CopyMemory 2.3.2 填滿記憶體 - FillMemory 2.3.3 將記憶體清為0 - ZeroMemory
第三章 基本目錄處理 3.1 目錄處理API 3.1.1 複製檔案 - CopyFile 3.1.2 刪除檔案 - DeleteFile 3.1.3 移動檔案 - MoveFile 3.1.4 取得檔案屬性 - GetFileAttributes 3.1.5 設定檔案屬性 - SetFileAttributes 3.2 目錄掃瞄 3.2.1 開始掃瞄目錄 - FindFirstFile 3.2.2 掃瞄目錄 - FindNextFile 3.2.3 目錄掃瞄結束 - FindClose 3.3 磁碟機 3.3.1 取得邏輯磁碟機資訊 - GetLogicalDrives 3.3.2 取得磁碟機型態 - GetDriveType 3.4 全系統掃瞄範例
第四章 基本檔案處理 4.1 檔案開啟創建與關閉 4.1.1 開啟檔案 - CreateFile 4.1.2 舊版開啟檔案- OpenFile(參考,此函式不建議使用) 4.1.3 關閉檔案 - CloseHandle 4.2 讀寫檔案內容 4.2.1 讀取檔案 - ReadFile 4.2.2 寫入檔案 - WriteFile 4.3 檔案相關資訊 4.3.1 取得檔案時間 - GetFileTime 4.3.2 設定檔案時間 - SetFileTime 4.3.3 讀取、設定檔案時間的範例 4.4 檔案讀寫位置 4.4.1 改變讀寫檔案的位置 - SetFilePointer 4.4.2 進階改變讀寫檔案位置 - SetFilePointerEx 4.4.3 取得檔案讀取位置 - GetFilePointerEx 4.5 綜合練習 - ezfile.cpp 4.5.1 直接由檔案讀取到記憶體 - ReadBuffer 4.5.2 直接將記憶體寫進檔案 - WriteBuffer 4.5.3 如何知道讀寫了什麼 4.5.4 將檔案徹底刪除 4.5.5 更新檔案屬性 4.5.6 假刪除檔案及假回復檔案
Part III 密碼篇
第五章 邏輯運算與加密 5.1 邏輯運算 5.2 二值邏輯 5.3 基本邏輯運算子 5.3.1 AND 運算 5.3.2 OR 運算 5.3.3 NOT 運算 5.3.4 AND 與 OR 無法用於加密 5.4 XOR 邏輯運算子 5.4.1 XOR 運算 5.4.2 XOR 的特性 5.5 三值邏輯(純閒聊,可跳過)
第六章 RC4 加密演算法 6.1 XOR 簡易加密法 6.1.1 XOR 加密法簡述 6.1.2 XOR 加密範例程式 6.2 RC4 加密演算法 6.2.1 RC4 介紹 6.2.2 串流加密與區塊加密 6.2.3 RC4 與加殼 6.2.4 RC4 加密流程說明 6.3 C/C++ 範例程式 6.3.1 S-Box 初始化第一階段 6.3.2 S-Box 初始化第二階段 6.3.3 正式加密 6.3.4 實行加密和解密
第七章 BCrypt 函式庫 7.1 Microsoft 密碼函式庫 7.1.0 實作RC4 加密類別需要用到的 BCrypt 函式 7.1.1 開啟演算法提供者 - BCryptOpenAlgorithmProvider 7.1.2 產生對稱式金鑰 - BCryptGenerateSymmetricKey 7.1.3 加密 - BCryptEncrypt 7.1.4 解密 - BCryptDecrypt 7.1.5 銷毀金鑰 - BCryptDestroyKey 7.1.6 關閉演算法提供者 - BCryptCloseAlgorithmProvider 7.2 BCrypt 版的RC4 7.3 RC4 加密類別實作 - EZRC4.cpp 7.3.1 定義與宣告 - EZRC4.h 7.3.2 建構子 - EZRC4::EZRC4 7.3.3 解構子 - EZRC4::~EZRC4 7.3.4 產生金鑰 - EZRC4::GenKey 7.3.5 加密 - EZRC4::Encrypt 7.3.6 解密 - EZRC4::Decrypt
第八章 AES 對稱式加密演算法 8.1 區塊加密法 8.2 區塊加密法的模式 8.2.1 ECB - 電子密碼本模式 8.2.2 CBC - 密碼區塊連結模式 8.2.3 PCBC - 明文密碼塊連結 8.2.4 CFB - 密文回饋模式 8.2.5 OFB - 輸出回饋模式 8.2.6 CTR - 計數器模式 8.3 AES 加密演算法用到的 BCrypt 函式 8.3.1 開啟演算法提供者 - BCryptOpenAlgorithmProvider 8.3.2 取得內部參數 - BCryptGetProperty 8.3.3 產生對稱式金鑰 - BCryptGenerateSymmetricKey 8.3.4 加密 - BCryptEncrypt 8.3.5 解密 - BCryptDecrypt 8.3.6 銷毀金鑰 - BCryptDestroyKey 8.3.7 關閉演算法提供者 - BCryptCloseAlgorithmProvider 8.4 AES 加密法類別 - EZAES.cpp 8.4.1 定義與宣告 - EZAES.h 8.4.2 建構子 - EZAES::EZAES 8.4.3 解構子 - EZAES::~EZAES 8.4.4 產生金鑰 - EZAES::GenKey 8.4.5 記憶體加密 - EZAES::Encrypt 8.4.6 記憶體解密 - EZAES::Decrypt
第九章 加密基礎之數學篇 9.1 密碼保護資料,誰來保護密碼? 9.2 非對稱式加密法 9.2.1 RSA 密碼演算法 9.2.2 公鑰和私鑰 9.3 公開金鑰密碼的原理 9.3.1 餘數運算 9.3.2 指數運算 9.4 演算法的數學理論 9.5 簡化的演算步驟 9.6 實際計算示範 9.6.1 計算金鑰 9.6.2 實測金鑰
第十章 RSA 加密演算法 10.1 RSA 加密法運用的 BCrypt 函式 10.1.1 開啟演算法提供者 - BCryptOpenAlgorithmProvider 10.1.2 生非對稱式金鑰 - BCryptGenerateKeyPair 10.1.3 生非對稱式金鑰結束 - BCryptFinalizeKeyPair 10.1.4 加密 - BCryptEncrypt 10.1.5 解密 - BCryptDecrypt 10.1.6 銷毀金鑰 - BCryptDestroyKey 10.1.7 關閉演算法提供者 - BCryptCloseAlgorithmProvider 10.1.8 金鑰的匯出與匯入 10.1.9 將金鑰匯出 - BCryptExportKey 10.1.10 將非對稱式金鑰匯入 - BCryptImportKeyPair 10.2 RSA 加密法類別 - EZRSA.cpp 10.2.1 定義與宣告 - EZRSA.h 10.2.2 建構子 - EZRSA::EZRSA 10.2.3 解構子 - EZRSA::~EZRSA 10.2.4 產生金鑰 - EZRSA::GenKey 10.2.5 從記憶體匯入金鑰 - EZRSA::Import 10.2.6 從檔案匯入金鑰 - EZRSA::Import 10.2.7 將金鑰匯出至記憶體 - EZRSA::Export 10.2.8 將金鑰匯出至檔案 - EZRSA::Export 10.2.9 記憶體加密 - EZRSA::Encrypt 10.2.10 記憶體解密 - EZRSA::Decrypt 10.2.11 比對公鑰和私鑰 - ::RSAKeyMatch
第十一章 混合式加密 11.1 加密法的優先點 11.1.1 對稱式密碼的優缺點 11.1.2 非對稱式密碼的優缺點 11.2 混合式加密法類別 - EZHybrid.cpp 11.2.1 加密檔格式 11.2.2 定義與宣告 - EZHybrid.h 11.2.3 亂數產生 - ::GenRandom 11.2.4 建構子 - EZHybrid::EZHybrid 11.2.5 解構子 - EZHybrid::~EZHybrid 11.2.6 產生RSA 金鑰 - EZHybrid::GenKey 11.2.7 從記憶體匯入公鑰 - EZHybrid::ImportPublicKey 11.2.8 從記憶體匯入私鑰 - EZHybrid::ImportPrivateKey 11.2.9 從檔案匯入公鑰 - EZHybrid::ImportPublicKey 11.2.10 從檔案匯入私鑰 - EZHybrid::ImportPrivateKey 11.2.11 混合式密碼的加密 - EZHybrid::Encrypt 11.2.12 混合式密碼的解密 - EZHybrid::Decrypt
Part IV 加密篇
第十二章 掃描與檔案加密策略 12.1 時間就是金錢,駭客最懂 12.2 目錄過濾 12.3 檔案型態的分類 12.4 檔案大小分級 12.5 檔案型態與大小綜合評判 12.5.1 來回四趟處理 12.5.2 檔案型態與大小決定先後 12.6 大型檔案的預處理 12.6.1 預處理 12.6.2 預處理加密 12.7 鏈結串列介紹 12.7.1 鏈結串列(Linked List) 12.7.2 單向鏈結串列(Singly Linked List) 12.7.3 環狀單向鏈結串列(Circular Singly Linked List) 12.7.4 雙向鏈結串列(Doubly Linked List) 12.7.5 環狀雙向鏈結串列(Circular Doubly Linked List) 12.8 檔案資訊 - FileInfo.cpp 12.8.1 定義與宣告 - FileInfo.h 12.8.2 FileNode - 鏈結串列節點 12.8.3 FileList - 檔案資訊鏈結串列 12.8.4 建構子 - FileList::FileList 12.8.5 解構子 - FileList::~FileList 12.8.6 增加新資料到鏈結串列 - FileList::Insert 12.8.7 忽略不處理的目錄 - ::isIgnorePath 12.8.8 檔案型態分類 - ::ClassifyFileType
第十三章 混合式加密- 改 13.1 簡單的動作卻如此致命 13.2 加密檔格式 13.3 勒索程式的混合式加密 - WanaZip.cpp 13.3.1 定義與宣告 - WanaZip.h 13.3.2 WanaZip -混合式加密- 改的類別 13.3.3 亂數產生器 - ::GenRandom 13.3.4 建構子 - WanaZip::WanaZip 13.3.5 解構子 - WanaZip::~WanaZip 13.3.6 從記憶體匯入公鑰 - WanaZip::ImportPublicKey 13.3.7 從記憶體匯入私鑰 - WanaZip::ImportPrivateKey 13.3.8 從檔案匯入公鑰 - WanaZip::ImportPublicKey 13.3.9 從檔案匯入私鑰 - WanaZip::ImportPrivateKey 13.3.10 加密與預處理 - WanaZip::Encrypt 13.3.11 解密 - WanaZip::Decrypt
第十四章 勒索程式加密流程 14.1 勒索程式加密類別 - WanaEncryptor.cpp 14.1.1 定義與宣告 - WanaCryptor.h 14.1.2 建構子 - WanaCryptor::WanaCryptor 14.1.3 解構子 - WanaCryptor::~WanaCryptor 14.1.4 準備WANNATRY 目錄 - WanaCryptor::Init 14.1.5 準備RSA 金鑰 - WanaCryptor::SetupRSA 14.1.6 匯入混合式加密公鑰 - WanaCryptor::InitWanaZip 14.1.7 決定檔案處理動作 - WanaCryptor::SelectEncryptAction 14.1.8 執行檔案處理動作 - WanaCryptor::EncryptDispatch 14.1.9 目錄掃瞄與第一趟加密 - WanaCryptor::EncryptTraverse 14.1.10 檔案列表與第二到四趟加密 - WanaCryptor::EncryptFileList 14.1.11 檔案與目錄加密 - WanaCryptor::Encrypt 14.1.12 使用者資料加密 - WanaCryptor::EncryptUsers 14.1.13 磁碟機加密 - WanaCryptor::EncryptDrivers 14.1.14 全系統掃瞄加密 - WanaCryptor::EncryptAll 14.1.15 比對公鑰檔與私鑰檔 - ::CheckDKYFileValid
第十五章 系統解密 15.1 系統解密類別 - WanaDecryptor.cpp 15.1.1 定義與宣告 - WanaDecryptor.h 15.1.2 建構子 - WanaDecryptor::WanaDecryptor 15.1.3 解構子 - WanaDecryptor::~WanaDecryptor 15.1.4 檢查 WANNATRY 目錄- WanaDecryptor::Init 15.1.5 配置解密引擎 - WanaDecryptor::InitWanaZip 15.1.6 掃瞄目錄 - WanaDecryptor::DecryptTraverse 15.1.7 檔案與目錄解密 - WanaDecryptor::Decrypt 15.1.8 全系統掃瞄解密 - WanaDecryptor::DecryptAll
Part V 中途篇
第十六章 中場休息 16.1 將 00000000.eky 解密 16.2 主程式 16.3 將整個目錄或檔案加密 16.4 將整個目錄或檔案解密 16.5 比較金鑰配對 16.6 測試一下 16.6.1 測試 Encrypt 選項 16.6.2 測試 DecryptEKY 選項 16.6.3 測試 Decrypt 選項 16.6.4 測試 CheckKeyPair 選項 16.7 預告 |
序: |
|