翻譯|使用教程|編輯:黃竹雯|2019-02-15 14:06:58.000|閱讀 1185 次
概述:本文主要介紹為什么你的應(yīng)用程序需要被保護(hù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Dotfuscator是一款.NET混淆器和壓縮器,防止你的應(yīng)用程序被反編譯。
使用.NET編寫的程序較容易被反編譯,也就是。.NET應(yīng)用程序編譯為一種高級(jí)、富有表現(xiàn)力的文件語(yǔ)法,稱為MSIL(Microsoft Intermediate Language),包含方法和變量名稱,可以輕松地反編譯回源代碼形式。
無(wú)論是否合法,攻擊者都可以使用免費(fèi)的反編譯器輕松查看任何.NET應(yīng)用程序的源代碼,他們可以公開軟件許可代碼,復(fù)制保護(hù)機(jī)制和個(gè)人/團(tuán)隊(duì)私有的業(yè)務(wù)邏輯。任何人都可以閱讀軟件應(yīng)用程序的所有信息,通過利用漏洞,竊取想法,破解應(yīng)用程序甚至可能更嚴(yán)重。
混淆是一種可以在程序集中提供符號(hào)的無(wú)縫重命名,以及其他技巧來(lái)阻止反編譯器的技術(shù)。正確應(yīng)用混淆可以使應(yīng)用程序的安全程度呈數(shù)量級(jí)的提高,同時(shí)保持應(yīng)用程序的完整性。
當(dāng)混淆器工具開始使用可讀程序指令時(shí),有一個(gè)副作用是輸出會(huì)混淆人工解釋器并破壞人工解釋器正在使用的反編譯器。在保留可執(zhí)行邏輯的同時(shí),反向語(yǔ)義呈現(xiàn)為非確定性的。所以,嘗試對(duì)指令進(jìn)行反向工程會(huì)失敗,因?yàn)檗D(zhuǎn)換不明確。 深度混淆會(huì)產(chǎn)生無(wú)數(shù)的反編譯可能性,如果重新編譯,其中一些還會(huì)產(chǎn)生不正確的邏輯。反編譯器作為計(jì)算機(jī)器無(wú)法知道哪些可能性可以用有效的語(yǔ)義重新編譯。人們編寫并使用反編譯器來(lái)自動(dòng)化反編譯算法,這些算法對(duì)于計(jì)算機(jī)器來(lái)說(shuō)是十分具挑戰(zhàn)性的。
除了混淆之外,Dotfuscator還可以提供額外的保護(hù)層。這些保護(hù)包括檢測(cè),可以主動(dòng)檢測(cè)可能的攻擊(例如篡改,調(diào)試或在root設(shè)備上運(yùn)行),并可以使用預(yù)定義的行為或自定義邏輯進(jìn)行響應(yīng)。所有的這些保護(hù)措施使應(yīng)用程序極難進(jìn)行逆向工程或修改。
有一點(diǎn)很重要的是要理解Dotfuscator是一個(gè)“后編譯”工具 - 它保護(hù)你已編譯的.NET程序集(.dll和.exe文件)。開發(fā)環(huán)境和工具不需要做任何改變,源代碼也不會(huì)以任何方式被改變甚至讀取。受保護(hù)的程序集在功能上等同于傳統(tǒng)程序集(除非有意更改),并且將在公共語(yǔ)言運(yùn)行時(shí)(CLR)上執(zhí)行。(即使可以對(duì)強(qiáng)混淆的程序集進(jìn)行反編譯,與原始源代碼相比,它也會(huì)產(chǎn)生明顯的語(yǔ)義差異。)
下圖顯示了使用和不使用Dotfuscator的典型構(gòu)建過程的流程:
如圖所示,你的應(yīng)用程序?qū)⒄>幾g,然后Dotfuscator將保護(hù)這些程序集。Dotfuscator將把程序集作為輸入,根據(jù)你的配置設(shè)置執(zhí)行保護(hù),并生成這些程序集的受保護(hù)版本作為輸出。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn