詞匯表
如果你不知道特定于相應(yīng)主題的術(shù)語,你就不能有效地使用工具。以下術(shù)語解釋了VMProtect中使用的術(shù)語。本詞匯表并非詳盡無遺,因此某些術(shù)語的含義可能與經(jīng)典術(shù)語不同。
字節(jié)碼-在將真實的處理器的命令轉(zhuǎn)碼為虛擬機(jī)的命令之后接收的代碼。
虛擬化-將應(yīng)用程序的可執(zhí)行代碼的一部分轉(zhuǎn)換為虛擬機(jī)的命令的過程,其特征在于潛在黑客未知的命令系統(tǒng)、架構(gòu)和操作邏輯。虛擬化的代碼片段由虛擬機(jī)的解釋器執(zhí)行,而不將它們轉(zhuǎn)換為物理處理器的機(jī)器語言代碼。通常,虛擬化片段的逆向工程歸結(jié)為構(gòu)建具有與虛擬機(jī)模仿的處理器相同的架構(gòu)的反匯編器以及分析所得到的反匯編代碼。
虛擬機(jī)-在受保護(hù)的應(yīng)用程序中直接執(zhí)行字節(jié)碼的程序代碼。
水印-每個用戶唯一的字節(jié)數(shù)組,允許明確識別程序的黑客副本的法律的所有者。
突變-用一個類似的命令或產(chǎn)生相同結(jié)果的一組特定命令替換原始命令。
混淆-一組旨在使程序代碼分析復(fù)雜化的方法和技術(shù)。根據(jù)編寫受保護(hù)程序的編程語言,使用不同的混淆類型。通過修改源代碼,對解釋語言(Perl、PHP等)編寫的應(yīng)用程序進(jìn)行混淆:注釋被刪除,變量被賦予無意義的名稱,字符串常量被加密等等。Java / .NET應(yīng)用程序的混淆是通過轉(zhuǎn)換虛擬機(jī)處理的字節(jié)碼來執(zhí)行的。編譯程序的混淆依賴于修改機(jī)器語言代碼:混淆器添加各種“垃圾”命令、“死代碼”、隨機(jī)跳轉(zhuǎn)。此外,原始命令會發(fā)生變化,一部分操作會移動到堆棧,并且會進(jìn)行許多結(jié)構(gòu)(或不太常見的數(shù)學(xué))轉(zhuǎn)換。代碼的混淆片段的逆向工程嘗試將片段帶回到其原始狀態(tài),并且只要混淆正確地完成,這是耗時的任務(wù)。
保護(hù)器-旨在保護(hù)其他程序免受黑客攻擊的軟件。今天的大多數(shù)保護(hù)程序不修改應(yīng)用程序的源代碼,而是打包或加密應(yīng)用程序。主要焦點放在保護(hù)解包/解密程序或過程上。
入口點-加載到內(nèi)存中的應(yīng)用程序的初始地址執(zhí)行從開始。
打包-通過使用非典型算法壓縮程序和可執(zhí)行文件來保護(hù)程序代碼的方式。受保護(hù)的代碼片段由打包器壓縮,并且當(dāng)執(zhí)行應(yīng)用時在用戶側(cè)完全或部分地解包。
加密- 使用強(qiáng)大的加密算法保護(hù)應(yīng)用程序的一部分代碼。受加密保護(hù)的軟件需要最終用戶輸入激活碼,以消除開發(fā)人員為未注冊版本的程序設(shè)置的限制。
以上便是VMProtect和相關(guān)專業(yè)術(shù)語的介紹,如果您有任何疑問或者想獲取更多產(chǎn)品試用/授權(quán)/價格信息,請點擊VMProtect了解。