出版時間:2008-7 出版社:電子工業(yè)出版社 作者:段鋼 頁數(shù):543
Tag標(biāo)簽:無
內(nèi)容概要
本書以加密與解密為切入點,講述了軟件安全領(lǐng)域許多基礎(chǔ)知識和技能,如調(diào)試技能、逆向分析、加密保護(hù)、外殼開發(fā)、虛擬機設(shè)計等。讀者在掌握本書的內(nèi)容,很容易在漏洞分析、安全編程、病毒分析、軟件保護(hù)等領(lǐng)域擴展,這些知識點都是相互的,彼此聯(lián)系。國內(nèi)高校對軟件安全這塊領(lǐng)域教育重視程度還不夠,許多方面還是空白,而近年來許多企業(yè)對軟件安全技術(shù)人才需求量越來越大。從就業(yè)角度來說,掌握這方面技術(shù),可以提高自身的競爭能力;從個人成長角度來說,研究軟件安全技術(shù)有助于掌握一些系統(tǒng)底層知識,是提升職業(yè)技能的重要途徑。作為一名合格的程序員,除了掌握需求分析、設(shè)計模式等外,如能掌握一些系統(tǒng)底層知識,熟悉整個系統(tǒng)的底層結(jié)構(gòu),對自己的工作必將獲益良多。 本書可以作為學(xué)?;蚺嘤?xùn)機構(gòu)的軟件安全輔助教材,是安全技術(shù)愛好者、調(diào)試人員、程序開發(fā)人員不可多得的一本好書。
作者簡介
本書由看雪軟件安全網(wǎng)站(看雪學(xué)院)站長段鋼主持編著。在本書的編寫過程中,參與創(chuàng)作的每位作者傾力將各自擅長的專業(yè)技術(shù)毫無保留地奉獻(xiàn)給廣大讀者,使得本書展現(xiàn)出了極具價值的豐富內(nèi)容。如果讀者在閱讀本書后,能夠感受到管窺技術(shù)奧秘帶來的內(nèi)心的喜悅,并愿意與大家分享這份感受,這是作者最大的愿望。主編:段鋼編委:(按章節(jié)順序排列)Blowfish,沈曉斌,丁益青,單海波,王勇,趙勇,唐植明,softworm,afanty,李江濤,林子深,印豪,馮典,羅翼,林小華,郭春楊Blowfish看雪首席版主。經(jīng)驗豐富的大齡程序員。1992年上大學(xué)始接觸電腦,1997年讀研期間接觸網(wǎng)絡(luò)并自學(xué)加密解密技術(shù),一發(fā)不可收拾,其時常在教育網(wǎng)BBS灌水。喜多方涉獵,亦能抓住一點深入鉆研,對逆向分析技術(shù)尤為癡迷。多年來常在看雪論壇灌水,見證了論壇的風(fēng)風(fēng)雨雨,也結(jié)識了一些不錯的朋友。參與章節(jié):第5章 5.1 序列號保護(hù)方式第14章 14.5 軟件保護(hù)的若干忠告沈曉斌看雪核心專家團(tuán)隊成員。看雪論壇ID為cnbragon,現(xiàn)攻讀密碼學(xué)專業(yè)碩士學(xué)位。最初的愛好是網(wǎng)絡(luò)安全,進(jìn)而研究軟件的逆向工程,對密碼學(xué)的興趣由此而發(fā)。對密碼學(xué)的各個方面都有所涉獵,尤其擅長密碼學(xué)在軟件保護(hù)中的應(yīng)用研究。獨立完成了一個加密算法庫CryptoFBC。譯作有《程序員密碼學(xué)》。參與章節(jié):第6章 加密算法丁益青看雪技術(shù)專家。看雪論壇ID為cyclotron,復(fù)旦大學(xué)在讀碩士研究生,復(fù)旦大學(xué)日月光華BBS黑客與系統(tǒng)安全版版主,致力于Windows環(huán)境下可執(zhí)行文件的加密解密與逆向工程研究。主要作品有EmbedPE、IDT Protector、PEunLOCK等。參與章節(jié):第8章 8.3 偽編譯單海波看雪核心專家團(tuán)隊成員。看雪論壇ID為tankaiha,生于六朝古都南京,碩士研究生畢業(yè),現(xiàn)任某研究所工程師,工作之余好與計算機為伴。2002年接觸匯編并熱衷于病毒技術(shù)學(xué)習(xí),后偶遇看雪學(xué)院,遂終日游戲于程序加密與解密,不可自拔。2006年與kanxue及壇中數(shù)位好友成立.net安全小組DST(Dotnet Reverse Team),共同探討.net平臺下的軟件安全技術(shù)。參與章節(jié):第9章 .Net平臺加解密王勇看雪技術(shù)專家。畢業(yè)于石油大學(xué)(華東)計算機科學(xué)與技術(shù)專業(yè)。擅長C/C++、ASM和驅(qū)動程序開發(fā)。對面向?qū)ο蟪绦蛟O(shè)計和Windows系統(tǒng)底層的研究有豐富的經(jīng)驗。很高興這次能與各位高手一起合作,也希望能與編程愛好者及加密解密愛好者更多的交流。參與章節(jié):第10章 10.15 編寫PE分析工具趙勇看雪技術(shù)專家。來自江蘇江陰,計算機業(yè)余愛好者,興趣愛好廣泛。參與章節(jié):第13章 13.6 附加數(shù)據(jù)唐植明看雪技術(shù)核心權(quán)威??囱┱搲疘D為DiKeN,2002年畢業(yè)于蘭州大學(xué),計算機科學(xué)與技術(shù)專業(yè)。愛好逆向工程,iPB(inside Pandora's Box)組織創(chuàng)始人(在這兒更是要感謝組織的兄弟姐妹們,大家團(tuán)結(jié)友好,互相學(xué)習(xí),為iPB的成功作出了巨大努力),曾在2002年編寫過《加密與解密實戰(zhàn)攻略》算法部分。參與章節(jié):第13章 13.10 靜態(tài)脫殼softworm看雪技術(shù)天才。70后一代,非計算機專業(yè)的業(yè)余愛好者。1998年開始接觸逆向與破解,迄今已近10年,終于達(dá)到了“知道自己不知道”的境界。感興趣的方向包括殼、虛擬機保護(hù)、病毒引擎、Rootkit。后兩項還處于只知道名字的水平,愿與有共同愛好的朋友一起學(xué)習(xí)。參與章節(jié):第13章 13.9.2 Thmedia的SDK分析afanty看雪技術(shù)專家。多年專業(yè)研究軟件加解密技術(shù)。參與章節(jié):第14章 14.1 防范算法求逆李江濤看雪技術(shù)核心權(quán)威。看雪論壇ID為ljtt,喜歡學(xué)習(xí)編程技術(shù),常用編程語言為VC/MASM。對PB、VFP的反編譯有深入的研究,寫過DePB、FoxSpy等程序。平時大多數(shù)時間都在電腦上耕作,最大的希望是能夠領(lǐng)悟到編程的精髓,寫一個自己比較滿意的作品。參與章節(jié):第14章 14.2.2 SMC技術(shù)實現(xiàn)林子深看雪技術(shù)導(dǎo)師。看雪論壇ID為forgot,1989年生,看雪論壇外殼開發(fā)小組組長。熟悉Win32平臺和80x86匯編,擅長代碼的逆向,對殼的研究比較多。參與章節(jié):第12章 12.4.1 虛擬機介紹第14章 14.2.4 簡單的多態(tài)變形技術(shù)第15章 反跟蹤技術(shù)印豪看雪資深技術(shù)權(quán)威??囱┱搲疘D為Hying,擅長加殼技術(shù),擁有獨立創(chuàng)作的加密利器。參與章節(jié):第16章 外殼編寫基礎(chǔ)馮典看雪技術(shù)天才??囱┱搲疘D為bughoho,1990年生,來自四川,看雪論壇虛擬機開發(fā)小組組長,目前工作主要是從事逆向研究。個人自述:記得14歲時家里買了臺電腦,使我對編程有了極大的興趣。16歲上高一時已對讀書徹底不感興趣,于是退學(xué)(現(xiàn)在的我才發(fā)現(xiàn),我并不是對讀書感興趣,而是對教育制度的反感)。后來聽了家人的意見,轉(zhuǎn)讀四川新華電腦學(xué)校,感受頗多,一月之后便退學(xué),至于為什么我就不說了。17歲時,一個偶然的機會,使我對逆向有了濃厚的興趣,并接觸到看雪論壇,也認(rèn)識到了kanxue。承蒙kanxue抬舉,讓我執(zhí)筆虛擬機這一章,由于我并不是一個才高八斗的人,所以寫得也沒有那么的妙筆生花、鬼斧神工了。參與章節(jié):第17章 虛擬機的設(shè)計
書籍目錄
前言第1篇 基礎(chǔ)篇 第1章 基礎(chǔ)知識 1.1 文本字符 1.1.1 字節(jié)存儲順序 1.1.2 ASCII與Unicode字符集 1.2 WINDOWS 操作系統(tǒng) 1.2.1 Win API簡介 1.2.2 常用Win32 API函數(shù) 1.2.3 什么是句柄 1.2.4 Windows 9x與Unicode 1.2.5 Windows NT/2000/XP與Unicode 1.2.6 Windows 消息機制 1.3 保護(hù)模式簡介 1.3.1 虛擬內(nèi)存 1.3.2 保護(hù)模式的權(quán)限級別 1.4 認(rèn)識PE格式第2篇 調(diào)試篇 第2章 動態(tài)分析技術(shù) 33 2.1 OLLYDBG調(diào)試器 2.1.1 OllyDbg界面 2.1.2 OllyDbg的配置 2.1.3 加載程序 2.1.4 基本操作 2.1.5 斷點 2.1.6 插件 2.1.7 Run trace 2.1.8 Hit trace 2.1.9 符號調(diào)試技術(shù) 2.1.10 OllyDbg常見問題 2.2 SOFTICE調(diào)試器 第3章 靜態(tài)分析技術(shù) 31 3.1 文件類型分析 3.1.1 PEiD工具 3.1.2 FileInfo工具 3.2 靜態(tài)反匯編 3.2.1 打開文件 3.2.2 IDA的配置 3.2.3 IDA主窗口界面 3.2.6 交叉參考 3.2.7 參考重命名 3.2.8 標(biāo)簽的用法 3.2.9 進(jìn)制的轉(zhuǎn)換 3.2.10 代碼和數(shù)據(jù)轉(zhuǎn)換 3.2.11 字符串 3.2.12 數(shù)組 3.2.13 結(jié)構(gòu)體 3.2.14 枚舉類型 3.2.15 堆棧變量 3.2.16 IDC腳本 3.2.17 FLIRT 3.2.18 插件 3.2.19 其他功能 3.2.20 小結(jié) 3.3 可執(zhí)行文件的修改 3.4 靜態(tài)分析技術(shù)應(yīng)用實例 3.4.1 解密初步 3.4.2 逆向工程初步 第4章 逆向分析技術(shù) 35 4.1 啟動函數(shù) 4.2 函數(shù) 4.2.1 函數(shù)的識別 4.2.2 函數(shù)的參數(shù) 4.2.3 函數(shù)的返回值 4.3 數(shù)據(jù)結(jié)構(gòu) 4.3.1 局部變量 4.3.2 全局變量 4.3.3 數(shù)組 4.4 虛函數(shù) 4.5 控制語句 4.5.1 IF-THEN-ELSE語句 4.5.2 SWITCH-CASE語句 4.5.3 轉(zhuǎn)移指令機器碼的計算 4.5.4 條件設(shè)置指令 4.5.5 純算法實現(xiàn)邏輯判斷 4.6 循環(huán)語句 4.7 數(shù)學(xué)運算符 4.7.1 整數(shù)的加法和減法 4.7.2 整數(shù)的乘法 4.7.3 整數(shù)的除法 4.8 文本字符串 4.8.1 字符串存儲格式 4.8.2 字符尋址指令 4.8.3 字母大小寫轉(zhuǎn)換 4.8.4 計算字符串的長度 4.9 指令修改技巧第3篇 解密篇 第5章 常見的演示版保護(hù)技術(shù) 34 5.1 序列號保護(hù)方式 5.1.1 序列號保護(hù)機制 5.1.2 如何攻擊序列號保護(hù) 5.1.3 字符串比較形式 5.1.4 注冊機制作 5.2 警告(NAG)窗口 5.3 時間限制 5.3.1 計時器 5.3.2 時間限制 5.3.3 拆解時間限制保護(hù) 5.4 菜單功能限制 5.4.1 相關(guān)函數(shù) 5.4.2 拆解菜單限制保護(hù) 5.5 KEYFILE保護(hù) 5.5.1 相關(guān)API函數(shù) 5.5.2 拆解KeyFile保護(hù) 5.6 網(wǎng)絡(luò)驗證 5.6.1 相關(guān)函數(shù) 5.6.2 網(wǎng)絡(luò)驗證破解一般思路 5.7 CD-CHECK 5.7.1 相關(guān)函數(shù) 5.7.2 拆解光盤保護(hù) 5.8 只運行一個實例 5.8.1 實現(xiàn)方案 5.8.2 實例 5.9 常用斷點設(shè)置技巧 第6章 加密算法 6.1 單向散列算法 6.1.1 MD5算法 6.1.2 SHA算法 6.1.3 小結(jié) 6.2 對稱加密算法 6.2.1 RC4流密碼 6.2.2 TEA算法 6.2.3 IDEA算法 6.2.4 BlowFish算法 6.2.5 AES算法 6.2.6 對稱加密算法小結(jié) 6.3 公開密鑰加密算法 6.3.1 RSA算法 6.3.2 ElGamal公鑰算法 6.3.3 DSA數(shù)字簽名算法 6.3.4 橢圓曲線密碼編碼學(xué) 6.4 其他算法 6.4.1 CRC32算法 6.4.2 Base64 6.5 常見加密庫接口及其識別 6.5.1 Miracl大數(shù)運算庫 6.5.2 FGInt 6.5.4 其它加密算法庫介紹第4篇 語言和平臺篇 第7章 DELPHI程序 7.1 認(rèn)識DELPHI 7.2 DEDE反編譯器 7.3 按鈕事件代碼 7.4 模塊初始化與結(jié)束化 第8章 VISUAL BASIC程序 8.1 基礎(chǔ)知識 8.1.1 字符編碼方式 8.1.2 編譯模式 8.2 自然編譯(NATIVE) 8.2.1 相關(guān)VB函數(shù) 8.2.2 VB程序比較方式 8.3 偽編譯(PCODE)(cyclotron編寫) 8.3.1 虛擬機與偽代碼 8.3.2 動態(tài)分析VB P-code程序 8.3.3 偽代碼的綜合分析 8.3.4 VB P-code攻擊實戰(zhàn) 第9章 .NET平臺加解密(tankaiha 編寫) 51 9.1 .NET概述 9.1.1 什么是.Net 9.1.2 幾個基本概念 9.1.3 第一個.Net程序 9.2 MSIL與元數(shù)據(jù) 9.2.1 PE結(jié)構(gòu)的擴展 9.2.2 .Net下的匯編MSIL 9.2.3 MSIL與元數(shù)據(jù)的結(jié)合 9.3 代碼分析技術(shù) 9.3.1 靜態(tài)分析 9.3.2 動態(tài)調(diào)試 9.3.3 代碼修改 9.4 代碼保護(hù)技術(shù)及其逆向 9.4.1 強名稱 9.4.2 名稱混淆 9.4.3 流程混淆 9.4.4 壓縮 9.4.5 加密 9.4.6 其它保護(hù)手段 9.5 深入.NET 9.5.1 反射與CodeDOM 9.5.2 Unmaganed API 9.5.3 Rotor、MONO與.Net內(nèi)核第5篇 系統(tǒng)篇 第10章 PE文件格式 54 10.1 PE的基本概念 10.1.1 基地址 10.1.2 相對虛擬地址 10.1.3 文件偏移地址 10.2 MS-DOS頭部 10.3 PE文件頭 10.3.1 Signature字段 10.3.2 IMAGE_FILE_HEADER 結(jié)構(gòu) 10.3.3 Optional Header 10.4 區(qū)塊 10.4.1 區(qū)塊表 10.4.2 各種區(qū)塊的描述 10.4.3 區(qū)塊的對齊值 10.4.4 文件偏移與虛擬地址轉(zhuǎn)換 10.5 輸入表 10.5.1 輸入函數(shù)的調(diào)用 10.5.2 輸入表結(jié)構(gòu) 10.5.3 輸入地址表 10.5.4 輸入表實例分析 10.6 綁定輸入 10.7 輸出表 10.7.1 輸出表結(jié)構(gòu) 10.7.2 輸出表結(jié)構(gòu)實例分析 10.8 基址重定位 10.8.1 基址重定位概念 10.8.2 基址重定位結(jié)構(gòu)定義 10.8.3 基址重定位結(jié)構(gòu)實例分析 10.9 資源 10.9.1 資源結(jié)構(gòu) 10.9.2 資源結(jié)構(gòu)實例分析 10.9.3 資源編輯工具 10.10 TLS初始化 10.11 調(diào)試目錄 10.12 延遲裝入數(shù)據(jù) 10.13 程序異常數(shù)據(jù) 10.14 .NET頭部 10.15 PE分析工具編寫 10.15.1 文件格式檢查 10.15.2 FileHeader和OptionalHeader內(nèi)容的讀取 10.15.3 得到數(shù)據(jù)目錄表信息 10.15.4 得到區(qū)塊表信息 10.15.5 得到輸出表信息 10.15.6 得到輸入表信息 第11章 結(jié)構(gòu)化異常處理 11 11.1 基本概念 11.1.1 異常列表 11.1.2 異常處理的基本過程 11.1.3 SEH的分類 11.2 SEH相關(guān)數(shù)據(jù)結(jié)構(gòu) 11.2.1 TEB結(jié)構(gòu) 11.2.2 EXCEPTION_REGISTRATION結(jié)構(gòu) 11.2.3 EXCEPTION_POINTERS、EXCEPTION_RECORD、CONTEXT 11.3 異常處理回調(diào)函數(shù)第6篇 脫殼篇 第12章 專用加密軟件 11 12.1 認(rèn)識殼 12.1.1 殼的概念 12.1.2 壓縮引擎 12.2 壓縮殼 12.2.1 UPX 12.2.2 ASPacK 12.3 加密殼 12.3.1 ASProtect 12.3.2 Armadillo 12.3.3 EXECryptor 12.3.4 Themida 12.4 虛擬機保護(hù)軟件 12.4.1 虛擬機介紹 12.4.2 VMProtect簡介 第13章 脫殼技術(shù)64 13.1 基礎(chǔ)知識 13.1.1 殼的加載過程 13.1.2 脫殼機 13.1.3 手動脫殼 13.2 尋找OEP 13.2.1 根據(jù)跨段指令尋找OEP 13.2.2 用內(nèi)存訪問斷點找OEP 13.2.3 根據(jù)堆棧平衡原理找OEP 13.2.4 根據(jù)編譯語言特點找OEP 13.3 抓取內(nèi)存映像 13.3.1 Dump原理 13.3.2 反DUMP技術(shù) 13.4 重建輸入表 13.4.1 輸入表重建的原理 13.4.2 確定IAT的地址和大小 13.4.3 根據(jù)IAT重建輸入表 13.4.4 ImportREC重建輸入表 13.4.5 輸入表加密概括 13.5 DLL文件脫殼 13.5.1 尋找OEP 13.5.2 Dump映像文件 13.5.3 重建DLL的輸入表 13.5.4 構(gòu)造重定位表 13.6 附加數(shù)據(jù) 13.7 PE文件的優(yōu)化 13.8 壓縮殼 13.8.1 UPX外殼 13.8.2 ASPack外殼 13.9 靜態(tài)脫殼 13.9.1 外殼Loader的分析 13.9.2 編寫靜態(tài)脫殼器 13.10 加密殼 13.10.1 ASProtect 13.10.2 Thmedia的SDK分析第7篇 保護(hù)篇 第14章 軟件保護(hù)技術(shù) 26 14.1 防范算法求逆 14.1.1 基本概念 14.1.2 堡壘戰(zhàn)術(shù) 14.1.3 游擊戰(zhàn)術(shù) 14.2 抵御靜態(tài)分析 14.2.1 花指令 14.2.2 SMC技術(shù)實現(xiàn) 14.2.3 信息隱藏 14.2.4 簡單多態(tài)變形技術(shù) 14.3 文件完整性檢驗 14.3.1 磁盤文件校驗實現(xiàn) 14.3.2 校驗和(Checksum) 14.3.3 內(nèi)存映像校驗 14.4 代碼與數(shù)據(jù)結(jié)合技術(shù) 14.4.1 準(zhǔn)備工作 14.4.2 加密算法選用 14.4.3 手動加密代碼 14.4.4 使.text區(qū)塊可寫 14.5 軟件保護(hù)的若干忠告 第15章 反跟蹤技術(shù)(forgot編寫) 52 15.1 由BEINGDEBUGGED引發(fā)的蝴蝶效應(yīng) 15.1.1 BeingDebugged 15.1.2 NtGlobalFlag 15.1.3 Heap Magic 15.1.4 從源頭消滅BeingDebugged 15.2 回歸NATIVE:用戶態(tài)的夢魘 15.2.1 CheckRemoteDebuggerPresent 15.2.2 ProcessDebugPort 15.2.3 ThreadHideFromDebugger 15.2.4 Debug Object 15.2.5 SystemKernelDebuggerInformation 15.2.6 Native API 15.2.7 Hook和AntiHook 15.3 真正的奧秘:小技巧一覽 15.3.1 SoftICE檢測方法 15.3.2 OllyDbg檢測方法 15.3.3 調(diào)試器漏洞 15.3.4 防止調(diào)試器附加 15.3.5 父進(jìn)程檢測 15.3.6 時間差 15.3.7 通過Trap Flag檢測 15.3.8 雙進(jìn)程保護(hù) 第16章 外殼編寫基礎(chǔ)(Hying編寫)35 16.1 外殼的結(jié)構(gòu) 16.2 加殼主程序 16.2.1 判斷文件是否為PE格式 16.2.2 文件基本數(shù)據(jù)讀入 16.2.3 附加數(shù)據(jù)讀取 16.2.4 輸入表處理 16.2.5 重定位表處理 16.2.6 文件的壓縮 16.2.7 資源數(shù)據(jù)處理 16.2.8 區(qū)塊的融合 16.3 外殼部分編寫 16.3.1 外殼的加載過程 16.3.2 自建輸入表 16.3.4 外殼引導(dǎo)段 16.3.5 外殼第二段 16.4 將外殼部分添加至原程序 第17章 虛擬機的設(shè)計 17.1 原理 17.1.1 反匯編引擎 17.1.2 指令分類 17.2 啟動框架和調(diào)用約定 17.2.1 調(diào)度器VStartVM 17.2.2 虛擬環(huán)境:VMContext 17.2.3 平衡堆棧:VBegin和VCheckEsp 17.3 HANDLER的設(shè)計 17.3.1 輔助Handler 17.3.2 普通Handler和指令拆解 17.3.3 標(biāo)志位問題 17.3.4 相同作用的指令 17.3.5 轉(zhuǎn)移指令 17.3.6 轉(zhuǎn)移跳轉(zhuǎn)指令的另一種實現(xiàn) 17.3.7 CALL指令 17.3.8 retn指令 17.3.9 不可模擬指令 17.4 托管代碼的異常處理 17.4.1 VC++的異常處理 17.4.2 Delphi的異常處理 17.5 小結(jié)第8篇 PEDIY篇 第18章 補丁技術(shù) 18.1 文件補丁 18.2 內(nèi)存補丁 18.2.1 跨進(jìn)程內(nèi)存存取機制 18.2.2 Debug API機制 18.2.3 利用調(diào)試寄存器機制 18.2.4 DLL劫持技術(shù) 18.3 SMC補丁技術(shù) 18.3.1 單層SMC補丁技術(shù) 18.3.2 多層SMC補丁技術(shù) 18.4 補丁工具 第19章 代碼的二次開發(fā) 19.1 數(shù)據(jù)對齊 19.2 增加空間 19.2.1 區(qū)塊間隙 19.2.2 手工構(gòu)造區(qū)塊 19.2.3 工具輔助構(gòu)造區(qū)塊 19.3 獲得函數(shù)的調(diào)用 19.3.1 增加輸入函數(shù) 19.3.2 顯式鏈接調(diào)用DLL 19.4 代碼的重定位 19.4.1 修復(fù)重定位表 19.4.2 代碼的自定位技術(shù) 19.5 增加輸出函數(shù) 19.6 消息循環(huán) 19.6.1 WndProc函數(shù) 19.6.2 尋找消息循環(huán) 19.6.3 WndProc匯編形式 19.7 修改WNDPROC擴充功能 19.7.1 擴充WndProc 19.7.2 擴充Exit菜單功能 19.7.3 擴充Open菜單功能 19.8 增加接口 19.8.1 用DLL增加功能 19.8.2 擴展消息循環(huán)附錄 附錄A 浮點指令 附錄B 在Visual C++中使用內(nèi)聯(lián)匯編術(shù)語表參考文獻(xiàn)
章節(jié)摘錄
第1篇 基礎(chǔ)篇第1章 基礎(chǔ)知識研究加密與解密,必須要了解一些Windows系統(tǒng)的基礎(chǔ)知識,這樣在分析的過程中才能有的放矢地處理各種問題。1.1 文本字符在學(xué)習(xí)過程中會與各類字符打交道,它們在Windows里扮演著重要角色。1.1.1 字節(jié)存儲順序多字節(jié)數(shù)據(jù)是按怎樣的順序存放的呢?實際情況和CPU有關(guān),微處理機中的存放順序有正序(BiG-Endian)和逆序(Little-Endian)之分。常見的Intel體系芯片使用的編碼方式屬于Little—Endian類;某些RISC架構(gòu)的CPU,如IBM的Power—PC等屬于BiG—Endian類。兩種編碼區(qū)別:·BiG—Endian 高位字節(jié)存入低地址,低位字節(jié)存入高地址,依次排列;·Little—Endian 低位字節(jié)存入低地址,高位字節(jié)存入高地址,反序排列。例如,將12345678h寫入到以1000h開始的內(nèi)存中,則結(jié)果如圖1.1所示。本書以運行在Intel x86 CPU上的Windows為講解平臺,因此涉及的編碼皆為Little.Endian類。1.1.2 ASCIl與Unicode字符集美國信息交換標(biāo)準(zhǔn)碼(ASCII)是一個7位的編碼標(biāo)準(zhǔn),包括26個小寫字母、26個大寫字母、10個數(shù)字、32個符號、33個控制代碼和一個空格,總共128個代碼。由于計算機通常用“字節(jié)”(byte)這個8位的存儲單位來進(jìn)行信息交換,因此不同的計算機廠家對ASCIl進(jìn)行了擴充,增加了128個附加的字符來補充ASCII。
編輯推薦
《加密與解密(第3版)》暢銷書升級版,值得期待; 看雪軟件安全學(xué)院眾多一流高手合力歷時4年精心打造; 全面揭示W(wǎng)indows平臺的加密與解密技術(shù)。 軟件安全是信息安全領(lǐng)域的重要內(nèi)容,涉及到軟件相關(guān)的加密、解密、逆向分析、漏洞分析、安全編程以及病毒分析等。目前,國內(nèi)高校對軟件安全教育重視程度不夠,許多方面還是空白。隨著互聯(lián)網(wǎng)應(yīng)用的普及和企業(yè)信息化程度的不斷提升,社會和企業(yè)對軟件安全技術(shù)人才需求逐年上升,在計算機病毒查殺、網(wǎng)游安全、網(wǎng)絡(luò)安全、個人信息安全等方面人才缺口很大,相關(guān)職位待遇較高。從就業(yè)角度來看,掌握軟件安全相關(guān)知識和技能,不但可以提高自身的職場競爭能力,而且有機會發(fā)揮更大的個人潛力,獲得滿意的薪酬;從個人成長方面來說,研究軟件安全技術(shù)有助于掌握許多系統(tǒng)底層知識,是提升職業(yè)技能的重要途徑。作為一名合格的程序員,除了掌握需求分析、設(shè)計模式等,如能掌握一些系統(tǒng)底層知識,熟悉整個系統(tǒng)的底層結(jié)構(gòu),對自己的工作必將獲益良多。揭示軟件加密與解密最核心,看雪安全技術(shù)團(tuán)隊全力支持。專家講壇,全面探討,軟件安全問題與解決之道。技術(shù)剖析,深入淺出,分析加密與解密技術(shù)核心。共同進(jìn)步,循序漸進(jìn)。迅速提升讀者的專業(yè)水平。《加密與解密(第3版)》技術(shù)支持:看雪軟件安全網(wǎng)站提供《加密與解密(第3版)》的全面技術(shù)支持服務(wù),閱讀此書過程中,如有什么問題或?qū)W習(xí)心得,歡迎光臨論壇與這些傳說中的好手共同交流。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載