Re[2]: Выбор протектора - 2023
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 03.10.23 13:26
Оценка:
Здравствуйте, Khimik, Вы писали:

K>кто-нибудь пробовал полностью удалить из триальной версии некоторые фичи?


Я двадцать лет только так и делаю. Все порываюсь сделать защиту с ключом, но все руки не доходят.
Re[4]: Выбор протектора - 2023
От: Aquilaware  
Дата: 03.10.23 13:29
Оценка: +1
Здравствуйте, Khimik, Вы писали:

K>У меня тогда заодно вопрос по программированию в Delphi: если я правильно понимаю, можно не комментировать код, а сделать булеву константу, и этот код поместить в блок if константа then begin end, тогда это будет эквивалентно комментированию, т.е. если константа=false, то в экзешник этот код не пойдёт. Всё правильно?


Это поведение зависит от конкретного компилятора и от режима компиляции (debug/release). Лучше всего проверить это поведение на практике. Например, разместить в условно-выполняемом блоке кода уникальную строку, а затем пытаться находить эту строку в исполняемом файле с помощью поиска по файлу. Если компилятор поддерживает удаление неиспользуемого кода и оптимизации включены, то по идее, такой код никогда не должен попадать в релизный исполняемый файл.
Re[4]: Выбор протектора - 2023
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 03.10.23 13:39
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Delphi: если я правильно понимаю, можно не комментировать код, а сделать булеву константу, и этот код поместить в блок if константа then begin end, тогда это будет эквивалентно комментированию


В общем случае — не будет. Это плохой, негодный способ. Ищите в Delphi условную трансляцию/компиляцию, которая по условию включает или не включает в исходный текст определенные блоки (не только операторы, но и определения, объявления, управляющие конструкции вроде var/const/procedure и т.п.). То есть, аналог сишного препроцессора.
Re[5]: Выбор протектора - 2023
От: Khimik  
Дата: 03.10.23 13:49
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

K>>Delphi: если я правильно понимаю, можно не комментировать код, а сделать булеву константу, и этот код поместить в блок if константа then begin end, тогда это будет эквивалентно комментированию


ЕМ>В общем случае — не будет. Это плохой, негодный способ. Ищите в Delphi условную трансляцию/компиляцию, которая по условию включает или не включает в исходный текст определенные блоки (не только операторы, но и определения, объявления, управляющие конструкции вроде var/const/procedure и т.п.). То есть, аналог сишного препроцессора.


Эти ifdef-ы я в Delphi никогда не любил, потому что пока не знаю, как их поменять одой строкой в другом модуле. Я объявляю константами разные параметры компиляции вроде включения сборщика мусора; а тут ведь нельзя, если я правильно понимаю, скормить булеву константу директиве ifdef? Что ей вообще можно кастомного указать?
И ещё вопрос: если я скомпилирую две версии — триальную и окончательную, и буду присылать ссылку на окончательную после покупки, насколько велика возможность, что хакер купит программу и уже окончательную версию начнёт ломать. Если это актуально, может вообще компилировать отдельный билд для каждого покупателя индивидуально (моя программа относительно дорогая, так что может и сойдёт).
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[2]: Выбор протектора - 2023
От: AWSVladimir  
Дата: 03.10.23 14:07
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Я вот подумал. А кто-нибудь пробовал полностью удалить из триальной версии некоторые фичи? Не просто встроить проверку, а закомментировать код, чтобы крякерам самим пришлось это писать. А когда юзер купит лицензию — присылать ему ссылку на полноценную версию


Блин, это делается 3-мя строчками
{$IFDEF FULLWORK}
{$ELSE}
{$ENDIF}

но не защищает от скрамеров, рефрандов, покупки на шару (если нет привязки к HardId и без привязки проверок онлайн лицензий).
И другой вопрос, как в триале юзер проверит функционал, если его не будет?
Re[6]: Выбор протектора - 2023
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 03.10.23 14:10
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Эти ifdef-ы я в Delphi никогда не любил, потому что пока не знаю, как их поменять одой строкой в другом модуле.


Не понял. В чем именно сложности?

K>нельзя, если я правильно понимаю, скормить булеву константу директиве ifdef?


Булеву — нельзя, можно лишь абстрактный идентификатор, определяемый в $Define. Убого, конечно, но хоть что-то. Вместе с {$MACRO ON} можно подставлять строки, определенные $Define.

K>Что ей вообще можно кастомного указать?


В $IfDef — ничего. Там проверка только на то, определен ли макрос.

K>насколько велика возможность, что хакер купит программу и уже окончательную версию начнёт ломать.


Если ему надо, то купит и начнет.

K>компилировать отдельный билд для каждого покупателя индивидуально


Если не лень, то можно.
Re[3]: Выбор протектора - 2023
От: Khimik  
Дата: 03.10.23 14:11
Оценка:
Здравствуйте, AWSVladimir, Вы писали:

AWS>Блин, это делается 3-мя строчками

AWS>{$IFDEF FULLWORK}
AWS>{$ELSE}
AWS>{$ENDIF}

В данном случае FULLWORK это что? Это не константа которую объявляет программист в своём коде?

AWS>И другой вопрос, как в триале юзер проверит функционал, если его не будет?


Бывают варианты функционала, которые и так понятно что делают, специально показывать не надо. А у меня это наверно будет утилита, которую можно посмотреть в выложенном мной на youtube видео.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[4]: Выбор протектора - 2023
От: rudzuk  
Дата: 03.10.23 14:36
Оценка:
Здравствуйте, Khimik, Вы писали:

K> У меня тогда заодно вопрос по программированию в Delphi: если я правильно понимаю, можно не комментировать код, а сделать булеву константу, и этот код поместить в блок if константа then begin end, тогда это будет эквивалентно комментированию, т.е. если константа=false, то в экзешник этот код не пойдёт. Всё правильно?


Верно. Хотя для этого существуют директивы условной компиляции.

{$ifdef TRIAL}
  ShowMessage('TRIAL version');
{$else}
  ...
{$endif}

{$if defined(TRIAL) or SomeOtherCondition}
  ShowMessage('TRIAL version');
{$else}
  ...
{$ifend}

{$if YourBooleanConstantExperssion}
  ...
{$else}
  ...
{$ifend}


Дефайн TIRAL можно задать, как в коде (будет действовать только локально), так и через директиву компиляции или настройки проекта (будет доступен глобально).
avalon/3.0.2
Re[3]: Выбор протектора - 2023
От: JustPassingBy  
Дата: 03.10.23 14:53
Оценка:
Здравствуйте, Aquilaware, Вы писали:

A>Если позволяет протектор, то такое можно сделать и его штатными средствами без необходимости иметь несколько скомпилированых дистрибутивов ПО. (Код остаётся зашифрованным пока не будет введен правильный ключ. Поскольку у кракера нет ключа, то доступ к коду он получить не может, и тот участок кода остается зашифрованным и криптографически недоступным для кракера)


Скардят разок, и все дела. Самый 100% способ тогда уж просто вынести функционал на сервер. Или всю прогу как SaaS.
Re[4]: Выбор протектора - 2023
От: AWSVladimir  
Дата: 03.10.23 15:01
Оценка:
Здравствуйте, Khimik, Вы писали:

AWS>>Блин, это делается 3-мя строчками

AWS>>{$IFDEF FULLWORK}
AWS>>{$ELSE}
AWS>>{$ENDIF}

K>В данном случае FULLWORK это что? Это не константа которую объявляет программист в своём коде?


Определение Define, делается несколькими способами
1. в модуле
unit MyUnit
{$Define FULLWORK} // действует на юнит

2. ч/з include // действует где подключен include
{$I mydefine.inc}

файл mydefine.inc
{$Define FULLWORK}

3. В проекте
Options->Delphi Compiler->Conditional Defines // действует на все файлы в проекте
Re[4]: Выбор протектора - 2023
От: drVanо Россия https://vmpsoft.com
Дата: 03.10.23 15:04
Оценка: -1
Здравствуйте, Khimik, Вы писали:

K>В данном случае FULLWORK это что? Это не константа которую объявляет программист в своём коде?


С такими знаниями вам протектор не нужен от слова "совсем".
Отредактировано 03.10.2023 15:05 drVanо . Предыдущая версия .
Re[5]: Выбор протектора - 2023
От: wantus  
Дата: 03.10.23 18:27
Оценка: +1
I>тут главное не переборщить — иначе подумают что сама программа кривая и будут негатив писать везде

Никто негатив про ломаные версии в обычных форумах и дискуссиях не пишет. Это всё байки. Все прекрасно понимают, что они пользуются сломаным софтом со всеми вытекающими.
Re[5]: Выбор протектора - 2023
От: AWSVladimir  
Дата: 03.10.23 19:45
Оценка:
Здравствуйте, drVanо, Вы писали:

V>С такими знаниями вам протектор не нужен от слова "совсем".


Вань, что там со сливами?
как их увели то?
Как лучше защитить проги старыми версиями VMProtect.
Re[6]: Выбор протектора - 2023
От: icezone  
Дата: 04.10.23 04:10
Оценка: +1
Здравствуйте, wantus, Вы писали:

W>Никто негатив про ломаные версии в обычных форумах и дискуссиях не пишет. Это всё байки. Все прекрасно понимают, что они пользуются сломаным софтом со всеми вытекающими.


еще как пишут, и на форуме и в поддержку жалуются

ну и крякерские форумы в выдаче тоже встречаются, я по одному мониторю успешность взлома
Re[7]: Выбор протектора - 2023
От: wantus  
Дата: 04.10.23 08:07
Оценка:
Здравствуйте, icezone, Вы писали:

I>Здравствуйте, wantus, Вы писали:


W>>Никто негатив про ломаные версии в обычных форумах и дискуссиях не пишет. Это всё байки. Все прекрасно понимают, что они пользуются сломаным софтом со всеми вытекающими.


I>еще как пишут, и на форуме и в поддержку жалуются


На что жалуются? На побочные эффекты от плохого взлома?
Re[8]: Выбор протектора - 2023
От: icezone  
Дата: 08.10.23 08:27
Оценка:
Здравствуйте, wantus, Вы писали:

W>На что жалуются? На побочные эффекты от плохого взлома?


именно так, пищут что в новой версии баг, после того как я меняю проверки в коде
они же не знают, что код ошибки их выдает
Re[9]: Выбор протектора - 2023
От: Aquilaware  
Дата: 08.10.23 14:19
Оценка: +1
Здравствуйте, icezone, Вы писали:

I>именно так, пищут что в новой версии баг, после того как я меняю проверки в коде

I>они же не знают, что код ошибки их выдает

Есть очень простое решение.

"Thank you for reporting about this issue. Unfortunately, we cannot reproduce it on our side. Please ensure that you use the original software package, the one whose integrity wasn't potentially violated by unknown 3rd parties."
Re[10]: Выбор протектора - 2023
От: icezone  
Дата: 08.10.23 18:40
Оценка: 1 (1)
Здравствуйте, Aquilaware, Вы писали:

A>Есть очень простое решение.


A>"Thank you for reporting about this issue. Unfortunately, we cannot reproduce it on our side. Please ensure that you use the original software package, the one whose integrity wasn't potentially violated by unknown 3rd parties."


с этим понятно, просто лучшим вариантом оказалось не выдавать ошибку, а тупо не выполнять работу
в этом случае уже пишут что кряк кривой, а не программа
Re[11]: Выбор протектора - 2023
От: Khimik  
Дата: 11.10.23 13:59
Оценка: :)
У меня ещё остались вопросы. Сейчас думаю купить The Enigma Protector и включить его базовые опции, не шифрование кода, а что-то вроде этого:

— Анти-дебаггер;
— Контрольная сумма файла;
— Может быть, ещё защита от модификации файла в памяти;
— Защита строк в The Enigma Protection.

Подскажите, что из этого имеет свои подводные камни вроде тех же срабатываний антивирусов?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[12]: Выбор протектора - 2023
От: Khimik  
Дата: 11.10.23 14:10
Оценка:
Ещё хотелось бы немного ликбеза, что такое проверка контрольной суммы и как это сделать самому. Т.е. в принципе вроде всё понятно — посчитать хеш файла и проверять время от времени, не изменился ли он. Может как раз лучше это сделать самому, без привлечения протектора, поскольку можно контролировать время срабатывания — если программу взломают, пусть она перестанет запускаться через полгода, с сообщением что обнаружен взлом.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.