• <menu id="w2i4a"></menu>
  • logo VMProtect用戶手冊(cè)

    文檔首頁(yè)>>VMProtect用戶手冊(cè)>>代碼保護(hù)軟件 VMProtect 用戶手冊(cè)之準(zhǔn)備項(xiàng)目: 使用標(biāo)記

    代碼保護(hù)軟件 VMProtect 用戶手冊(cè)之準(zhǔn)備項(xiàng)目: 使用標(biāo)記


    VMProtect 是一種很可靠的工具,可以保護(hù)應(yīng)用程序代碼免受分析和破解,但只有在應(yīng)用程序內(nèi)保護(hù)機(jī)制正確構(gòu)建且沒有可能破壞整個(gè)保護(hù)的嚴(yán)重錯(cuò)誤的情況下,才能實(shí)現(xiàn)最好的效果。

    VMProtect最新試用版下載

       要保護(hù)代碼的各個(gè)片段并保護(hù)字符串常量,可以在應(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) - 也可稱為VMProtectSDK。VMProtectSDK中的過(guò)程和函數(shù)不執(zhí)行任何操作,這個(gè)特殊標(biāo)記只是VMProtect用于確定受保護(hù)代碼邊界的標(biāo)簽。受保護(hù)塊的開頭和結(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

    VMProtectBegin不是必選項(xiàng),你也可以選擇使用帶有預(yù)定義編譯類型的標(biāo)記。

    • VMProtectBeginVirtualization - 標(biāo)記使用“Virtualization”編譯類型。
    • VMProtectBeginMutation – 標(biāo)記使用“Mutation”編譯類型。
    • VMProtectBeginUltra – 標(biāo)記使用“Ultra”編譯類型。

        標(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ù)沒有必要包含在你的安裝程序包中。標(biāo)記無(wú)論是否包含在編譯中,都會(huì)被刪除。使用命名標(biāo)記時(shí),也會(huì)刪除其名稱。

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

        使用標(biāo)記時(shí)要考慮的一個(gè)特別重要的事情是,你不應(yīng)該允許從標(biāo)記內(nèi)的非保護(hù)區(qū)域跳轉(zhuǎn)。例如,如果將一部分循環(huán)括在標(biāo)記中,就會(huì)發(fā)生這種情況。如果使用標(biāo)記的應(yīng)用程序在保護(hù)后變得不起作用,則可以通過(guò)啟用“Debug mode”選項(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í)行。找到所有這些跳轉(zhuǎn)后,你應(yīng)該更改標(biāo)記的位置,如果不方便,請(qǐng)使用VMProtect的GUI版本將這些地址標(biāo)記為外部。

    VMProtect在線訂購(gòu),享受特別優(yōu)惠噢~    立即搶購(gòu)>>>

    Aspose新版本

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();