Мысли, желания по поводу ExpiredData защиты.

Issues related to VMProtect
Post Reply
Kuzya69
Posts: 4
Joined: Sat Feb 29, 2020 2:44 pm

Мысли, желания по поводу ExpiredData защиты.

Post by Kuzya69 »

Как я понял, эта защита опирается на системное время компьютера. Поэтому обходится элементарным изменением системного времени (переустановкой даты-времени на компе). Предлагаю в функции VMProtect.SDK.SetSerialNumber(), VMProtect.SDK.GetSerialNumberState() и VMProtect.SDK.GetSerialNumberData() ввести необязательный входной аргумент этого системного времени. Чтобы эту ExpiredData сравнивать именно с ним. Для тех кому это не интересно, ничего не изменится. Ну а у таких как я появится возможность не давать пользователю "крутить" системное время. Или ввести этот аргумент только в функцию VMProtect.SDK.SetSerialNumber(), а в протекторе реализовать собственные системные часы, которые как раз и будут синхронизироваться по этому аргументу.
Admin
Site Admin
Posts: 2584
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Мысли, желания по поводу ExpiredData защиты.

Post by Admin »

Чем не устраивает собственная проверка VMProtectSerialNumberData.dtExpire после VMProtectSetSerialNumber и VMProtectGetSerialNumberData если у вас на руках есть "правильная" дата?
Kuzya69
Posts: 4
Joined: Sat Feb 29, 2020 2:44 pm

Re: Мысли, желания по поводу ExpiredData защиты.

Post by Kuzya69 »

Я не говорю, что сложно сделать свою проверку правильной даты и ExpiredData. Просто флаги состояния защиты будут указывать, что период действия еще не истек. А так все красиво получится, вызовешь данные о лицензии, а там "извините, время использования программы закончилось". Да и меньше кода городить. Все по фэншую, так сказать. Просто на данном этапе, чтобы в данных о лицензии высвечивалось именно сообщение о истекшем сроке действия, приходится перед каждым запросом состояния защиты, синхронизировать системные часы с правильным временем. А это отловить можно проще, чем когда я правильное время передам в ядро протектора.
Admin
Site Admin
Posts: 2584
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Мысли, желания по поводу ExpiredData защиты.

Post by Admin »

Просто флаги состояния защиты будут указывать, что период действия еще не истек.
Сделайте собственную обертку над VMprotectSetSerialNumber и передавайте туда правильное время. Я не вижу никакой проблемы.
Kuzya69
Posts: 4
Joined: Sat Feb 29, 2020 2:44 pm

Re: Мысли, желания по поводу ExpiredData защиты.

Post by Kuzya69 »

Зачем заворачивать VMprotectSetSerialNumber? Наоборот нужно заворачивать GetSerialNumberData() и GetSerialNumberState(), а SetSerialNumber нужно заворачивать только если используем его значение тут-же для проверки состояния. У меня она, SetSerialNumber, единожды вызывается, при старте, и только для "ввода серийника". Далее все, защищенные в демо-режиме, функции проверяются именно теми двумя функциями. Теперь представим, что я эти две обертки завиртуализую и заморфлю. Одна потеря производительности. Потом нужно еще защитить сам вызов этой обертки, опять виртуализация+морф, получу еще вторую потерю производительности.
А так у меня был-бы только один вызов, сразу апи-защиты, который я завиртуализую и заморфлю только один раз.

Code: Select all

if(VMProtect.SDK.GetSerialNumberState(currentDateTime) == VMProtect.SerialState.Success){...}
Ну очень удобно.
А еще лучше, как я уже говорил, когда системные часы есть в ядре протектора и синхронизируются только в SetSerialNumber. Ввел точное время и забыл, дальше только проверяй флаги состояния. Не придется думать, что эталонное время нужно периодически обновлять.
Я не заставляю вас это делать, я просто говорю, что так будет грамотнее. Я и тему назвал соответственно.
Admin
Site Admin
Posts: 2584
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Мысли, желания по поводу ExpiredData защиты.

Post by Admin »

Мы не будем ничего менять в SDK.
Kuzya69
Posts: 4
Joined: Sat Feb 29, 2020 2:44 pm

Re: Мысли, желания по поводу ExpiredData защиты.

Post by Kuzya69 »

Согласен, баги проще устранять, чем функциональность улучшать. :D
Post Reply