![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обмануть хакера-крякера? [D4, D5, D6, Win95/98, WinME, NT4, Win2k, WinXP]
Rooman © (2002-03-22 19:39:00)У меня такой вопрос. Я делаю защиту shareware программы. Допустим, до регистрации в программе действуют некоторые ограничения, которые снимаются после регистрации программы законным путем. Допустим, я привязываю программу к конкретной машине и пользователю. Например, в качестве привязки используется имя пользователя, его ИНН, данные БИОС и винчестера.
Пользователь, оплатив программу, получает индивидуальный пароль, назвав который по телефону и сообщив ключевой идентификационный номер по телефону же получает ответный код.
Моя задача: реализовать функцию проверки правильности регистрационного кода так, чтобы хакер-крякер с большим трудом смог отыскать это место в программе. Как это лучше сделать? Есть идея - создавать отдельный поток в момент срабатывания таймера (компонента TTimer). Как лучше всего это реализовать? Подскажите, пожалуйста...
Magellan (2002-04-03 19:27:00) [1]ASP не поможет...
Вот здесь: www.reversing.net полно инфы о взломе ASP, VCL и етс. почитай, может передумаешь писать шарывары :) Бесполезняк
Andrews (2002-04-03 19:22:00) [2]>Rooman ©
> Тогда, даже при малой коммерческой ценности люди предпочтут купить задешево, чем сидеть ломать... ИМХО, конечно:)
Отнюдь не факт, как правила у отечественного юзверя три варианта развития событий
1. Снести и забыть...
2. Все таки сломать - найти кряк...
3. Снести и заняться поисками "безпроблемного" аналога...
Купить может захотеться только после рассмотрения предыдущих вариантов...
eSKey (2002-04-03 18:49:00) [3]Если программу привязывать к каким-то пользовательским данным, то, имхо, можно сделать так :
Имеется программа, не содержащая никаких юзер-данных, скомпиленная с пуб-ключом. Работает только в демо-моде. Юзер , который хочет купить ее специальной утилиткой генерирует хэш, "дайджест" текста, отправляет ее автору. Автор подписывает этот хэш своим секретным ключом, получает деньги %) и отправляет полученную ЦП юзеру. Ну а программа используя стандартную проверку проверяет соотв. данных/подписи, используя ключ в своем теле. Разумеется придется делать проверку целостности своего ключа, опять же по хэшу (ой).
Какие тут пути взлома: ну конечно, можно убрать/сломать проверку целостности, так на то и использовать потоки+какие-нибудь случайные события виндов. А неизменность кода кстати, правда - небольшой декриптор с пуб. ключом, а остальной код зашифрован авторским секретным ключом. Тоже снимается при желании, но все-же...
Вообще, имеет смысл если эти уникальные данные юзера принципиальны - например его реквизиты для бухгалтерской проги или неизменяемая база данных.
Vogul (2002-04-02 12:45:00) [4]Предлагаю вариант маскировки проверки защиты под обычный вызов.
Допустим в программе есть некий ресурс типа картинки, в который зашит код регистрации, допустим методом стеганографии, а при загрузке этой картинки, проверять код. Можно даже не просто картинку, а какой-нибудь наворот с крутыми прибамбасами, чтобы еще более замаскировать проверку.
хакер (2002-04-02 12:21:00) [5]присылай свою прогу, взлом пришлю ровно через сутки... спорим?
Rooman (2002-03-31 20:30:00) [6]
> JibSkeart © (31.03.02 19:45)
> но если
> программа у тебя будет действовать так :
Разумеется, если я оперирую динамическими переменными, таких глупостей я делать не собираюсь;)
JibSkeart (2002-03-31 19:45:00) [7]нет ты меня не понял
я говорил про то что допустим у тебя
да действительно нелзя выловить рег ключ
но если
программа у тебя будет действовать так :
If my_Proge_Registering Then --- вот .то уже глуппость ...
begin
некоторые функции доступны
типо
Button1.Enabled:=True; и во это уже глуппость ...
end
то мне даже твой ключь знать ненадо будет !
а так в принципе то прав насчет потоков
хотя по статистике
программу шароварную ломают уже на следуюший день
(если она интересна народу)
Rooman (2002-03-31 18:37:00) [8]
> Так что затраты на защиту должны быть адекватны по крайней
> мере комерческой ценности программы
Затраты на защиту должны быть адекватны действиям взломщика, имхо. Тогда, даже при малой коммерческой ценности люди предпочтут купить задешево, чем сидеть ломать... ИМХО, конечно:)
Rooman (2002-03-31 18:32:00) [9]
> Andrews © (26.03.02 19:17)
Какие нафиг затраты на защиту?
Пару лишних строчек написать по определенным правилам, с учетом защиты нормальному программисту не проблема! А вот сломать будет сложно!
Andrews (2002-03-26 19:17:00) [10]>Rooman ©
Опять же про файл serial.txtне забывай... :o)
Andrews (2002-03-26 19:10:00) [11]>Rooman © (23.03.02 07:11)
> "Все равно сломают" - как часто я слышу эту фразу без всякого обоснования.
А ты уверен, что твою прогу захотят ломать...
Ломают то ХИТЫ, а не все подряд и утверждение "Все равно сломают" относится к ним...
Так что затраты на защиту должны быть адекватны по крайней мере комерческой ценности программы
P.S. Надеюсь анекдот про "Неуловимого Джо" помнишь :o)
alexadvanser (2002-03-26 18:31:00) [12]Господа, Вы знаете в чем прикол?
На каком-то сайте видел AsProtect c кряком (не который проги вскрывает, а который позволяет AsProtect работать без покупки...)
И чего тогда эта прога стоит...?
Просто вот именно нужно чаще играть на психологических факторах: изменение "обнаруживать" дней через 15, да и то по умному... Типа программа выполнила некорректную операцию, обратитесь тудато за поддержкой... А там клиента ловить сразу надо...
И т.п....
deleon (2002-03-25 11:34:00) [13]У меня такая идея:
при загрузке программы загружать функцию проверки регистрации в память таким образом, чтобы она постоянно меняла адрес прописки. В принципе у меня это получилось, только я никак не соображу как расчитать объем памяти, необходимый под функцию?
cypher (2002-03-23 19:29:00) [14]прав =)
Rooman (2002-03-23 15:46:00) [15]>JibSkeart © (23.03.02 13:19)
>ведь такие вещи лечатся изменением одного байта с 0 на 1
где лечатся? в ехе? а если вот так хранить:
var p:pointer;
key:string[128];
//один поток:
...
читаем откуда нибудь key;
...
//второй поток:
...
GetMem(p,128)
StrLCopy(p,pchar(key),128
...
//третий поток:
...
reallocmem(p,128);
...
//четвертый поток:
...
читаем содержимое ключа по адресу p
...
//по завершении программы:
...
freemem(p);
...
Отследить момент считывания нельзя ни по BPX, ни по BPM (если не знать, где расположено тело четвертого потока, конечно), т.к. истинное считывание будет перемежаться с бесконечным множеством левых считываний (reallocmem).
Или я не прав?
Rooman (2002-03-23 15:29:00) [16]>Anatoly Podgoretsky © (23.03.02 11:06)
>Если ты такой богатый, то конечно пиши свою.
Если такой бедный - покупай ASProtect.
POOKER (2002-03-23 14:38:00) [17]Нет нечего того, что нельзя былобы взломать :)
JibSkeart (2002-03-23 13:19:00) [18]не забуть еще то что ,как бы круто не шифровался пароль итд итп
где бы не шло сравнение ...
не использовать такие веши как
если зарегена прога ключь все подошел
то
RegProg=True; !!
сам видел такую гадость и ломал(правда не хакер я но пробовал :))
воот !!! ведь такие вещи лечатся изменением одного байта с 0 на 1
хех подумай над ентим
вообшем что в таком духе :))
Anatoly Podgoretsky (2002-03-23 11:06:00) [19]Если ты такой богатый, то конечно пиши свою.
Rooman (2002-03-23 10:49:00) [20]ASProtect страдает всеми теми же проблемами, что и UPX, и прочие упаковщики exe-файлов. Читайте соотв. литературу. Мне нужно написать СВОЮ защиту - не универсальную.