• <menu id="w2i4a"></menu>
  • logo VMProtect用戶手冊

    文檔首頁>>VMProtect用戶手冊>>軟件保護(hù)工具VMProtect將許可系統(tǒng)集成到應(yīng)用程序(8):硬件鎖定

    軟件保護(hù)工具VMProtect將許可系統(tǒng)集成到應(yīng)用程序(8):硬件鎖定


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

    下載VMProtect  購買VMProtect

    建筑保護(hù)總是經(jīng)歷兩個主要步驟:開發(fā)和發(fā)布。至于許可,首先創(chuàng)建一個應(yīng)用程序,將保護(hù)集成到其中,然后添加檢查和功能限制。只有經(jīng)過全面測試,才能將產(chǎn)品提供給用戶并開始第二階段。測試受保護(hù)的應(yīng)用程序是一個復(fù)雜的過程,因為需要確保所有檢查和條件跳轉(zhuǎn)都能正常運(yùn)行。

    許可系統(tǒng)提供“開發(fā)者模式”(AKA“測試模式”),在此工作模式下,不對應(yīng)用程序應(yīng)用任何保護(hù),并且在配置文件中調(diào)整系統(tǒng)對提供的序列號的反應(yīng)。當(dāng)應(yīng)用程序沒有錯誤并且它正確地與許可系統(tǒng)一起使用時,VMProtect將“測試”許可模塊替換為執(zhí)行實際序列號檢查的真實模塊。


    接收硬件標(biāo)識符

    在鎖定硬件之前,必須接收硬件的標(biāo)識符,然后將標(biāo)識符放入序列號中。因為將其傳遞給許可系統(tǒng)時,將檢查標(biāo)識符是否匹配。首先,將main()函數(shù)減少到最低限度:

    int main(int argc,char ** argv)
    { 
            int nSize = VMProtectGetCurrentHWID(NULL,0); 
            char * buf =新的char [nSize]; 
            VMProtectGetCurrentHWID(buf,nSize); 
            printf(“ HWID:%s \ n”,buf); 
            刪除[] buf; 
            返回0; 
    }

    通過運(yùn)行程序,將會收到一個默認(rèn)的測試硬件標(biāo)識符:

    HWID:myhwid

    將以下行添加到ini文件中可更改標(biāo)識符:

    MyHWID = test

    當(dāng)我們事后運(yùn)行程序時可以看到,系統(tǒng)認(rèn)為“test”是PC的硬件標(biāo)識符:

    HWID:測試

    注意:該程序僅在使用VMProtect處理后才顯示真實的硬件標(biāo)識符。

    硬件鎖定序列號

    要將測試序列號鎖定到硬件,應(yīng)該在ini文件中再增加一行。這次,我們定義“put into”序列號的標(biāo)識符:

    KeyHWID = test

    然后,使main()復(fù)雜一點。它將傳遞一個序列號并分析其獲得的結(jié)果:

    int main(int argc,char ** argv)
    { 
            int nSize = VMProtectGetCurrentHWID(NULL,0); 
            char * buf =新的char [nSize]; 
            VMProtectGetCurrentHWID(buf,nSize); 
            printf(“ HWID:%s \ n”,buf); 
            刪除[] buf; 
            
            char * serial =“ Xserialnumber”; 
            int res = VMProtectSetSerialNumber(序列); 
            print_state(res); 
            返回0; 
    }

    運(yùn)行代碼后,將看到以下結(jié)果:

    HWID:測試
    狀態(tài)= 0

    許可系統(tǒng)已將當(dāng)前的硬件標(biāo)識符與序列號中的標(biāo)識符進(jìn)行了比較。標(biāo)識符相等,因此VMProtectSetSerialNumber()函數(shù)返回0 –序列號匹配。

    現(xiàn)在,讓我們嘗試在另一個硬件上“運(yùn)行”程序:只需將ini文件中MyHWID參數(shù)的值從“test”更改為“new test”,然后再次運(yùn)行程序:

    HWID: new test
    state = SERIAL_STATE_FLAG_BAD_HWID

    這一次,許可系統(tǒng)返回了SERIAL_STATE_FLAG_BAD_HWID標(biāo)志,這意味著真實的硬件標(biāo)識符與序列號中存儲的標(biāo)識符不匹配。

    我們在屏幕上看到的當(dāng)前標(biāo)識符為“new test”,而序列號為“test”。如果將ini文件中的KeyHWID參數(shù)更改為“new test”,也可以讓序列號在該“hardware”上運(yùn)行。


    -- 未完待續(xù) --


    更多VMProtect資源、優(yōu)惠活動,請點擊【慧都客服】了解

    掃描關(guān)注“慧聚IT”微信公眾號,及時獲取最新動態(tài)及最新資訊

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

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