軟件保護(hù)工具VMProtect將許可系統(tǒng)集成到應(yīng)用程序(8):硬件鎖定
VMProtect是一種很可靠的工具,可以保護(hù)應(yīng)用程序代碼免受分析和破解,但只有在應(yīng)用程序內(nèi)保護(hù)機(jī)制正確構(gòu)建且沒有可能破壞整個保護(hù)的嚴(yán)重錯誤的情況下,才能實現(xiàn)最好的效果。
建筑保護(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)及最新資訊