57991| 328
|
加密與解密第四版 隨書光盤及源碼 |
加密與解密第四版 隨書光盤及源碼
前 言 軟件安全是信息安全領域的重要內容,涉及軟件的逆向分析、加密、解密、漏洞分析、安全編程及病毒分析等。隨著互聯網應用的普及和企業(yè)信息化程度的不斷提升,社會和企業(yè)對安全技術人才的需求逐年增加,國內高校對信息安全學科也越來越重視,但在計算機病毒查殺、網絡安全、個人信息安全等方面的人才缺口仍然很大。習近平總書記指出“網絡空間的競爭,歸根結底是人才競爭”。著重發(fā)現、培養(yǎng)、輸送信息安全專業(yè)人才,已經成為各國信息安全戰(zhàn)略的重要組成部分。從就業(yè)的角度來看,掌握信息安全相關知識和技能,從業(yè)者不但可以提高自身的職場競爭力,而且有機會發(fā)揮更大的個人潛力、獲得滿意的薪酬;從個人成長方面來說,研究信息安全技術有助于掌握許多系統底層知識,是提升職業(yè)技能的重要途徑。作為一名合格的程序員,除了掌握需求分析、設計模式等,如果能掌握一些系統底層知識,熟悉整個系統的底層結構,必將獲益良多。本書以軟件逆向為切入點,講述了軟件安全領域相關的基礎知識和技能。讀者在閱讀本書的內容后,很容易就能在逆向分析、漏洞分析、安全編程、病毒分析等領域進行擴展。這些知識點的相互關聯,將促使讀者開闊思路,使所學融會貫通,領悟更多的學習方法,提升自身的學習能力。 [attach]1798[/attach] [attach]1799[/attach] 《加密與解密》從第1版到今天的第4版,能夠一直陪伴讀者,完全基于廣大讀者的熱情和鼓舞,在此深表謝意。 目 錄 基礎篇 第1章 基礎知識2 1.1 什么是加密與解密2 1.1.1 軟件的加密與解密2 1.1.2 軟件逆向工程2 1.1.3 逆向分析技術3 1.2 文本字符4 1.2.1 ASCII與Unicode字符集4 1.2.2 字節(jié)存儲順序6 1.3 Windows操作系統6 1.3.1 Win32 API函數6 1.3.2 WOW649 1.3.3 Windows消息機制9 1.3.4 虛擬內存10 調試篇 第2章 動態(tài)分析技術14 2.1 OllyDbg調試器14 2.1.1 OllyDbg的界面14 2.1.2 OllyDbg的配置15 2.1.3 基本操作16 2.1.4 常用斷點27 2.1.5 插件35 2.1.6 Run trace36 2.1.7 Hit trace37 2.1.8 調試符號37 2.1.9 加載程序39 2.1.10 OllyDbg的常見問題40 2.2 x64dbg調試器42 2.3 MDebug調試器44 2.3.1 MDebug的界面44 2.3.2 表達式45 2.3.3 調試45 2.3.4 斷點46 2.3.5 MDebug的其他功能47 2.4 WinDbg調試器47 2.4.1 WinDbg的安裝與配置47 2.4.2 調試過程51 2.4.3 斷點命令51 2.4.4 棧窗口53 2.4.5 內存命令55 2.4.6 腳本56 2.4.7 調試功能擴展58 2.4.8 小結59 第3章 靜態(tài)分析技術60 3.1 文件類型分析60 3.2 反匯編引擎61 3.2.1 OllyDbg的ODDisasm61 3.2.2 BeaEngine61 3.2.3 Udis8661 3.2.4 Capstone62 3.2.5 AsmJit63 3.2.6 Keystone64 3.2.7 小結64 3.3 靜態(tài)反匯編65 3.3.1 IDA Pro簡介65 3.3.2 IDA的配置66 3.3.3 IDA主窗口界面68 3.3.4 交叉參考69 3.3.5 參考重命名70 3.3.6 標簽的用法71 3.3.7 格式化指令操作數71 3.3.8 函數的操作72 3.3.9 代碼和數據轉換72 3.3.10 字符串73 3.3.11 數組74 3.3.12 結構體75 3.3.13 枚舉類型79 3.3.14 變量80 3.3.15 FLIRT81 3.3.16 IDC腳本82 3.3.17 插件86 3.3.18 IDA調試器87 3.3.19 遠程調試90 3.3.20 其他功能93 3.3.21 小結94 3.4 十六進制工具94 3.5 靜態(tài)分析技術應用實例97 3.5.1 解密初步97 3.5.2 逆向工程初步99 解密篇 第4章 逆向分析技術102 4.1 32位軟件逆向技術102 4.1.1 啟動函數102 4.1.2 函數103 4.1.3 數據結構111 4.1.4 虛函數115 4.1.5 控制語句117 4.1.6 循環(huán)語句124 4.1.7 數學運算符125 4.1.8 文本字符串128 4.1.9 指令修改技巧130 4.2 64位軟件逆向技術131 4.2.1 寄存器131 4.2.2 函數132 4.2.3 數據結構142 4.2.4 控制語句145 4.2.5 循環(huán)語句154 4.2.6 數學運算符158 4.2.7 虛函數169 4.2.8 小結193 第5章 演示版保護技術194 5.1 序列號保護方式194 5.1.1 序列號保護機制194 5.1.2 如何攻擊序列號保護機制195 5.1.3 字符串比較形式197 5.1.4 制作注冊機198 5.2 警告窗口203 5.3 時間限制205 5.3.1 計時器205 5.3.2 時間限制205 5.3.3 拆解時間限制保護206 5.4 菜單功能限制207 5.4.1 相關函數207 5.4.2 拆解菜單限制保護208 5.5 KeyFile保護208 5.5.1 相關API函數208 5.5.2 拆解KeyFile保護209 5.6 網絡驗證213 5.6.1 相關函數214 5.6.2 破解網絡驗證的一般思路214 5.7 光盤檢測219 5.7.1 相關函數219 5.7.2 拆解光盤保護220 5.8 只運行1個實例221 5.8.1 實現方法221 5.8.2 實例222 5.9 常用斷點設置技巧222 第6章 加密算法223 6.1 單向散列算法223 6.1.1 MD5算法223 6.1.2 SHA算法227 6.1.3 SM3密碼雜湊算法231 6.1.4 小結231 6.2 對稱加密算法231 6.2.1 RC4流密碼231 6.2.2 TEA算法233 6.2.3 IDEA算法236 6.2.4 BlowFish算法243 6.2.5 AES算法246 6.2.6 SM4分組密碼算法259 6.2.7 小結259 6.3 公開密鑰加密算法259 6.3.1 RSA算法260 6.3.2 ElGamal公鑰算法264 6.3.3 DSA數字簽名算法270 6.3.4 橢圓曲線密碼編碼學272 6.3.5 SM2算法279 6.4 其他算法279 6.4.1 CRC32算法279 6.4.2 Base64編碼280 6.5 常見的加密庫接口及其識別281 6.5.1 Miracl大數運算庫281 6.5.2 FGInt283 6.5.3 其他加密算法庫介紹284 6.6 加密算法在軟件保護中的應用285 系統篇 第7章 Windows內核基礎290 7.1 內核理論基礎290 7.1.1 權限級別290 7.1.2 內存空間布局291 7.1.3 Windows與內核啟動過程292 7.1.4 Windows R3與R0通信294 7.1.5 內核函數296 7.1.6 內核驅動模塊297 7.2 內核重要數據結構298 7.2.1 內核對象298 7.2.2 SSDT表300 7.2.3 TEB302 7.2.4 PEB304 7.3 內核調試基礎306 7.3.1 WinDbg搭建雙機調試環(huán)境306 7.3.2 加載內核驅動并設置符號表308 7.3.3 SSDT與ShadowSSDT表的查看311 第8章 Windows下的異常處理313 8.1 異常處理的基本概念313 8.1.1 異常列表313 8.1.2 異常處理的基本過程314 8.2 SEH的概念及基本知識319 8.2.1 SEH的相關數據結構319 8.2.2 SEH處理程序的安裝和卸載320 8.2.3 SEH實例跟蹤321 8.3 SEH異常處理程序原理及設計325 8.3.1 異常分發(fā)的詳細過程325 8.3.2 線程異常處理330 8.3.3 異常處理的棧展開336 8.3.4 MSC編譯器對線程異常處理的增強342 8.3.5 頂層異常處理349 8.3.6 異常處理程序的安全性357 8.4 向量化異常處理361 8.4.1 向量化異常處理的使用361 8.4.2 VEH與SEH的異同362 8.4.3 向量化異常處理的新內容363 8.5 x64平臺上的異常處理363 8.5.1 原生x64程序的異常分發(fā)364 8.5.2 WOW64下的異常分發(fā)366 8.6 異常處理程序設計中的注意事項367 8.7 異常處理的實際應用368 8.7.1 使用SEH對用戶輸入進行驗證368 8.7.2 SEH在加密與解密中的應用369 8.7.3 用VEH實現API Hook371 8.8 小結371 第9章 Win32調試API372 9.1 調試相關函數簡要說明372 9.2 調試事件375 9.3 創(chuàng)建并跟蹤進程377 9.4 調試循環(huán)體378 9.5 處理調試事件379 9.6 線程環(huán)境380 9.7 在進程中注入代碼382 第10章 VT技術384 10.1 硬件虛擬化的基本概念384 10.1.1 概述384 10.1.2 相關結構和匯編指令385 10.1.3 EPT機制388 10.2 VT技術應用389 10.2.1 編譯運行ShadowWalker389 10.2.2 分析Hypervisor390 10.2.3 檢測VT支持情況392 10.2.4 VMCS的配置393 10.2.5 EPT的配置396 10.2.6 開啟VT399 10.2.7 內存隱藏的實現399 10.3 VT技術的調試方法401 第11章 PE文件格式404 11.1 PE的基本概念405 11.1.1 基地址405 11.1.2 虛擬地址406 11.1.3 相對虛擬地址406 11.1.4 文件偏移地址407 11.2 MS-DOS頭部407 11.3 PE文件頭408 11.3.1 Signature字段408 11.3.2 IMAGE_FILE_HEADER結構409 11.3.3 IMAGE_OPTIONAL_HEADER結構410 11.4 區(qū)塊415 11.4.1 區(qū)塊表415 11.4.2 各種區(qū)塊的描述417 11.4.3 區(qū)塊的對齊值419 11.4.4 文件偏移與虛擬地址轉換420 11.5 輸入表421 11.5.1 輸入函數的調用421 11.5.2 輸入表結構422 11.5.3 輸入地址表424 11.5.4 輸入表實例分析425 11.6 綁定輸入428 11.7 輸出表429 11.7.1 輸出表結構430 11.7.2 輸出表結構實例分析431 11.8 基址重定位432 11.8.1 基址重定位概念432 11.8.2 基址重定位結構定義433 11.8.3 基址重定位結構實例分析434 11.9 資源435 11.9.1 資源結構435 11.9.2 資源結構實例分析438 11.9.3 資源編輯工具440 11.10 TLS初始化440 11.11 調試目錄441 11.12 延遲載入數據441 11.13 程序異常數據442 11.14 .NET頭部443 11.15 編寫PE分析工具443 11.15.1 檢查文件格式443 11.15.2 讀取FileHeader和OptionalHeader的內容444 11.15.3 得到數據目錄表信息445 11.15.4 得到區(qū)塊表信息446 11.15.5 得到輸出表信息447 11.15.6 得到輸入表信息448 第12章 注入技術450 12.1 DLL注入方法450 12.1.1 通過干預輸入表處理過程加載目標DLL450 12.1.2 改變程序運行流程使其主動加載目標DLL466 12.1.3 利用系統機制加載DLL484 12.2 DLL注入的作用490 12.3 DLL注入的防范491 12.3.1 驅動層防范491 12.3.2 應用層防范493 第13章 Hook技術497 13.1 Hook的概念497 13.1.1 IAT Hook篡改MessageBox消息497 13.1.2 Inline Hook篡改指定MessageBox消息499 13.2 Hook分類500 13.2.1 Address Hook501 13.2.2 Inline Hook511 13.2.3 基于異常處理的Hook513 13.2.4 不是Hook的Hook515 13.3 Hook位置的挑選515 13.4 Hook的典型過程519 13.4.1 Address Hook的實施過程519 13.4.2 Inline Hook的實施過程526 13.4.3 基于異常處理的Hook實施過程529 13.4.4 二次Hook的注意事項532 13.4.5 通用Hook引擎的實現533 13.5 Detour函數的典型用法533 13.6 Hook中的注意事項536 13.7 Hook在x64平臺上的新問題541 13.8 Hook技術的應用543 13.9 Hook檢測、恢復與對抗544 13.9.1 Hook的檢測與恢復544 13.9.2 Hook對抗545 13.10 本章小結546 漏洞篇 第14章 漏洞分析技術548 14.1 軟件漏洞原理548 14.1.1 緩沖區(qū)溢出漏洞548 14.1.2 整型溢出漏洞553 14.1.3 UAF漏洞555 14.2 Shellcode555 14.2.1 Shellcode結構556 14.2.2 Shellcode通用技術559 14.2.3 實戰(zhàn)Shellcode編寫560 14.3 漏洞利用566 14.3.1 漏洞利用的基本技術567 14.3.2 漏洞利用高級技術570 14.4 漏洞樣本572 14.5 樣本分析573 14.5.1 準備工作573 14.5.2 靜態(tài)分析574 14.5.3 動態(tài)調試576 14.5.4 追根溯源581 14.5.5 小結585 脫殼篇 第15章 專用加密軟件588 15.1 認識殼588 15.1.1 殼的概念588 15.1.2 壓縮引擎589 15.2 壓縮殼589 15.2.1 UPX589 15.2.2 ASPack590 15.3 加密殼590 15.3.1 ASProtect590 15.3.2 Armadillo590 15.3.3 EXECryptor591 15.3.4 Themida591 15.4 虛擬機保護軟件592 15.4.1 虛擬機介紹592 15.4.2 VMProtect簡介592 第16章 脫殼技術594 16.1 基礎知識594 16.1.1 殼的加載過程594 16.1.2 脫殼機595 16.1.3 手動脫殼596 16.2 尋找OEP596 16.2.1 根據跨段指令尋找OEP596 16.2.2 用內存訪問斷點尋找OEP600 16.2.3 根據棧平衡原理尋找OEP601 16.2.4 根據編譯語言特點尋找OEP602 16.3 抓取內存映像603 16.3.1 Dump原理603 16.3.2 反Dump技術604 16.4 重建輸入表606 16.4.1 輸入表重建的原理606 16.4.2 確定IAT的地址和大小607 16.4.3 根據IAT重建輸入表608 16.4.4 Import REC重建輸入表611 16.4.5 輸入表加密概括614 16.5 DLL文件脫殼615 16.5.1 尋找OEP615 16.5.2 Dump映像文件617 16.5.3 重建DLL的輸入表618 16.5.4 構造重定位表619 16.6 附加數據621 16.7 PE文件的優(yōu)化623 16.8 壓縮殼626 16.8.1 UPX外殼626 16.8.2 ASPack外殼629 16.9 加密殼633 16.10 靜態(tài)脫殼637 16.10.1 外殼Loader分析637 16.10.2 編寫靜態(tài)脫殼器641 保護篇 第17章 軟件保護技術644 17.1 防范算法求逆644 17.1.1 基本概念644 17.1.2 堡壘戰(zhàn)術645 17.1.3 游擊戰(zhàn)術646 17.2 抵御靜態(tài)分析647 17.2.1 花指令647 17.2.2 SMC技術實現649 17.2.3 信息隱藏653 17.2.4 簡單的多態(tài)變形技術654 17.3 文件完整性檢驗655 17.3.1 磁盤文件校驗實現655 17.3.2 校驗和657 17.3.3 內存映像校驗657 17.4 代碼與數據結合技術659 17.4.1 準備工作660 17.4.2 加密算法的選用661 17.4.3 手動加密代碼661 17.4.4 使 .text區(qū)塊可寫662 17.5 軟件保護的若干忠告663 第18章 反跟蹤技術665 18.1 由BeingDebugged引發(fā)的蝴蝶效應665 18.1.1 BeingDebugged665 18.1.2 NtGlobalFlag669 18.1.3 Heap Magic671 18.1.4 從源頭消滅BeingDebugged676 18.2 回歸Native:用戶態(tài)的夢魘676 18.2.1 CheckRemoteDebuggerPresent677 18.2.2 ProcessDebugPort677 18.2.3 ThreadHideFromDebugger680 18.2.4 DebugObject682 18.2.5 SystemKernelDebuggerInformation686 18.2.6 Native API688 18.2.7 Hook和AntiHook693 18.3 真正的奧秘:小技巧一覽696 18.3.1 SoftICE檢測方法696 18.3.2 OllyDbg檢測方法698 18.3.3 調試器漏洞700 18.3.4 防止調試器附加701 18.3.5 父進程檢測703 18.3.6 時間差703 18.3.7 通過Trap Flag檢測704 18.3.8 雙進程保護704 第19章 外殼編寫基礎746 19.1 外殼的結構746 19.2 加殼主程序747 19.2.1 判斷文件是否為PE格式747 19.2.2 文件基本數據讀入748 19.2.3 附加數據的讀取749 19.2.4 輸入表的處理749 19.2.5 重定位表的處理752 19.2.6 文件的壓縮754 19.2.7 資源數據的處理757 19.2.8 區(qū)塊的融合761 19.3 用匯編寫外殼部分762 19.3.1 外殼的加載過程762 19.3.2 自建輸入表763 19.3.3 外殼引導段764 19.3.4 外殼第2段767 19.3.5 將外殼部分添加至原程序772 19.4 用C++ 編寫外殼部分775 第20章 虛擬機的設計780 20.1 虛擬機保護技術原理780 20.1.1 反匯編引擎780 20.1.2 指令分類780 20.2 啟動框架和調用約定781 20.2.1 調度器781 20.2.2 虛擬環(huán)境782 20.2.3 平衡棧VBegin和VCheckEsp783 20.3 Handler的設計784 20.3.1 輔助Handler784 20.3.2 普通Handler和指令拆解785 20.3.3 標志位問題786 20.3.4 相同作用的指令786 20.3.5 轉移指令787 20.3.6 轉移跳轉指令的另一種實現788 20.3.7 call指令789 20.3.8 retn指令789 20.3.9 不可模擬指令790 20.4 托管代碼的異常處理790 20.4.1 VC++ 的異常處理790 20.4.2 Delphi的異常處理795 20.5 本章小結798 第21章 VMProtect逆向和還原淺析799 21.1 VMProtect逆向分析799 21.1.1 VMProtect虛擬執(zhí)行引擎的全景圖799 21.1.2 VMProtect虛擬引擎的基本架構804 21.1.3 指令分類804 21.2 VMProtect的還原806 21.2.1 虛擬執(zhí)行系統807 21.2.2 生成完整的字節(jié)碼流程圖808 21.2.3 給Handler命名并添加語義動作815 21.2.4 將字節(jié)碼的低級描述轉換為中級描述816 21.2.5 清除無用的字節(jié)碼817 21.2.6 用真值表化簡邏輯指令818 21.2.7 從特征中建立部分寄存器映射信息820 21.2.8 其他無法確定的寄存器的圖著色算法826 21.2.9 使用DAG匹配生成指令829 21.2.10 其他問題832 軟件重構篇 第22章 補丁技術834 22.1 文件補丁834 22.2 內存補丁835 22.2.1 跨進程內存存取機制835 22.2.2 Debug API機制837 22.2.3 利用調試寄存器機制840 22.2.4 利用DLL注入技術843 22.2.5 利用Hook技術847 22.2.6 利用VT技術850 22.3 SMC補丁技術853 22.3.1 單層SMC補丁技術853 22.3.2 多層SMC補丁技術854 22.4 補丁工具856 第23章 代碼的二次開發(fā)858 23.1 數據對齊858 23.2 增加空間858 23.2.1 區(qū)塊間隙858 23.2.2 手工構造區(qū)塊859 23.2.3 工具輔助構造區(qū)塊860 23.3 獲得函數的調用860 23.3.1 增加輸入函數860 23.3.2 顯式鏈接調用DLL861 23.4 代碼的重定位862 23.4.1 修復重定位表862 23.4.2 代碼的自定位技術864 23.5 增加輸出函數865 23.6 消息循環(huán)866 23.6.1 WndProc函數866 23.6.2 尋找消息循環(huán)867 23.6.3 WndProc匯編形式868 23.7 菜單擴展869 23.7.1 擴充WndProc869 23.7.2 擴充Exit菜單的功能870 23.7.3 擴充Open菜單的功能870 23.8 DLL擴展873 23.8.1 擴展接口873 23.8.2 擴展消息循環(huán)874 語言篇 第24章 .NET平臺加解密 第24章 .NET平臺加解密 4 24.1 .NET概述 4 24.1.1 什么是 .NET 4 24.1.2 基本概念 5 24.1.3 第1個 .NET程序 6 24.2 MSIL與元數據 7 24.2.1 PE結構的擴展 7 24.2.2 .NET下的匯編MSIL 14 24.2.3 MSIL與元數據的結合 17 24.3 代碼分析與修改技術 19 24.3.1 靜態(tài)分析 19 24.3.2 動態(tài)調試 21 24.3.3 代碼修改 24 24.4 .NET代碼保護技術及其逆向 26 24.4.1 強名稱 26 24.4.2 名稱混淆 28 24.4.3 流程混淆 33 24.4.4 壓縮 35 24.4.5 加密 39 24.4.6 其他保護手段 46 24.5 小結 48 取證篇 第25章 數據取證技術878 25.1 硬盤數據的獲取和固定878 25.1.1 硬盤數據的獲取878 25.1.2 電子數據的固定882 25.2 硬盤的分區(qū)和數據恢復882 25.2.1 分區(qū)的解析884 25.2.2 基于文件系統的數據恢復原理886 25.3 內存分析890 25.3.1 內存鏡像的獲取891 25.3.2 內存鏡像的分析894 25.4 動態(tài)仿真技術897 25.4.1 仿真專用硬件897 25.4.2 軟件仿真898 25.5 注冊表900 25.5.1 Hive文件900 25.5.2 注冊表中的時間901 25.5.3 USB移動存儲設備902 25.6 文件格式903 25.6.1 文件修復和特征碼903 25.6.2 基于文件的數據恢復技術904 25.6.3 數據隱藏的分析906 注:附錄以電子版形式,放隨書配套映像文件提供下載。 附錄 附錄A:浮點指令 附錄B:在Visual C++中使用內聯匯編 附錄C:Visual Basic程序 附錄D:加密算法變形引擎 前言 前 言 軟件安全是信息安全領域的重要內容,涉及軟件的逆向分析、加密、解密、漏洞分析、安全編程及病毒分析等。隨著互聯網應用的普及和企業(yè)信息化程度的不斷提升,社會和企業(yè)對安全技術人才的需求逐年增加,國內高校對信息安全學科也越來越重視,但在計算機病毒查殺、網絡安全、個人信息安全等方面的人才缺口仍然很大。習近平總書記指出“網絡空間的競爭,歸根結底是人才競爭”。著重發(fā)現、培養(yǎng)、輸送信息安全專業(yè)人才,已經成為各國信息安全戰(zhàn)略的重要組成部分。從就業(yè)的角度來看,掌握信息安全相關知識和技能,從業(yè)者不但可以提高自身的職場競爭力,而且有機會發(fā)揮更大的個人潛力、獲得滿意的薪酬;從個人成長方面來說,研究信息安全技術有助于掌握許多系統底層知識,是提升職業(yè)技能的重要途徑。作為一名合格的程序員,除了掌握需求分析、設計模式等,如果能掌握一些系統底層知識,熟悉整個系統的底層結構,必將獲益良多。本書以軟件逆向為切入點,講述了軟件安全領域相關的基礎知識和技能。讀者在閱讀本書的內容后,很容易就能在逆向分析、漏洞分析、安全編程、病毒分析等領域進行擴展。這些知識點的相互關聯,將促使讀者開闊思路,使所學融會貫通,領悟更多的學習方法,提升自身的學習能力。 《加密與解密》從第1版到今天的第4版,能夠一直陪伴讀者,完全基于廣大讀者的熱情和鼓舞,在此深表謝意。 本書的緣起 在信息社會里,安全技術變得越來越重要,如何普及安全知識是作者始終關注的一個大問題。正是為了更好地將安全知識普及到社會各個領域的愿望,促成了本書的問世。依托看雪學院的技術背景,由作者主編和主導的看雪安全系列書籍,目前已出版發(fā)行了《加密與解密——軟件保護技術及完全解決方案》(簡體版,繁體版)、《加密與解密(第二版)》(簡體版,繁體版)、《加密與解密(第三版)》(簡體版,繁體版)、《軟件加密技術內幕》等;基于電子資料的形式,歷年發(fā)行的《看雪論壇精華》被眾多網站轉載,保守計算,其下載量已達數百萬次,極大地推動了國內安全技術的發(fā)展。 這是一本很難寫的書,因為在2000年時,軟件安全是一個全新的領域,從Windows 95面世以來的6年內,市面上沒有一本這方面的書,網上也缺乏相關資料。為了填補國內Windows平臺軟件安全書籍的空白,作者與看雪論壇的一流好手努力合作,克服種種困難,于2001年9月推出了國內第一本全面介紹Windows平臺軟件安全技術的書籍,這就是本書的第1版《加密與解密——軟件保護技術及完全解決方案》。這本書一經面世,就得到了廣大讀者的喜愛和認可,獲得了2002年全國優(yōu)秀暢銷書獎(科技類),在全國很多計算機專業(yè)書店獲得了極佳的銷售業(yè)績。2003年,本書的繁體版在臺灣地區(qū)發(fā)行,受到了臺灣讀者的熱烈歡迎。
購買主題
本主題需向作者支付 666 資源幣 才能瀏覽
| |
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
小黑屋|資源共享吧 ( 瓊ICP備2023000410號-1 )
GMT+8, 2024-12-22 10:12 , Processed in 0.067395 second(s), 17 queries , MemCached On.