Ответ trapwalker в «Конец реверс-инжинирингу: релиз Markov Shield AI — софт, который "намертво" привязывает код к железу»3
Воспоминание разблокировано. Или как НЕ ТРАДИЦИОННО использовать ПО.
В районе нулевых была написана софтина по управлению компьютерным клубом в котором мне посчастливилось админом штаны просиживать. Естественно из-за лени, что бы в тетрадку не писать - какой комп и на сколько времени брали и сколько бабла отдали. И написана она была на VB5. И в один прекрасный день хозяин и говорит, что несколько клубов тоже её бы хотели и даже за деньги. Я то и не против лишних копеек. Покупать на совсем за дорого, естественно они не возжелали, но согласились платить помесячно. И тогда я решил что надо куда то вписывать данные о том, до какого срока программа может работать. Т.к. с VB я уже много работал, то был в курсе что шапке, скомпилированного ЕХЕ-шника, есть пустое место. И вот, воспользовавшись INNO-Setup я сделал инсталлятор, что спрашивает название клуба для вывода на экран и прописывает его, закодировав чуток, в распакованный файлик. Ну а в файле ключа так же кодировалось название и срок использования - примитивно, через перемешивание и добавления лишних символов и хранился он исключительно на админском ПК. Т.е. в следующий раз мне достаточно было передать обновлённый файл ключа. Естественно со сверкой ключа на управляющей программе у админа проблем не возникает, но вот на клиентских машинах... А там всё тривиально, проверка наличия ключа (он забирается с админа при запуске), даты в нём и соответствия имени клуба зашитого в ЕХЕ-шник. Сама же система "вредительства" проста до безобразия. Чем дальше прошёл срок, тем чаще срабатывает принудительная перезагрузка ПК. Естественно в рандомный промежуток времени после запуска программы. На админском же просто выдаётся дата активности ключа с подсветкой фона: белое, жёлтое. Т.е. даже в просроченное время всё продолжает работать, разве что лишая клиентов клуба комфортного времени отдыха.
Ну а что если без файла ключа? ПО просто не работает - выключается, а т.к. оно было встроено у клиентов вместо стандартного проводника, то и комп просто выключается. При этом админское место сразу выдаёт транспарант, что ключ не найден, купить там-то (собственно при просроке это же окно) и нажмите ОК для выхода. Ну а в случае просроченного ключа админка просто продолжает работать как ни в чём не бывало.
Да-да. Это были лихие время и совсем сильно наказывать было бы явно себе дороже.
Стоит сказать что попытки работать без продления, как и стырить ключ с другого клуба были. Но вот кул-хацкеров нанимать, для взлома защиты, оказалось дороже, чем заплатить за продление.
Ну и конечно, этот приём с пустым местом в скомпилированном файле, я после использовал много где ещё, т.к. выяснилось что не только VB5 грешил таким образом. Например, вписывал в него серийник одной из железяк при запуске, если там было пусто. А если не пусто, то сравнивал его с текущий железкой. Вот такая примитивность в качестве защиты от копирования. 😎







