Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать так, чтобы мою программу не взломали? [D7, WinXP]


Страницы:   1 2

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]

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

Никому не отдавать её


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо