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