![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать так, чтобы мою программу не взломали? [D7, WinXP]
Chaser © (2004-12-10 13:40:00)Здравствуйте!
Хотел прокунсультироваться на счет защиты программ от взлома: как сделать так, чтобы мою программу не взломали?
Где-то читал, что если использовать много безусловных переходов "go to" (в местах проверки пароля), то взломать программу просто не реально.
Сам лишь делаю примерно так: создаю строку типа
s:='doiyrewdhimnbvyxzwghlomu6se56cn8p09nu7yc56zw4ex4jlicgs4w5dnklu9klnmlfgx3q4awvu';
if Edit1.Text=s[19]+s[22]+s[1]+s[43]+s[51]+s[68]+s[68]+s[75]
then
begin
... заходим в программу
end;
Вопрос:
1). На сколько мой метод прост для взлома?
2). Какие еще существуют методы для затруднения взлома программы (типа проверки контрольной суммы и т.д.)?
3). Ваши мысли по поводу "go to".
4). Если можно ответы с прмерами кода, или высылайте на chaser@front.ru.
Заранее благодарен.
TTWW_Ant (2004-12-15 00:37:00) [1]Я засовывал мусор в прогу )))
alekc (2004-12-14 21:21:00) [2]
> > alekc (14.12.04 19:14) [17]
>
> Как только взломщик это просечет - он расшифрует пароль,
> используя правильные и зашифрованные константы.
Можно их xorить не паролем, а его хешем, причём только частью - пусть подбирает... :) Потом, чтобы получить правильные константы их сначала надо раскодировать при помощи пароля...
И вообще - это всё уже детали. Главное идея =)
TUser (2004-12-14 20:54:00) [3]Знаю одну программу, которую принцыпиаально нельзя было взломать. Она рулила девайсом - через свою специальную плату.
TUser (2004-12-14 20:53:00) [4]
> alekc (14.12.04 19:14) [17]
Как только взломщик это просечет - он расшифрует пароль, используя правильные и зашифрованные константы.
alekc (2004-12-14 19:14:00) [5]ИМХО, один из самых простых вариантов: если в программе используются какие-либо константы (типизированные), то просто в дополнение к проверке пароля IF'ом переxorь их (константы) с символами пароля. Если в таком случае кто просто тупо изменит команду перехода, то как грится - сам виноват... Только пароль не храни в открытом виде.
maxz (2004-12-14 18:22:00) [6]Надежность системы определяется надежностью самого слабого звена. Я недавно разговаривал с одним своим другом (сам он почти профессиональный крякер) насчет того, как мне лучше защитить свою прогу, которую он до этого уже успел благополучно поломать. Я для этой проги писал проверку CRC, и еще половину того, что наговорил Andrey V. © (14.12.04 15:34) [14]. Так этот знакомый сказал, что для того, чтобы поломать мою прогу, нужно было сменить всего пару байт. Сам он описал процесс так - где-то что-то с чем-то сверяется и от этого летит вся остальная защита...причем сам он даже не знает, где это :) А скрыть проверку значений нельзя.
На мой взгляд лучше программу распространять в демо версиях. Полные версии, конечно, тоже разойдутся по сети, но, как показывает практика, их найти труднее, чем найти кряк для триал версии.
Erazzser (14.12.04 17:48) [15]
//к нему и кряк есть
ну раз есть кряк к ASPack (наверняка упакованную и круто защищенную), то чего уж говорить про наши проги
Erazzser (2004-12-14 17:48:00) [7]Используй упаковщика типа ASPack (сейчас уже ASProtect) их довольно много. От 90% крякеров тебя это спасёт, а остальные всёравно взломают ;))) (советую ASPack- к нему и кряк есть и использовать легко, правда и ломается не сложно, но на счёт этого я уже говорил ;)))
Andrey V. (2004-12-14 15:34:00) [8]
> Вообщем понятно, что в итоге придеться копать самому...
> Ну и на том спасибо.
Надо изменить формулировку вопроса.
Как ЗАТРУДНИТЬвзлом , например.
По сети гуляет статья Зайцева Олега "Защита программ от взлома"
Если не найдешь вот ее краткая выжимка:
Совет _0. Старайтесь как можно меньше применять стандартные функции (особенно API-шные) и компоненты VCL. Так что Assembler, Assembler и еще раз Assembler ...
Совет _1. Применяйте нестандартный способ ввода пароля
Совет _2. Не храните введенный код в одном месте !
Совет _3. Не храните введенный код открытым текстом !
Совет _4. Ни в коем случае не анализируйте код сразу после его ввода.
Совет _5. Не проверяйте код только в одном месте и не пишите для проверки функцию.
Совет _6. Не проверяйте пароль одним алгоритмом.
Совет _7. Ни в коем случае не предпринимайте никаких действий после проверки.
Совет _8. Отвлекающие маневры.
Совет _9. Не храните результатов проверки в переменной и не используйте ее для явного ограничения функций незарегистрированной программы.
Совет _10. (вытекает из 9) Не храните результатов проверки на диске или в реестре.
Совет 13. Не определяйте дату и время стандартными способом !!
Совет 14.Не стоит хранить что-либо секретное в файлах или реестре.
Совет 15.Не храните ничего важного открытым текстом, особенно сообщения типа "Это незарегистрированная версия ...", "Введенный пароль не верен ...".
Chaser (2004-12-14 10:18:00) [9]Вообщем понятно, что в итоге придеться копать самому...
Ну и на том спасибо.
Anatoly Podgoretsky (2004-12-10 14:35:00) [10]А программе очень ценная для мирового сообшества?
Может наоборот надо деньги заплатить, тому кто ее будет использовать, ну или по крайней мере деньги за взлом.
Amoeba (2004-12-10 14:13:00) [11]Сложно написать такую программу, которую бы захотелось взломать (даже несмотря на сложность этого дела), и нет ничего проще, чем написать такую программу, поставив самую примитивную защиту, которую взламывать не будет ни малейшего желания.
TUser (2004-12-10 14:09:00) [12]
> Оптимизатор оставит от твоих goto рожки да ножки.
Можно отключить оптимизатор. Но, я сомневаюсь, что эти goto вообще на что-то влияют.
PS. Как показывает опыт крупных компаний, которые делают действительно хорошие и нужные программы, где работают программисты очень высокого уровня, где деньги на защиту найдутся обязательно и в большом количестве - защита от взлома это или глюк, или иллюзия. Ее невозможносделать.
Amoeba (2004-12-10 13:59:00) [13]Анектот про Неуловимого Джо помнишь?
А если серьезно, то чтай вот это:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=66
Digitman (2004-12-10 13:55:00) [14]
> 1). На сколько мой метод прост для взлома?
он просто примитивен. до безобразия примитивен.
бедняге-взломщику придется аж целый байт изменить в твоем файле
Ega23 (2004-12-10 13:54:00) [15]Самое главное - написать такую программу, чтобы она была хоть кому-то нужна. Как показывает моя личная прктика, я заказчику даже исхолники оставлял. Потому, что всё равно другому человеку в чужих исходниках достаточно сложно разобраться. Легче самому написать.
DiamondShark (2004-12-10 13:53:00) [16]
> 1). На сколько мой метод прост для взлома?
Как два пальца.
> 3). Ваши мысли по поводу "go to".
А ты напиши, и посмотри полученный код.
Оптимизатор оставит от твоих goto рожки да ножки.
Нет, конечно, можешь писать на асме, но поверь, такое запутывание мало кого остановит.
Александр Иванов (2004-12-10 13:53:00) [17]Сотри программу, диск отформатируй, а компьютер утопи, тогда ее никто не взломает.
Reindeer Moss Eater (2004-12-10 13:52:00) [18]Ассемблер-то здесь чем поможет?
Zilog (2004-12-10 13:49:00) [19]пиши на ассемблере
Reindeer Moss Eater (2004-12-10 13:48:00) [20]Как сделать так, чтобы мою программу не взломали?
Никому не отдавать её