Получение информации о серийном номере
Получение информации о серийном номере
Итак вопрос в следующем, мне необходимо получить информацию о серийном номере своего проекта так, как это делает VMProtect когда импортируешь серийник в проект, но средствами своего приложения, может подскажете куда смотреть?
Re: Получение информации о серийном номере
VMProtectSetSerialNumber + VMProtectGetSerialNumberData
Re: Получение информации о серийном номере
Bad HWID и инфу не выдает, так как HWID привязан к другому компу и серийник изначально не проходит проверку на моем компе.
Upd:
Версия компилятора VMP 2.13.5
Upd:
Версия компилятора VMP 2.13.5
Re: Получение информации о серийном номере
Вы что хотите сделать (какую решаете задачу)?
Re: Получение информации о серийном номере
Переезжаю на новую платформу, что бы в ручную не перебивать в новую БД пользователей, мне необходимо получить имеющийся у пользователя ключ, считать с него информацию, занести в новую БД на стороне сервера.
Re: Получение информации о серийном номере
Если честно, то я не могу понять в чем проблема. Есть старая БД, есть новая БД - вы не знаете как залить данные из старой БД в новую?
Re: Получение информации о серийном номере
Не, я то знаю как сделать, но гораздо проще получить всю инфу прям из серийника, метод выше работает только при условии отсутствия привязки к железу.
[offtop]
Да и еще хотелось бы иметь выбор, к чему вязать, а еще лучше вместе с этим сделать возможным подключение своих алгоритмов генерации HWID.[/offtop]
[offtop]
Да и еще хотелось бы иметь выбор, к чему вязать, а еще лучше вместе с этим сделать возможным подключение своих алгоритмов генерации HWID.[/offtop]
Re: Получение информации о серийном номере
Скрипт на LUA, который показывает данные из серийника:
Запуск протектора:
По поводу собственных алгоритмов генерации HWID - вы можете уже сейчас использовать поле UserData под ваш собственный HWID и проверять его после VMProtectSetSerialNumber:
Code: Select all
-- parse key file
local key_found = false
local key = nil
local command_line = vmprotect.commandLine()
for _, arg in ipairs(command_line) do
if (key_found == true) and (not key) then
local stream = io.open(arg, "r")
if not stream then
error("key file not found")
end
key = stream:read("*all")
stream:close()
end
if (arg == "-key") then
key_found = true
end
end
if key then
local licenses = vmprotect.core():licenses()
local license = licenses:itemBySerialNumber(key)
if not license then
license = licenses:importLicense(key)
end
if not license then
error("Status: Invalid")
end
local info = license:info()
if not info then
error("Status: Invalid")
end
print("Customer Name: ", info:customerName())
print("Customer Email: ", info:customerEmail())
if license:blocked() then
error("Status: Blocked")
end
if bit32.btest(info:flags(), 4) then
local dt = info:expireDate("%Y%m%d")
print("Expire Date: ", dt)
if os.date("%Y%m%d") > dt then
error("Status: Expired")
end
end
if bit32.btest(info:flags(), 8) then
local max_build_date = info:maxBuildDate("%Y%m%d")
print("Max Build Date: ", max_build_date)
if os.date("%Y%m%d") > max_build_date then
error("Status: Expired")
end
end
print("Status:", "Success")
end
Code: Select all
VMProtectCon "" -key FILE_WITH_SERIAL_NUMBER -pf FILE_WITH_LICENSING_PARAMETERS
Code: Select all
if (VMProtectSetSerialNumber(serial) == SERIAL_STATE_SUCCESS) {
bool is_valid_hwid = false;
VMProtectSerialNumberData sd = {0};
if VMProtectGetSerialNumberData(&sd, sizeof(sd)) {
// check your HWID here
}
if (!is_valid_hwid)
VMProtectSetSerialNumber(NULL); // clear serial number inside VMProtect
}
Re: Получение информации о серийном номере
Ну вот, попробую, если будут вопросы отпишусь.
Спасибо!
Спасибо!