步驟 1.10:用戶數(shù)據(jù)
VMProtect 是新一代軟件保護(hù)實用程序。VMProtect支持德爾菲、Borland C Builder、Visual C/C++、Visual Basic(本機)、Virtual Pascal和XCode編譯器。
同時,VMProtect有一個內(nèi)置的反匯編程序,可以與Windows和Mac OS X可執(zhí)行文件一起使用,并且還可以鏈接編譯器創(chuàng)建的MAP文件,以快速選擇要保護(hù)的代碼片段。 為了輕松實現(xiàn)應(yīng)用程序保護(hù)任務(wù)的自動化,VMProtect實現(xiàn)了內(nèi)置腳本語言。VMProtect完全支持Windows系列的32/64位操作系統(tǒng)(從Windows 2000開始)和Mac OSX(從版本10.6開始)。重要的是,無論目標(biāo)平臺如何,VMProtect都支持所有范圍的可執(zhí)行文件,即Windows版本可以處理Mac OS X版本的文件,反之亦然。
VMProtect 是保護(hù)應(yīng)用程序代碼免遭分析和破解的可靠工具,但只有在正確構(gòu)建應(yīng)用程序內(nèi)保護(hù)機制并且沒有可能破壞整個保護(hù)的典型錯誤的情況下才能最有效地使用。
有其他問題請咨詢加密解密技術(shù)QQ群:766135708
序列號最多可容納 255 個字節(jié)的任意數(shù)據(jù),許可系統(tǒng)按原樣傳遞給程序。數(shù)據(jù)可以包含有關(guān)銷售的任何其他信息、完整版操作所需的數(shù)據(jù)或其他內(nèi)容。讓我們修改我們的main()函數(shù),讓它從序列號中讀取數(shù)據(jù)并將它們顯示在屏幕上:
int main(int argc, char **argv) { char *serial = "Xserialnumber"; int res = VMProtectSetSerialNumber(serial); print_state(res); if (res) return 0; VMProtectSerialNumberData sd = {0}; VMProtectGetSerialNumberData(&sd, sizeof(sd)); printf("Serial number has %d byte(s) of data\n", sd.nUserDataLength); for (int i = 0; i < sd.nUserDataLength; i++) printf("%02X ", sd.bUserData[i]); printf("\n"); return 0; }
我們還將 Ini 文件縮減為:
[TestLicense] AcceptedSerialNumber=Xserialnumber
現(xiàn)在,我們運行程序并確保我們的序列號正常工作,但不包含任何數(shù)據(jù):
state = 0 Serial number has 0 byte(s) of data
要將新的用戶數(shù)據(jù)添加到序列號中,我們需要在 ini 文件中創(chuàng)建 UserData 變量,并以 HEX 格式為其分配數(shù)據(jù)。符號必須成對出現(xiàn),即一行的長度必須是 2 的倍數(shù)。像這樣:
UserData=010203A0B0C0D0E0
在這種情況下,如果我們運行該程序,我們將收到以下結(jié)果:
state = 0 Serial number has 8 byte(s) of data 01 02 03 A0 B0 C0 D0 E0
以上便是本篇文章的分享,如果您有任何疑問或者想獲取更多產(chǎn)品試用/授權(quán)/價格信息,可以咨詢我們的在線客服了解~