• <menu id="w2i4a"></menu>
  • logo VMPsoft中文文檔

    使用標(biāo)記


    VMProtect 是保護(hù)應(yīng)用程序代碼免遭分析和破解的可靠工具,但只有在正確構(gòu)建應(yīng)用程序內(nèi)保護(hù)機(jī)制并且沒(méi)有可能破壞整個(gè)保護(hù)的典型錯(cuò)誤的情況下才能最有效地使用。

    VMProtect最新版下載

    為了保護(hù)代碼的各個(gè)片段和字符串常量,您可以在應(yīng)用程序的源代碼中插入特殊標(biāo)記。標(biāo)記是對(duì)從外部庫(kù)導(dǎo)入的函數(shù)的調(diào)用(32 位應(yīng)用程序使用 VMProtectSDK32.dll,64 位應(yīng)用程序使用VMProtectSDK64.dll;驅(qū)動(dòng)程序分別使用 VMProtectDDK32.sys 和 VMProtectDDK64.sys)——進(jìn)一步稱(chēng)為 VMProtectSDK。VMProtectSDK 中的過(guò)程和函數(shù)不執(zhí)行任何操作,這個(gè)特殊標(biāo)記只是VMProtect用于確定受保護(hù)代碼邊界的標(biāo)簽。受保護(hù)塊的開(kāi)始和結(jié)束標(biāo)記如下:

    • Delphi
    uses VMProtectSDK;
    
    VMProtectBegin(MARKER_TITLE);
    ...
    VMProtectEnd;
    
    C/C++
    
    #include "VMProtectSDK.h"
    
    VMProtectBegin(MARKER_TITLE);
    ...
    VMProtectEnd();
    • MASM
    include VMProtectSDK.inc
    
    invoke VMProtectBegin,SADD(MARKER_TITLE)
    ...
    invoke VMProtectEnd
    
    Visual Basic
    
    VMProtectBegin (StrPtr(MARKER_TITLE))
    ...
    VMProtectEnd

    此外,您可以使用具有預(yù)定義編譯類(lèi)型的標(biāo)記來(lái)代替 VMProtectBegin :

    • VMProtectBeginVirtualization – 標(biāo)記使用“虛擬化”編譯類(lèi)型。
    • VMProtectBeginMutation – 標(biāo)記使用“Mutation”編譯類(lèi)型。
    • VMProtectBeginUltra – 標(biāo)記使用“Ultra”編譯類(lèi)型。
    標(biāo)記處理方式:

    當(dāng)VMProtect分析受保護(hù)應(yīng)用程序的代碼時(shí),它會(huì)定位對(duì)VMProtectSDK過(guò)程和函數(shù)的所有調(diào)用。要保護(hù)的塊的邊界由標(biāo)記對(duì)VMProtectBegin / VMProtectBeginVirtualization / VMProtectBeginMutation / VMProtectBeginUltra 和 VMProtectEnd定義。 然后,當(dāng)VMProtect處理受保護(hù)應(yīng)用程序的代碼時(shí),它會(huì)刪除標(biāo)記和對(duì)VMProtectSDK的任何調(diào)用信息,所以這些庫(kù)沒(méi)有必要包含在你的安裝程序包中。標(biāo)記無(wú)論是否包含在編譯中,都會(huì)被刪除。使用命名標(biāo)記時(shí),也會(huì)刪除其名稱(chēng)。

    如果指定了標(biāo)記的標(biāo)題,則會(huì)為其分配名稱(chēng),如“VMProtectMarker MARKER_TITLE”。如果未指定標(biāo)記的標(biāo)題,則為其分配一個(gè)唯一名稱(chēng):“VMProtectMarker”+標(biāo)記序列號(hào)。然而,使用非命名標(biāo)記有一個(gè)明顯的缺點(diǎn):如果一個(gè)新的標(biāo)記將被插入到程序的代碼中,所有非命名標(biāo)記的編號(hào)都會(huì)改變。所以我們建議始終使用命名標(biāo)記。

    使用標(biāo)記時(shí)要考慮的一個(gè)特別重要的事情是,您不應(yīng)允許從標(biāo)記內(nèi)的非保護(hù)區(qū)域跳躍。例如,如果您將循環(huán)的一部分包含在標(biāo)記中,就會(huì)發(fā)生這種情況。如果使用標(biāo)記的應(yīng)用程序在保護(hù)后變得無(wú)法運(yùn)行,您可以通過(guò)啟用“調(diào)試模式”選項(xiàng)來(lái)檢測(cè)來(lái)自非保護(hù)區(qū)域和地址的跳轉(zhuǎn)。在這種模式下,當(dāng)受保護(hù)的應(yīng)用程序在調(diào)試器下工作時(shí),如果檢測(cè)到從非保護(hù)區(qū)跳轉(zhuǎn)到受保護(hù)的調(diào)試器,后者將中斷程序的執(zhí)行。找到所有此類(lèi)跳轉(zhuǎn)后,您應(yīng)該更改標(biāo)記的位置,如果不方便,請(qǐng)使用VMProtect的GUI版本將這些地址標(biāo)記為外部。

    以上便是本篇文章的分享,如果您有任何疑問(wèn)或者想獲取更多產(chǎn)品試用/授權(quán)/價(jià)格信息,請(qǐng)點(diǎn)擊VMProtect了解。

    掃碼咨詢(xún)


    添加微信 立即咨詢(xún)

    電話(huà)咨詢(xún)

    客服熱線(xiàn)
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();