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

    SDK功能


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

    VMProtect最新版下載

    SDK 功能可以集成到受保護(hù)應(yīng)用程序的源代碼中,以設(shè)置受保護(hù)區(qū)域的邊界,以檢測(cè)調(diào)試器或虛擬化工具。

    代碼標(biāo)記
    • VMProtectBegin
    • VMProtectBeginVirtualization
    • VMProtectBeginMutation
    • VMProtectBeginUltra
    • VMProtectBeginVirtualizationLockByKey
    • VMProtectBeginUltraLockByKey
    • VMProtectEnd
    服務(wù)功能
    • VMProtectIsProtected
    • VMProtectIsDebuggerPresent
    • VMProtectIsVirtualMachinePresent
    • VMProtectIsValidImageCRC
    • VMProtectDecryptStringA
    • VMProtectDecryptStringW
    • VMProtectFreeString
    許可功能
    • VMProtectSetSerialNumber
    • VMProtectGetSerialNumberState
    • VMProtectGetSerialNumberData
    • VMProtectGetCurrentHWID

    VMProtectBegin

    void VMProtectBegin(const char *MarkerName);

    識(shí)別代碼保護(hù)區(qū)域的開始的標(biāo)記,必須在受保護(hù)代碼塊的第一個(gè)命令(或過程或函數(shù)調(diào)用)之前調(diào)用 VMProtectBegin。MarkerName 定義標(biāo)記的名稱,類似于 VMProtect 中的“VMProtectMarker”+MarkerName。例如,標(biāo)記 VMProtectBegin('CheckRegistration') 將看起來像 VMProtectMarker “CheckRegistration”。如果未設(shè)置標(biāo)記的名稱,則以“VMProtectMarker”+marker_serial_number 的形式為其指定一個(gè)唯一名稱。你可以在 VMProtect 中設(shè)置給定受保護(hù)塊的編譯類型。

    VMProtectBeginVirtualization

    void VMProtectBeginVirtualization(const char *MarkerName);

    識(shí)別具有預(yù)定義 "虛擬化 "編譯類型的代碼保護(hù)區(qū)域的開始的標(biāo)記。MarkerName 定義了標(biāo)記的名稱,在進(jìn)一步使用 VMProtect 期間,無法更改此標(biāo)記的編譯類型。

    VMProtectBeginMutation

    void VMProtectBeginMutation(const char *MarkerName);

    識(shí)別具有預(yù)定 "突變 "編譯類型的代碼保護(hù)區(qū)域的開始的標(biāo)記。MarkerName 定義了標(biāo)記的名稱,在進(jìn)一步使用 VMProtect 期間,無法更改此標(biāo)記的編譯類型

    VMProtectBeginUltra

    void VMProtectBeginUltra(const char *MarkerName);

    識(shí)別預(yù)定義的“超(虛擬化+變異)”編譯類型標(biāo)識(shí)代碼保護(hù)區(qū)開始的標(biāo)記。MarkerName 定義標(biāo)記的名稱。在進(jìn)一步使用 VMProtect 期間,無法更改此標(biāo)記的編譯類型。

    VMProtectBeginVirtualizationLockByKey

    void VMProtectBeginVirtualizationLockByKey(const char *MarkerName);

    使用預(yù)定義的“虛擬化”編譯類型和啟用“鎖定到密鑰”選項(xiàng)標(biāo)識(shí)代碼保護(hù)區(qū)開始的標(biāo)記。MarkerName 定義標(biāo)記的名稱。在進(jìn)一步使用 VMProtect 期間,無法更改此標(biāo)記的編譯類型。

    VMProtectBeginUltraLockByKey

    void VMProtectBeginUltraLockByKey(const char *MarkerName);

    使用預(yù)定義的“虛擬化”編譯類型和啟用“鎖定到密鑰”選項(xiàng)標(biāo)識(shí)代碼保護(hù)區(qū)開始的標(biāo)記。MarkerName 定義標(biāo)記的名稱。在進(jìn)一步使用 VMProtect 期間,無法更改此標(biāo)記的編譯類型。

    VMProtectEnd

    void VMProtectEnd(void);

    識(shí)別代碼保護(hù)區(qū)結(jié)束的標(biāo)記。對(duì) VMProtectEnd 的調(diào)用必須放在受保護(hù)代碼塊的最后一個(gè)命令(過程或函數(shù)調(diào)用)之后。

    VMProtectIsProtected

    bool VMProtectIsProtected(void);

    如果文件由 VMProtect 處理,則 MProtectIsProtected 函數(shù)返回 True。

    VMProtectIsDebuggerPresent

    bool VMProtectIsDebuggerPresent(bool CheckKernelMode);

    VMProtectIsDebuggerPresent函數(shù)允許檢測(cè)應(yīng)用程序在調(diào)試器下的啟動(dòng)。結(jié)果(真/假)可以被應(yīng)用內(nèi)保護(hù)機(jī)制處理。如果CheckKernelMode=False,該函數(shù)檢查用戶模式的調(diào)試器(OllyDBG, WinDBG等)。如果CheckKernelMode=True,用戶模式和內(nèi)核模式的調(diào)試器(SoftICE,Syser等)。當(dāng)保護(hù)驅(qū)動(dòng)時(shí),CheckKernelMode的值沒有意義,因?yàn)轵?qū)動(dòng)總是在內(nèi)核模式下工作,所以內(nèi)核模式調(diào)試器的存在總是被檢查。

    VMProtectIsVirtualMachinePresent

    bool VMProtectIsVirtualMachinePresent(void);

    VMProtectIsVirtualMachinePresent函數(shù)允許檢測(cè)應(yīng)用程序在虛擬機(jī)工具下的啟動(dòng): VMware, Virtual PC, VirtualBox, Sandboxie. 結(jié)果(真/假)可以用應(yīng)用內(nèi)保護(hù)機(jī)制來處理。

    VMProtectIsValidImageCRC

    bool VMProtectIsValidImageCRC(void);

    VMProtectIsValidImageCRC函數(shù)檢測(cè)可執(zhí)行模塊在進(jìn)程的內(nèi)存中被改變的事實(shí)(只檢查不可改變的代碼和數(shù)據(jù)段)。結(jié)果(真/假)可以用應(yīng)用內(nèi)保護(hù)機(jī)制來處理。

    VMProtectDecryptStringA

    const char * VMProtectDecryptStringA(const char *Value);

    VMProtectDecryptStringA函數(shù)解密了ANSI字符串常量--Value。要解密常數(shù),你必須把它列入受保護(hù)對(duì)象的列表中。

    VMProtectDecryptStringW

    const wchar_t * VMProtectDecryptStringW(const wchar_t *Value);

    VMProtectDecryptStringW函數(shù)對(duì)Unicode字符串常數(shù)--Value進(jìn)行解密。要解密該常量,你必須將其納入受保護(hù)對(duì)象的列表中。

    VMProtectFreeString

    bool VMProtectFreeString(const void *Value);

    VMProtectFreeString 函數(shù)釋放為解密字符串分配的動(dòng)態(tài)內(nèi)存。釋放內(nèi)存不是必須的,但如果你這樣做 – 你必須使用此功能。如果 VMProtectDecryptStringA/VMProtectDecryptStringW 第二次使用相同的參數(shù)而不破壞先前解密的字符串,則不會(huì)分配額外的內(nèi)存。

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

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

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