軟件加密與解密是一本對(duì)抗軟件盜版、篡改和惡意逆向工程的理論、技巧和工具,由 Christian Collberg和Jasvir Nagra兩人共同編著,崔孝晨翻譯。
本書詳盡地介紹了軟件加密與解密的相關(guān)技術(shù),涵蓋了計(jì)算機(jī)科學(xué)的各個(gè)相關(guān)領(lǐng)域,包括密碼學(xué)、隱寫術(shù)、水印、軟件度量、逆向工程和編譯優(yōu)化等。
此外,作者通過大量的示例代碼,向讀者展示了代碼混淆、軟件水印、代碼防篡改和“胎記”技術(shù)等保護(hù)算法的實(shí)現(xiàn)方式,并且從理論和實(shí)踐兩個(gè)角度探討了這些技術(shù)的局限,適用于研究人員、在校學(xué)生,開發(fā)人員閱讀。
內(nèi)容介紹
在《軟件加密與解密》中,作者試圖把當(dāng)前所有有關(guān)隱蔽軟件的研究成果組織起來系統(tǒng)化地介紹給讀者。他們力爭(zhēng)每章內(nèi)容涵蓋一種技術(shù),并描述這一技術(shù)的應(yīng)用領(lǐng)域以及目前可用的算法。第1章將給出隱蔽軟件這個(gè)領(lǐng)域的一些基本概念;第2章用對(duì)抗性演示的模式介紹黑客逆向分析軟件時(shí)常用的工具和技巧,然后針對(duì)這些工具和技巧介紹如何防范黑客的攻擊;第3章詳細(xì)講述黑客和軟件保護(hù)方用于分析計(jì)算機(jī)程序的技術(shù);第4章、第5章和第6章分別介紹與代碼混淆有關(guān)的算法;第7章介紹與防篡改技術(shù)相關(guān)的算法;第8章和第9章分別介紹與水印相關(guān)的算法;第10章介紹與軟件“胎記”相關(guān)的算法;第11章講述基于硬件設(shè)備的軟件保護(hù)技術(shù)。
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請(qǐng)務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進(jìn)行閱讀試讀
軟件加密與解密
對(duì)抗軟件盜版、篡改和惡意逆向工程的理論、技巧和工具
近十年來,人們?cè)谲浖辣I版和防篡改技術(shù)的研發(fā)上取得了重大進(jìn)展。這些技術(shù)在保護(hù)軟件開發(fā)人員的知識(shí)產(chǎn)權(quán)方面具有不可替代的作用。無論是研究人員、在校學(xué)生,還是開發(fā)人員,要了解這些技術(shù)及其能提供的安全級(jí)別和可能引發(fā)的性能開銷,都可以從本書獲得權(quán)威、全面的參考資料。
Christian Coliberg和Jasvir Nagra在書中詳盡地介紹了相關(guān)技術(shù),探討了計(jì)算機(jī)科學(xué)的各個(gè)相關(guān)領(lǐng)域,包括密碼學(xué)、隱寫術(shù)、水印、軟件度量、逆向工程和編譯優(yōu)化等。本書通過大量的示例代碼,向讀者展示了代碼混淆、軟件水印、代碼防篡改和“胎記”技術(shù)等保護(hù)算法的實(shí)現(xiàn)方式,并且從理論和實(shí)踐兩個(gè)角度探討了這些技術(shù)的局限。
涵蓋的內(nèi)容
◆攻擊者和防御者用來分析程序的各種主要方法
◆代碼混淆技術(shù),用于提高程序被分析和理解的難度
◆軟件水印和指紋,用于標(biāo)識(shí)軟件開發(fā)者并追蹤盜版
◆代碼防篡改技術(shù),用于檢測(cè)和響應(yīng)非法修改代碼和數(shù)據(jù)的行為,從而保護(hù)軟件
◆動(dòng)態(tài)水印和動(dòng)態(tài)混淆技術(shù),用于阻止軟件的非法復(fù)制
◆軟件相似性分析和“胎記”算法,用于檢測(cè)代碼剽竊
◆硬件技術(shù),用于保護(hù)軟件及各類媒體免遭盜版和篡改
◆在分布式系統(tǒng)中,檢測(cè)遠(yuǎn)端不可信平臺(tái)上運(yùn)行的軟件是否被篡改
◆代碼混淆技術(shù)在理論上的局限性
防篡改技術(shù)
對(duì)代碼進(jìn)行混淆處理的目的之一就是要讓代碼變得足夠復(fù)雜,從而使攻擊者放棄分析程序中的算法或者修改程序的嘗試。但是萬一Axel成功地突破了Doris的混淆保護(hù),我們又該怎么辦呢?Drois除了進(jìn)行代碼混淆之外,還可以對(duì)她的代碼進(jìn)行防纂改處理°。這也就是說,當(dāng)Axel試圖去修改Doris的程序時(shí),程序會(huì)產(chǎn)生一些出乎Axel意料的行為:比如被破解的程序會(huì)拒絕運(yùn)行,或者會(huì)隨機(jī)地崩潰掉,更有甚者它會(huì)刪掉Axel計(jì)算機(jī)中所有的文件,或者再絕一點(diǎn),它會(huì)給Doris家里打個(gè)電話告訴她Axel正在破解她的程序……
通常,防篡改算法要完成兩個(gè)基本任務(wù)。第一個(gè)任務(wù)是,它要能檢查程序是否被修改。要做到這一點(diǎn),一個(gè)常用的方法是計(jì)算代碼的校驗(yàn)和,然后把這個(gè)檢驗(yàn)和和正確的值相比較。另一個(gè)常用方法是通過檢查一些變量的值去確認(rèn)程序的狀態(tài)是否處于一個(gè)正常范圍之內(nèi)R。
一旦發(fā)現(xiàn)代碼被修改,防篡改算法就要去完成第二個(gè)任務(wù),執(zhí)行相應(yīng)的反制措施。比如它可以讓程序馬上退出。不過這一點(diǎn)并不像它看上去那樣容易做到——因?yàn)槲覀冞€要使這些代碼不容易被黑客找到并刪掉。比如說不能用下面這種代碼:
if(tampering-detected()abort(
這段代碼實(shí)在是不堪一擊,因?yàn)楹诳秃苋菀拙湍苷业绞钩绦蛲顺龅拇a(就是調(diào)用abort()函數(shù)的這句),接著黑客馬上能從abort()函數(shù)出發(fā)找到檢查代碼是否被修改的函數(shù)。所以黑客很容易就能把它干掉!一個(gè)好的防篡改系統(tǒng)一定是把檢測(cè)程序是否被修改的代碼和反制代碼放在程序的不同位置上,而且不會(huì)讓它們像上面給出的代碼那樣順序執(zhí)行。
- 下載地址
發(fā)表評(píng)論
0條評(píng)論軟件排行榜
熱門推薦
開源閱讀電腦版 v3.25.04291211.55M / 簡體中文
瀟湘書院電腦版 v2.3.15.88849.57M / 簡體中文
有柿電腦版 v11.9.1126.58M / 簡體中文
網(wǎng)易云閱讀電腦版 v6.7.226.41M / 簡體中文
未公開的Oracle數(shù)據(jù)庫秘密 迪貝斯pdf掃描版34.69M / 簡體中文
本草綱目 5.34M / 簡體中文
docker入門實(shí)戰(zhàn) pdf完整版1.38M / 簡體中文
Scala程序設(shè)計(jì)第二版 pdf高清完整版15.83M / 簡體中文
C++黑客編程揭秘與防范第2版 冀云pdf掃描版54.58M / 簡體中文
C++多核高級(jí)編程 修斯pdf掃描版57.21M / 簡體中文