|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Andrzej Novosiolov 2:5020/400 02 Jul 2001 12:50:48 To : Andrew Simontsev Subject : Re: Keygen -------------------------------------------------------------------------------- On Sun, 01 Jul 2001 10:41:23 +0400, Andrew Simontsev wrote: AN>>>> PS. То есть принцип такой: в кейгене вшит секретный ключ, в программе AN>>>> - открытый. > Эээ... Hу секретных ключа должно быть два (один у меня, другой у > пользователя)? См. выше. Кейген у тебя, программа у пользователя. Кейген секретным ключом шифрует, программа открытым ключом расшифровывает. > Hу я и хотел что-нибудь придумать, чтобы при каждой инсталляции > приходилось иметь новый ключ... Либо чтобы это зависело от компа... Если уж программа настолько ценна, что имеет смысл привязывать её к компу, то оптимальное решение - аппаратный ключ типа HASPа. Все остальные привязки - от лукавого. Либо они более-менее легко обходится, либо порождают ложные срабатывания защиты и головную боль легальных пользователей. AN>> 1. Проверять ключ не один раз при старте программы, а многократно, AN>> в самых разных и неожиданных местах. > А кстати насколько трудоемка эта операция? Зависит от алгоритма шифрования, размера ключа и мощности процессора. В тех реализациях, с которыми я сталкивался, расшифровка занимала пренебрежимо малое время по сравнению с файловыми операциями. Так что на каждый чих вешать не стоит, а где-нибудь в начале/середине длительных процедур - вполне. AN>> 2. Использовать не одну процедуру проверки ключа, а написать их AN>> несколько, функционально идентичных, но с разным кодом > Интересная, кстати, идея... Хотя мне кажется все-равно где-то код > будет совпадать (как-никак алгоритм-то один)... Я имел в виду простые отличия, вроде того, что деление можно реализовывать в виде целочисленного деления, комбинации сдвигов, деления с плавающей точкой, умножения на обратное число... Суть в том, чтобы нельзя было найти все процедуры расшифровки простым поиском характерной последовательности байт по exe-шнику. AN>> несколько отдельных массивов, закодированных независимо и AN>> использующихся в разных частях программы. При кодировании AN>> использовать регистрационные данные пользователя (имя, фамилию etc.) > Hу вроде бы все операции по кодированию/декодированию достаточно > трудоемки :( Достаточно простейшего, вроде A+B XOR C. Просто чтобы по анализу кода без данных нельзя было понять, что же за число там должно быть. AN>> 5. По возможности, обнаружив неправильный ключ, не вываливаться AN>> немедленно с криком "неправильный ключ", а некоторое время продолжать AN>> как бы нормальную работу, после чего сымитировать какой-нибудь AN>> естественно выглядящий фатальный глюк или баг. Тут мне подсказывают, что лучше всё же не имитировать глюки, а честно сообщать о неправильном ключе (хотя и с задержкой). Дабы не отпугивать потенциальных легальных пользователей, пользующихся ворованными ключами - мол, увидят, что программа глюкавая, и покупать не станут. Hе знаю, не знаю... При наличии конференции пользователей такие "глюки" позволяют отловить многих любителей халявы. Они сами возмущённо признаются :) Характерный пример - самонажимающаяся клавиша F7 при кривой хакерской регистрации FARа. ... 2:463/1124.5@fidonet, ICQ 8481158, http://surf.to/andrzej --- ifmail v.2.15dev5 * Origin: SoftElegance (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/2080ca895e26.html, оценка из 5, голосов 10
|