當前位置:法律諮詢服務網 - 知識產權保護 - C#寫的DLL怎麽加密?

C#寫的DLL怎麽加密?

加密c# dll最快的方法是使用壹個shell工具Virbox Protector直接加密。Virbox Protectorke可以分析dll的性能,分析每個函數的調用次數,為每個函數選擇保護方法,比如混淆/虛擬化/碎片化/代碼加密等。每種加密方法的特點是什麽?

代碼加密(X86):

為X86匯編代碼:壹種保護代碼的代碼自修改技術(SMC)。將當前代碼加密存儲為密文,存儲,當程序運行到受保護的函數時自動解密執行,執行後擦除代碼,無論代碼運行到哪裏都解密。黑客無法獲得原始的機器指令和具有內存完整性的代碼。因為是純內存操作,所以是壹種運行速度快,成本高的保護方式。建議全部補充。

代碼加密

dotNet程序的IL代碼保護:壹種解密受保護代碼的動態操作方法。將當前代碼加密存儲為密文,存儲,當程序運行到受保護的函數時自動解密執行,執行後擦除代碼,然後在運行的地方擦除代碼。黑客無法獲得中間語言的原始指令和具有內存完整性的代碼。因為是純內存操作,所以是壹種運行速度快,成本高的保護方式。建議全部補充。

壓縮

壓縮軟件,如zip,壓縮代碼和數據段。由於其動態密碼,任何工具都無法自動解包,是防止反編譯反匯編的關鍵手段。

代碼混淆(IL):

將代碼中各種元素的名稱,如變量、函數、類等,改寫成無意義的名稱。比如改寫成單個字母,或者簡短無意義的字母組合,甚至改寫成“_ _”之類的符號,讓讀者無法根據名字猜出其用途。

a)將代碼中的部分邏輯重寫為功能等效但更難理解的形式。比如把For循環改寫成while循環,把循環改寫成遞歸,精簡中間變量等等。

b)打亂代碼的格式。比如刪除空格,把多行代碼擠成壹行,或者把壹行代碼拆成多行等等。

c)加入花哨的指令,通過專門構造的指令讓反匯編程序出錯,進而幹擾反編譯。

代碼混淆器也會帶來壹些問題。主要問題包括:混亂的代碼難以理解,因此調試困難。開發人員通常需要保留原始的、整潔的代碼用於調試。對於支持反射的語言,代碼混亂可能會與反射沖突。代碼混亂並不能真正阻止逆向工程,只會增加其難度。因此,對於安全性要求較高的場合,僅僅使用代碼混淆並不能保證源代碼的安全性。

代碼混淆的特點是安全性低,不會影響效率。

代碼虛擬化:

對於X86代碼:是指將機器代碼翻譯成壹串機器和人都無法識別的偽代碼字節流;這些偽代碼在具體執行過程中被逐壹翻譯解釋,逐漸還原成原碼執行。這個用來翻譯偽代碼,負責具體執行的子程序叫做虛擬機VM(就像壹個抽象的CPU)。它以函數的形式存在,函數的參數是字節碼的內存地址。由於虛擬機代碼和虛擬機CPU的實現每次都可以隨機設計和執行,每次都可以隨機修改代碼,包括壹些邏輯上的等價修改,可以參考硬件N個與非門實現各種邏輯門、算法和內存訪問形式,包括數學上的非等價修改,代碼量幾乎可以膨脹到100到10000次,使得機器無法執行算法恢復到原來的邏輯。

代碼虛擬化的特點是:安全性適中,不影響效率。

代碼碎片:

深入思考自主知識產權的最新技術:基於LLVM和ARM虛擬機技術,自動提取大量代碼,移入SS內核模式模塊,大大降低了使用門檻,不再需要人工移植算法。可移植算法的數量從有限增加到幾乎無限,支持的語言也不再局限於c,這是加密技術的綜合應用,效果類似於把軟件拆開執行,讓破解者無所適從。

安全性高,提示關鍵功能或調用加密鎖方法;用多了會影響效率。

  • 上一篇:龍成捷達註冊過商標嗎?還有哪些分類可以註冊?
  • 下一篇:美日韓在芯片領域的霸權是如何壹步步確立的
  • copyright 2024法律諮詢服務網