Pull to refresh

Comments 17

Кстати, а куда прописывать тот факт, что программа зарегистрирована? В реестр, в секретный файл? Или есть более удобные варианты?

Зачем это куда-то прописывать? Сохраняешь код и проверяешь его при запуске.

Статья провалялась в песочнице с 2003 года, судя по листингам на Delphi, да и постановке проблемы. А еще понравилось: пишите на php и mysql ))

Так это я ее оттуда вытащил, что ли?

Понадобилось по быстрому привязать тестовую программу к компьютеру. Задал запрос https://yandex.ru/search/?text=как+привязать+программу+к+компьютеру&lr=136871&src=suggest_T

Первой ссылкой выскочил этот пост из песочницы. Причем оказалось то что надо!

Надеюсь, вы используете полученные знания в качестве общей концепции и не будете использовать "md5 шифрацию" getMem

Вы имеете ввиду проблемы привязки к объему памяти?

У MD5 относительно легкое нахождение коллизий при шифровании, что сводит его уровень защищенности на весьма низкий уровень.

Зачем тут искать коллизии? Во-вторых, коллизию, чтобы она была названием компа и пользователя, вы не найдёте. Так что в этом плане тут проблемы нет.
Только хотел спросить как там в начале нулевых а оно и правда оттуда =)

Пользователь зарегистрирован в 2012 году, видимо тогда и написал статью.

Такая защита отключается за 10-15 минут.

Код защиты должен быть размазан по коду программы. Серийный номер должен непосредственно участвовать в коде обработки данных программой.

Подробнее - в книге "Техника защиты компакт-дисков от копирования" Николая Лихачёва.

Т.е. проверка введенного серийника в разных местах программы разными процедурами? Или как?

ну вообще то был когда-то вмпротект - так там наворочено ого как - против дизасемблера внутри ехе виртуальна машина со своей очень сложной системой команд внутри которой и хранится код привязки - да еще и части бинарника ехе кодируются серийником. Вот вроде статья про него https://habr.com/ru/sandbox/26302/

Виртуальная машина не сложная, просто она генерирует тонны мусора и вместо того, чтобы просто сложить два числа, на выходе генерируются 10 операция умножения, деления, вычитания. Это усложняет понимание происходящего, не более.
Только не проверки серийника, а использование его компонентов в логике.
Утрированный пример: пользователь ввёл дату в программе, мы к ней добавили номер диска и теперь храним и работает с этим значением. Когда нам эта дата снова потребуется, мы вычтем из неё номер диска, но который уже храниться в ключе регистрации. В итоге, если ты просто поменял флаг в проверке регистрации, то на выходе у тебя получится мусор, потому, что ключ и железо не соответствуют друг другу, и программа упадёт.
И это как минимум тебя заставит разобраться с алгоритмом ключа, а не просто изменить один прыжок.

Похожая защита (привязка к оборудованию) реализована в 1С.

Но там чуть сложнее - флешки не участвуют в списке оборудования, увеличение памяти не считается изменением.

UFO landed and left these words here
Sign up to leave a comment.

Articles