亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        實現(xiàn).NET產(chǎn)品保護的混淆技術(shù)

        2007-12-31 00:00:00王六平張偉林
        計算機時代 2007年10期

        摘 要:介紹了.NET環(huán)境下的一種軟件保護方法——混淆:通過對MSIL代碼進行字符串加密、名稱混淆、流程混淆等技術(shù),以加大反編譯的難度,從而達到對.NET產(chǎn)品的保護;列舉了目前常用的混淆工具,并分析了它們的優(yōu)劣。

        關(guān)鍵詞:軟件保護;.NET;MSIL;混淆;加密

        0 引言

        作為一種編程平臺,Microsoft.NET比微軟公司先前推出的其他技術(shù)平臺更為復雜。.NET提供了對多種編程語言以及(在理論上說)多重平臺的支持,在傳統(tǒng)的兩個代碼層之間添加一個中間代碼層。這里,傳統(tǒng)的兩層分別是源代碼層和編譯后的本機代碼層。新加的代碼層給.NET平臺帶來了額外的靈活性,不過,反過來卻又增加了系統(tǒng)的復雜性。

        在Microsoft.NET框架內(nèi),應(yīng)用程序可以用好多種高級程序語言編寫、創(chuàng)建,例如VB.NET、C#乃至COBOL.NET等等,都可以編寫.NET應(yīng)用程序。而通過每一種遵守.NET規(guī)范的編程語言所編寫的程序首先都得通過一種初始編譯步驟從源代碼變成.NET的公共標準語言:MSIL(Microsoft IntermediateLanguage,微軟中介語言),然后,在執(zhí)行時臨時由JIT解釋成機器代碼執(zhí)行(如圖1所示)。MSIL自身是一種完整的、和對象相關(guān)的語言,通過它才可能實現(xiàn)多種高級語言來編寫.NET應(yīng)用程序。但使用ILDASM可以很容易地反匯編成一個文本文件,這個文本文件比較容易看懂,還可以修改后使用ILASM重新編譯成EXE文件。這就給軟件保護提出了新的難題。

        1 保護軟件與常用做法

        對上述問題,在不同場合可以采取不同的解決方案:

        (1)Web service或者remote方式調(diào)用將核心代碼和數(shù)據(jù)放到服務(wù)器上。

        (2)Jeffrey Richter認為:如果有非常重要的代碼,而且認可Native Code有100%的安全,則可以考慮使用Native Code的DLL+Interop。

        (3)在程序里加上簽名,即在Assembly里加上數(shù)字證書。這樣,當.NET應(yīng)用被加載時,它的安全體系會檢查這個簽名的,這個簽名可以保證代碼不被改動。改變過的代碼是不能執(zhí)行的,它保證了“這個程序一定是由某某公司開發(fā)的,且未被篡改”,但是無法保證這個程序是安全的,是否接受程序取決于對該公司的信任。這種方法仍然無法實現(xiàn)軟件保護,可以將程序COPY到其它機器上運行。

        (4)使用混淆器,混淆是目前最流行的方式?;煜ぞ咭话愣加腥齻€功能:字符串加密、名稱混淆、流程混淆等。目前流行的混淆軟件有:XenoCode、Dotfuscator、Remotesoft、ILDog,MaxtoCode里也集成了少許混淆功能。

        (5)可以自行設(shè)計一個加密方法。

        本文主要討論第4種方法,也就是混淆技術(shù)。關(guān)于.NET源代碼的安全性,關(guān)于如何保護您的知識產(chǎn)權(quán),關(guān)于市場上流動的混淆工具以及最新的混淆加密工具,本文將集中展示一下,全新的保護手段,以便能讓同行們能使用.NET開發(fā)共享程序并保護自己的知識產(chǎn)權(quán)。

        2 混淆的原理

        混淆,顧名思義就是混雜,使界限不分明。這個詞相當妙,特別是用在計算機界。我們知道.NET程序集中有一個重要的概念叫做MetaData(元數(shù)據(jù)),它記錄了相關(guān)程序集的一切信息,因此,NET程序集才有了跨平臺的可能,才可以在網(wǎng)上傳送運行,才不會出現(xiàn)DLL HELL。但同時,由于它記錄了所有的信息,程序集中的信息可以完全還原至初始狀態(tài),使得編譯過后的程序集,依然擁有良好的“可讀性”。在某些特殊的情況下,這是一件很糟的事情,針對這些情況,出現(xiàn)了混淆器,它對MetaData的某些相關(guān)信息進行了處理,達到了混淆的作用。

        (1)字符串加密

        首先,最簡單的混淆是字符串加密,也就是將程序集中所存在的字符串加密,防止字符串信息泄漏,使攻擊者無法讀懂程序中出現(xiàn)的字符串。這種方法在每一個混淆工具軟件中都會用到。

        (2)名稱混淆

        名稱混淆也就是將命名空間名、類名、方法名、字段名等統(tǒng)統(tǒng)換成特殊符號或其它無意義的符號(如圖2)。

        由于.NET代碼經(jīng)過編譯后,名稱完全被保留。這樣,如果Cracker想破解這個程序,當看到Register的時候,就差不多找到破解的入口了。但經(jīng)過名稱混淆后,它將變成毫無意義的名稱,增加了破解的難度。

        然而,名稱混淆有一個非常致命的缺點:當修改了類名之后可能出現(xiàn)程序不能執(zhí)行的問題。一般來說,這種情況在DLL中發(fā)生得更多,但在EXE中也經(jīng)常發(fā)生。因為DLL的某些Public方法是對外的接口,在程序開發(fā)和調(diào)試的時候使用的原名稱,當混淆以后,改成了別的名稱,所以對它的調(diào)用(特別是通過反射調(diào)用)肯定報錯。處理辦法:不混淆對外提供的Public方法。EXE和DLL還有一個共同的容易出錯的地方就是資源,混淆器也可以混淆資源名稱,這樣,就存在同樣的問題——“無法找到資源而報錯(動態(tài)Load資源的時候)”:處理方法:不混淆程序內(nèi)部調(diào)用的東西。

        另外,如果名稱混淆時,使用短名稱及不可見字符(如ILDog),將會縮小程序集的大小,但如果使用長名稱(如XenoCode),可能會增加程序集大小。

        (3)流程混淆

        流程混淆是較大強度的混淆,能較好地保護代碼不被反編譯。其基本原理是:給程序中增加某些形式的跳轉(zhuǎn),以破壞原有可讀的流程但不改變執(zhí)行流程(如圖3)。

        3 常見.NET產(chǎn)品保護工具

        目前代碼保護工具主要有以下幾種,下面介紹它們的性質(zhì)及特點:

        (1)Dotfuscator Community。性質(zhì):混淆。

        這是微軟推薦的一種混淆工具,可以集成到NET開發(fā)環(huán)境中。Dotfuscator利用標識符重命名,流程修改,字符串加密等技術(shù)混淆MSIL,極大地增加了其被反匯編的難度,而對功能沒有絲毫的影響。同時,Dotfuscator對代碼進行全局掃描,移除不必要的關(guān)系數(shù)據(jù),還對代碼進行優(yōu)化壓縮,移除所有多余的方法,變量,和函數(shù),可以將執(zhí)行程序的大小最大壓縮至原來的30%,極大地提高了程序運行效益。Doffuscator可以和Visual Studio完全整合。大眾版已經(jīng)是Visual Studio的一個標準部件。

        (2)Remotesoft Dotfuscator。性質(zhì):混淆。

        (3)XenoCode,可能是目前最常用的混淆工具。性質(zhì):混淆。

        (4)MaxtoCode。性質(zhì):加密、混淆。

        這是世界第一款利用Windows底層技術(shù)保護.NET源代碼的高技術(shù)產(chǎn)品。它可以完美地與.NET程序結(jié)合在一起,全力保護源代碼和知識產(chǎn)權(quán)。MaxtoCode已經(jīng)完全超越了傳統(tǒng)的混淆手段,它加密后的代碼,完全無法被反編譯(由于篇幅有限,不在本文中討論)。是目前保護強度最大,最完美的.NET產(chǎn)品保護方案。2.0以上的版本已經(jīng)加上混淆功能,并將混淆功能與加密功能疊加使用,以增加保護的強度。

        4 結(jié)束語

        從目前市場情況來看,雖然.NET2003已經(jīng)推出近五年,了,但市面上用.NET開發(fā)的軟件產(chǎn)品并不多見。究其原因,筆者認為.NET產(chǎn)品保護較困難,對開發(fā)者的開發(fā)積極性可能起到了一定的負面影響。只有很好地解決了.NET產(chǎn)品的保護問題,才能充分地調(diào)動開發(fā)者的積極性。

        无遮挡网站| 欧美牲交a欧美牲交| 人人澡人人妻人人爽人人蜜桃麻豆| 亚洲裸男gv网站| 午夜家庭影院| 亚洲人成网站www| 久久av一区二区三区黑人| 99精品国产在热久久无毒不卡| 国产精品无码一本二本三本色| 亚洲综合网在线观看首页| 亚洲成熟丰满熟妇高潮XXXXX | 俺来也三区四区高清视频在线观看| 日本一区二区在线高清| 午夜福利理论片在线观看| 国产成人无码精品午夜福利a| 丰满少妇又紧又爽视频| 少妇深夜吞精一区二区| 夜夜爽夜夜叫夜夜高潮| 黄瓜视频在线观看| 2021国产精品视频| 精品女同av一区二区三区| 日本二一三区免费在线| 免费毛片a线观看| 97超在线视频免费| 在线播放偷拍一区二区| 最新国产精品拍自在线观看| 欧美黑人又粗又硬xxxxx喷水| 国产小屁孩cao大人免费视频| 国产中文字幕一区二区视频| 免费欧洲毛片a级视频老妇女 | 亚洲精品乱码久久麻豆| 久久久久高潮综合影院| 午夜福利麻豆国产精品| 亚洲午夜无码视频在线播放| 美女超薄透明丝袜美腿| 精品国产亚洲av久一区二区三区| 色噜噜亚洲男人的天堂| 中文字幕日本最新乱码视频| 国产丝袜精品丝袜一区二区| 天天色天天操天天日天天射| 国产色在线 | 亚洲|