代碼混淆無需大價錢,Code Virtualizer輕鬆搞定

任何創建創新性應用程序,DLL或設備驅動程序的開發人員都希望將代碼儘可能機密,以避免第三方公司/開發人員研究應用程序內的代碼併為自己的利益而竊取代碼。一些開發人員使用外部保護系統來打包應用程序並保護其免受攻擊者的侵害,但是大多數時候,這些保護系統無法提供他們所需要的強度,從而使開發人員在完全解壓縮應用程序後完全感到沮喪。

市面很多代碼保護軟件,雖然功能強大,但同樣價格昂貴,小編今天為大家推薦一款性價比高的代碼混淆軟件Code Virtualizer。

Code Virtualizer不能像普通的打包器那樣工作;相反,它只是保護開發人員選擇的敏感代碼區域。這些敏感區域將轉換為內部的虛擬機操作碼,只有Code Virtualizer才能理解。如果攻擊者試圖瞭解虛擬機的操作碼,則他將不得不跟蹤一個複雜且多態的虛擬機,這使他在任何時候都正在執行什麼代碼方面大失所望。(點擊文末“瞭解更多”下載Code Virtualizer)

代碼混淆無需大價錢,Code Virtualizer輕鬆搞定

虛擬化x86代碼(用於32位或64位)的整個過程可以在以下階段進行描述:

  • 讀取敏感代碼塊以進行保護:Code Virtualizer將在已編譯的應用程序中搜索開發人員在其源代碼中插入的所有敏感塊
  • 為應用程序創建一個唯一的虛擬機:Code Virtualizer使用其多態引擎創建一個唯一的虛擬機,以解釋轉換後的虛擬操作碼
  • 將原始x86操作碼轉換為特定的虛擬操作碼:Code Virtualizer會將原始x86操作碼轉換為僅先前生成的唯一虛擬機可以理解的特定操作碼
  • 銷燬原始x86操作碼並將執行重定向到虛擬機:代碼虛擬器將銷燬原始x86操作碼並將塊中的第一條指令重定向到虛擬機,執行虛擬操作碼而不是原始x86操作碼

逆向工程的代碼虛擬器

代碼虛擬化包括將二進制代碼從特定機器轉換為另一臺機器可以理解的不同二進制代碼。即,來自特定機器的指令集被轉換為新的指令集,該新的指令集被另一機器理解。下圖表示從Intel x86指令塊到另一臺機器(特別是RISC 32位CPU)的新指令集的轉換:

代碼混淆無需大價錢,Code Virtualizer輕鬆搞定

Code Virtualizer可以生成多種虛擬機,每種虛擬機具有不同的指令集。這意味著可以將特定的Intel x86指令塊轉換為每臺計算機的不同指令集,從而防止攻擊者在從x86指令轉換後識別任何生成的虛擬操作碼。下圖表示如何將Intel x86指令塊轉換為不同類型的虛擬操作碼,這些虛擬操作碼可以由不同的虛擬機模擬。

代碼混淆無需大價錢,Code Virtualizer輕鬆搞定

當攻擊者嘗試反編譯受Code Virtualizer保護的代碼塊時,他將找不到原始的x86指令。相反,他將找到一個全新的指令集,該指令集將不會被他或其他任何特殊的反編譯器所識別。這將迫使攻擊者進行極其艱鉅的工作,以確定每個操作碼的執行方式以及特定虛擬機如何為每個受保護的應用程序工作。Code Virtualizer完全混淆了虛擬操作碼的執行和對每個唯一虛擬機的研究,以防止有人研究如何執行虛擬操作碼。

下圖顯示了原始已編譯應用程序的圖像(在受到保護之前)以及在受Code Virtualizer保護時如何轉換:

代碼混淆無需大價錢,Code Virtualizer輕鬆搞定

如圖所示,Code Virtualizer需要將生成的虛擬機嵌入到受保護的應用程序的末尾(或在Stealth Mode中隱藏在您自己的代碼中),以便在要執行虛擬操作碼時模擬它們。虛擬機的大小可以從500Kb到3Mb以上不等!(取決於所選的虛擬機體系結構)。您還可以壓縮生成的虛擬機和虛擬化的代碼,以減少磁盤上最終應用程序的大小。

使用環境

  • Win32和Win64本機應用程序(EXE文件)
  • Win32和Win64本機系統服務
  • Win32和Win64 設備驅動程序(NT設備驅動程序,WDM等)
  • Win32和Win64本機動態鏈接庫(DLL)
  • 其他本機PE文件,例如OCX,ActiveX控件,屏幕保護程序等。
  • Linux應用程序和庫(.so)
  • Mac OS X應用程序

由於.NET應用程序的性質,Code Virtualizer無法保護.NET應用程序中的敏感代碼。為了保護.NET應用程序,建議您使用其他產品WinLicense。


分享到:


相關文章: