//cs-a.ecimg.tw/items/DJAA2VA900F2R97/000001_1653308364.jpg;
商品編號:DJAA2V-A900F2R97

Windows駭客程式設計:勒索病毒(第二冊)原理篇(第二版)

驚喜優惠
$466
$590
  • P幣

    全盈+PAY單筆消費滿1200回饋80P幣(每帳號限乙次,限量5000名)

  • 登記送

    【7-11】單筆滿$350純取貨/取貨付款訂單登記送韓風拌拌炸雞兌換券乙張(限量)

  • 登記送

    【第四波】書店/閱讀器/寵物指定品單筆滿$1,500登記送100P幣(使用效期30/限量)

付款方式
出貨
  • PChome 倉庫出貨,24小時到貨
配送
宅配滿$490免運,超取滿$350免運
  • 宅配到府(本島/低溫)
    滿$699免運
  • 宅配到府(本島/常溫)
    滿$490免運
  • 超商取貨(常溫)
    滿$350免運
  • 超商取貨(低溫)
    滿$699免運
  • i郵箱(常溫)
    滿$290免運
商品詳情
作者:
ISBN:
9786263331112
出版社:
出版日期:
2022/05/31
  • 內文簡介

  • <內容簡介>

    👉感謝讀者支持,作者修訂精簡第二版嘉惠更多朋友!

    要寫出一個勒索病毒,需要多強的程式功力?相信大家的心裡已浮現出技術高強的駭客身影。
    然而,當這個模擬勒索程式完成後,撇開永恆之藍等漏洞的使用,我們赫然發現,裡面所使用的程式知識,卻沒有想像中非常地高深,或是遙不可及。
    基本的記憶體管理、目錄和檔案處理、較為進階的加密知識、基礎資料結構,行程與執行緒、同步問題、網路通訊,還有Windows圖型介面,其中還包括文字字型、Edit、RichEdit、ComboBox、ListBox、ProgressBar等元件使用,資源的使用,計時器、剪貼簿等運用……幾乎是學習Windows程式所有需要的基本知識,都涵括在內了。
    換句話說,只要您將這兩冊勒索病毒程式設計讀完,就可以將大部分Windows程式設計中需要學習的知識全都學習到位。
    最特別的是,我們在最後製作了模擬漏洞及針對這個模擬漏洞的蠕蟲,讓大家了解蠕蟲的工作原理,同時也體驗一下蠕蟲快速傳播的可怕威力,對蠕蟲這一支惡意程式有更深入的體驗和了解。
    這個勒索程式是個相當完整的專案,非常適合學習,不像一般Windows程式設計,每部份最多只有短短的範例,本書的每個單位的每個範例,最終可以組合成一個大型而完整的勒索程式。希望大家別錯過了這麼完整又龐大又全面的專案學習,只此一本,就可以讓你的功力大增,千萬不要錯過。


    ★目錄:

    第一章 本冊程式修正與檔案存取
    1.1 增加 config.h
    1.2 改變金鑰變數的存取方式
    1.3 改變全域變數 gbDecryptFlag 的存取方式
    1.4 增加金鑰檔案的存取函式 - WanaFile
    1.4.1 獲取特殊目錄絕對路徑的API - SHGetFolderPath
    1.4.2 金鑰檔的定義
    1.4.3 RES 檔
    1.4.4 取得「我的勒索文件」絕對路徑 - WanaDirName
    1.4.5 建立「我的勒索文件」- CreateWanaDir
    1.4.6 取得「我的勒索文件」裡的檔案的完整路徑 - WanaFileName
    1.4.7 讀取「我的勒索文件」裡的檔案內容 - ReadWanaFile
    1.4.8 寫入「我的勒索文件」裡的檔案 - WriteWanaFile
    1.4.9 讀取 RES 檔
    1.4.10 定義存取巨集
    1.4.11 銷毀解密金鑰 - WanaDestroyKey

    第二章 多工篇
    2.1 程序 - Process
    2.1.1 程序是載入記憶體的執行檔
    2.1.2 父程序產生子程序的 API - CreateProcess
    2.1.3 子程序結束的 API - ExitProcess
    2.1.4 子程序離開的方式比較 - ExitProcess vs. exit
    2.1.5 父程序等待單一子程序的 API - WaitForSingleObject
    2.1.6 範例程式 - LaunchIE
    2.2 執行緒 - Thread
    2.2.1 多工的基礎
    2.2.2 產生執行緒的 API - CreateThread
    2.2.3 離開執行緒的 API - ExitThread
    2.2.4 離開執行緒的比較 - ExitThread vs return
    2.2.5 勒索程式裡的執行緒
    2.3 執行緒同步問題
    2.3.1 「同時」共用「相同資源」而產生的問題
    2.3.2 解決同步問題的機制
    2.3.3 臨界區域 - Critical Section
    2.3.4 互斥鎖 - Mutex
    2.3.5 號誌 - Semaphore
    2.3.6 事件 - Event
    2.3.7 綜合範例程式 - DecQueue
    2.4 勒索程式加密器製作
    2.4.1 以互斥鎖確保只有一個勒索程式執行
    2.4.2 定時檢查解密金鑰是否解密
    2.4.3 定時更新 00000000.res
    2.4.4 實行全系統加密
    2.4.5 監視隨身碟隨時加密

    第三章 網路篇
    3.1 Socket 簡介
    3.1.1 勒索病毒與網路
    3.1.2 通訊協定 TCP/IP 的誕生
    3.1.3 日常生活的比喻
    3.2 Socket API
    3.2.1 Winsock2 引入檔
    3.2.2 註冊動態連結函式庫的 API - WSAStartup
    3.2.3 網路位址及通訊埠轉換的 API - getaddrinfo
    3.2.4 釋放 addrinfo 結構的 API - freeaddrinfo
    3.2.5 開啟 socket 的 API - socket
    3.2.6 設定 socket 選項的 API - setsockopt
    3.2.7 綁定通訊埠的 API - bind
    3.2.8 設定等候連線的 queue 的 API - listen
    3.2.9 客戶端連線的 API - connect
    3.2.10 伺服器端接受連線的 API - accept
    3.2.11 傳送訊息的 API - send
    3.2.12 接收訊息的 API - recv
    3.2.13 斷開通訊的 API - shutdown
    3.2.14 關閉 socket 的 API - closesocket
    3.2.15 最後清理 Winsock DLL 的 API - WSACleanup
    3.3 Socket 範例程式
    3.3.1 客戶端程式
    3.3.2 伺服器端程式
    3.4 Socket 傳輸的注意事項
    3.4.1 SendAll - 完整傳送訊息
    3.4.2 RecvAll - 完整接收訊息
    3.5 勒索程式解密伺服器製作
    3.5.1 由回音伺服器修改而來的主程式
    3.5.2 讀取客戶端傳來的已加密私鑰
    3.5.3 準備解密器並匯入解密金鑰
    3.5.4 將私鑰解密
    3.5.5 已解密的私鑰傳送回客戶端
    3.5.6 與客戶端中斷連線
    3.6 勒索程式解密客戶端 - 快速伺服器連線秘技
    3.6.1 伺服器 IP
    3.6.2 問題的根源 - 逾時時間太久
    3.6.3 製作快速連線的函式 - CreateSocket
    3.6.4 改變 socket 輸出入模式的 API - ioctlsocket
    3.6.5 檢測一個或多個 socket 狀態的 API - select
    3.6.6 實作 CreateSocket
    3.6.7 取得當前電腦的IP - GetLocalIP
    3.6.8 將私鑰解密的客戶端 - DecryptClient
    3.6.9 私鑰解密的執行緒 - DecryptClientThread

    第四章 視窗篇
    4.1 圖形使用者介面
    4.2 控制元件與訊息
    4.2.1 輸出文字的 API - DrawText
    4.2.2 產生字型的 API - CreateFont
    4.2.3 產生控制元件的 API - CreateWindow
    4.2.4 傳送訊息的 API - SendMessage
    4.2.5 以 CreateWindowEx 產生元件範例
    4.3 資源
    4.3.1 資源的建立
    4.3.2 勒索程式的桌面圖片
    4.3.3 資源的取得
    4.3.4 取出資源 - RetrieveResource
    4.3.5 配置記憶體取出資源 - AllocResource
    4.3.6 根據資源 ID 設定桌面 - SetWanaDesktop
    4.3.7 將勒索程式的 Q&A 放進資源

    第五章 視窗篇 - 主對話框
    5.1 勒索程式主對話框
    5.1.1 勒索程式的對話框
    5.1.2 產生對話框的 API - DialogBox
    5.2 產生及設定字型
    5.2.1 簡易字型巨集 - DefaultFont
    5.2.2 在對話框宣告字型
    5.2.3 給元件設定字型 - WM_SETFONT 訊息
    5.2.4 由 HWND 取得 Resource ID 的API - GetDlgItem
    5.2.5 刪除物件的 API - DeleteObject
    5.3 漸層進度條
    5.3.1 裝置內容 - Device Context 介紹
    5.3.2 取得預設物件的 API - GetStockObject
    5.3.3 選擇物件的 API - SelectObject
    5.3.4 產生畫筆的 API - CreatePen
    5.3.5 產生筆刷的 API - CreateSolidBrush
    5.3.6 畫出漸層條 - DrawProgressBar
    5.3.7 設定計時器的 API - SetTimer
    5.3.8 取消計時器的 API - KillTimer
    5.3.9 接收計時器訊息 - WM_TIMER 訊息
    5.3.10 設定計時器更新進度條
    5.3.11 靜態元件更新 - WM_CTLCOLORSTATIC 訊息
    5.4 文字及背景顏色設定
    5.4.1 對話框背景顏色設定
    5.4.2 元件的文字背景顏色設定
    5.5 顯示期限日期及倒數時間
    5.5.1 取得時間的 API - time
    5.5.2 轉換當地時間的 API - localtime_s
    5.5.3 輸出日期時間到文字元件 - SetDateTime
    5.5.4 輸出倒數時間到文字元件 - SetTimeLeft
    5.6 啟動瀏覽器
    5.7 Check Payment 及 Decrypt 按鈕
    5.8 Copy 鈕與剪貼簿
    5.8.1 配置 heap 記憶體的 API - GlobalAlloc
    5.8.2 鎖定記憶體的 API - GlobalLock
    5.8.3 解除鎖定記憶體的 API - GlobalUnlock
    5.8.4 開啟剪貼簿的 API - OpenClipboard
    5.8.5 清空剪貼簿的 API - EmptyClipboard
    5.8.6 設置剪貼簿內容的 API - SetClipboardData
    5.8.7 關閉剪貼簿的 API - CloseClipboard
    5.8.8 勒索程式裡的 Copy 鈕
    5.9 編輯框顯示 Bitcoin 帳戶
    5.10 顯示 Q&A - RichEdit 及 ComboBox
    5.10.1 由 RichEdit 顯示文件
    5.10.2 設定 ComboBox 選項

    第六章 視窗篇 - Check Payment 對話框
    6.1 Check Payment 對話框
    6.2 進度顯示 - Progress Bar
    6.2.1 透過 SendMessage 設定進度條相關參數
    6.2.2 用進度條顯示 DecryptClient 進度
    6.3 取消鈕 - EndDialog

    第七章 視窗篇 - Decrypt 對話框
    7.1 Decrypt 對話框
    7.2 設定文字及背景顏色
    7.3 解密目錄選擇 - ComboBox
    7.3.1 定義選項
    7.3.2 取得既定目錄路徑的 API - SHGetKnownFolderPath
    7.4 列出解密檔案 - ListBox
    7.4.1 由DECQUEUE 取得解密檔名
    7.4.2 將解密檔名傳到 ListBox - LB_ADDSTRING 訊息
    7.4.3 選擇項目 - LB_SETCURSEL 訊息
    7.5 檔名複製 - ListBox and Clipboard
    7.5.1 取得 ListBox 項目長度 - LB_GETTEXTLEN 訊息
    7.5.2 取得 ListBox 項目 - LB_GETTEXT 訊息
    7.5.3 取得 ListBox 項目並設定剪貼簿

    第八章 蠕蟲篇
    8.1 模擬漏洞
    8.1.1 有漏洞才有蠕蟲
    8.1.2 蠕蟲的行為
    8.1.3 WannaCry 入侵簡述(選讀)
    8.1.4 模擬後門
    8.2 模擬蠕蟲

    附錄 A Visual Studio 專案
    A.1 選擇右邊的「建立新的專案」
    A.2 選擇「Windows 傳統型應用程式」
    A.3 填上你的專案名稱,然後按下「建立」鈕
    A.4 產生基本架構程式

    附錄 B Windows 傳統應用程式基礎架構
    B.1 主程式(程式進入點)- wWinMain
    B.2 註冊視窗類別 - MyRegisterClass
    B.3 產生視窗及初始化 - InitInstance
    B.4 處理訊息的 Call Back 函式 - WndProc
    B.5 對話框範例 - About

    附錄 C 以資源編輯器來編輯對話框
    C.1 在方案編管找到資源檔
    C.2 滑鼠右鍵選擇加入
    C.3 選擇「Dialog」
    C.4 出現空白對話框
    C.5 調整對話框大小
    C.6 左側工具箱選擇元件
    C.7 選擇元件放到對話框上
    C.8 調整元件位置和大小
    C.9 元件的位置和大小

    附錄 D 主對話框元件參數
    D.1 主對話框視窗參數
    D.2 主對話框文字元件參數
    D.3 勒索程式 Q&A 訊息 - RichEdit
    D.4 主對話框按鈕元件參數
    D.5 主對話框編輯框元件參數
    D.6 主對話框圖片元件參數
    D.7 主對話框勒索 Q&A 語系選擇
    D.8 主對話框 Group Box 元件參數
    D.9 漸層進度條

    附錄 E Check Payment 對話框元件參數
    E.1 Check Payment 對話框參數
    E.2 Cancel 按鈕元件參數
    E.3 進度條元件參數
    E.4 文字元件參數

    附錄 F Decrypt 對話框元件參數
    F.1 Decrypt 對話框視窗參數
    F.2 ComboBox 元件參數
    F.3 按鈕元件參數
    F.4 文字元件參數
    F.5 ListBox 元件參數

    附錄 G 模擬勒索程式建置測試流程
    G.1 駭客電腦和受害者電腦的準備
    G.2 建置專案產生各執行檔
    G.3 受害電腦的準備工作
    G.4 勒索程式開始攻擊
    G.5 進行解密


    <作者簡介>

    北極星
    一群浪人,愛好資訊安全與駭客技術。

    書籍勘誤、與作者交流,請加入通往駭客之路粉絲團:

    https://www.facebook.com/groups/TaiwanHacker/

    北極星作者群信箱:
    polaris20160401@gmail.com
購物須知
寄送時間
全台灣24h到貨,遲到提供100元現金積點。全年無休,週末假日照常出貨。例外說明
送貨方式
透過宅配送達。除網頁另有特別標示外,均為常溫配送。
消費者訂購之商品若經配送兩次無法送達,再經本公司以電話與Email均無法聯繫逾三天者,本公司將取消該筆訂單,並且全額退款。
送貨範圍
限台灣本島與離島地區註,部分離島地區包括連江馬祖、綠島、蘭嶼、琉球鄉…等貨件,將送至到岸船公司碼頭,需請收貨人自行至碼頭取貨。注意!收件地址請勿為郵政信箱。
註:離島地區不配送安裝商品、手機門號商品、超大材商品及四機商品。
售後服務
缺掉頁更換新品
執照證號&登錄字號
本公司食品業者登錄字號A-116606102-00000-0
關於退貨
  • PChome24h購物的消費者,都可以依照消費者保護法的規定,享有商品貨到次日起七天猶豫期的權益。(請留意猶豫期非試用期!!)您所退回的商品必須回復原狀(復原至商品到貨時的原始狀態並且保持完整包裝,包括商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性)。商品一經拆封/啟用保固,將使商品價值減損,您理解本公司將依法收取回復原狀必要之費用(若無法復原,費用將以商品價值損失計算),請先確認商品正確、外觀可接受再行使用,以免影響您的權利,祝您購物順心。
  • 如果您所購買商品是下列特殊商品,請留意下述退貨注意事項:
    1. 易於腐敗之商品、保存期限較短之商品、客製化商品、報紙、期刊、雜誌,依據消費者保護法之規定,於收受商品後將無法享有七天猶豫期之權益且不得辦理退貨。
    2. 影音商品、電腦軟體或個人衛生用品等一經拆封即無法回復原狀的商品,在您還不確定是否要辦理退貨以前,請勿拆封,一經拆封則依消費者保護法之規定,無法享有七天猶豫期之權益且不得辦理退貨。
    3. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,一經您事先同意後始提供者,依消費者保護法之規定,您將無法享有七天猶豫期之權益且不得辦理退貨。
    4. 組合商品於辦理退貨時,應將組合銷售商品一同退貨,若有遺失、毀損或缺件,PChome將可能要求您依照損毀程度負擔回復原狀必要之費用。
  • 若您需辦理退貨,請利用顧客中心「查訂單」或「退訂/退款查詢」的「退訂/退貨」功能填寫申請,我們將於接獲申請之次日起1個工作天內檢視您的退貨要求,檢視完畢後將以E-mail回覆通知您,並將委託本公司指定之宅配公司,在5個工作天內透過電話與您連絡前往取回退貨商品。請您保持電話暢通,並備妥原商品及所有包裝及附件,以便於交付予本公司指定之宅配公司取回(宅配公司僅負責收件,退貨商品仍由特約廠商進行驗收),宅配公司取件後會提供簽收單據給您,請注意留存。
  • 退回商品時,請以本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋),原封包裝後交付給前來取件的宅配公司;如果本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋)已經遺失,請您在商品原廠外盒之外,再以其他適當的包裝盒進行包裝,切勿任由宅配單直接粘貼在商品原廠外盒上或書寫文字。
  • 若因您要求退貨或換貨、或因本公司無法接受您全部或部分之訂單、或因契約解除或失其效力,而需為您辦理退款事宜時,您同意本公司得代您處理發票或折讓單等相關法令所要求之單據,以利本公司為您辦理退款。
  • 本公司收到您所提出的申請後,若經確認無誤,將依消費者保護法之相關規定,返還您已支付之對價(含信用卡交易),退款日當天會再發送E-mail通知函給您。