Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
Chaser ©   (2004-12-10 13:40) [0]

Здравствуйте!

Хотел прокунсультироваться на счет защиты программ от взлома: как сделать так, чтобы мою программу не взломали?
Где-то читал, что если использовать много безусловных переходов "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.

Заранее благодарен.


 
Reindeer Moss Eater ©   (2004-12-10 13:44) [1]

Никто не будет подбирать твои s[xx].
Все изменят один условный переход на безусловный.


 
Reindeer Moss Eater ©   (2004-12-10 13:48) [2]

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

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


 
Zilog ©   (2004-12-10 13:49) [3]

пиши на ассемблере


 
Reindeer Moss Eater ©   (2004-12-10 13:52) [4]

Ассемблер-то здесь чем поможет?


 
Александр Иванов ©   (2004-12-10 13:53) [5]

Сотри программу, диск отформатируй, а компьютер утопи, тогда ее никто не взломает.


 
DiamondShark ©   (2004-12-10 13:53) [6]


> 1). На сколько мой метод прост для взлома?

Как два пальца.


> 3). Ваши мысли по поводу "go to".

А ты напиши, и посмотри полученный код.
Оптимизатор оставит от твоих goto рожки да ножки.
Нет, конечно, можешь писать на асме, но поверь, такое запутывание мало кого остановит.


 
Ega23 ©   (2004-12-10 13:54) [7]

Самое главное - написать такую программу, чтобы она была хоть кому-то нужна. Как показывает моя личная прктика, я заказчику даже исхолники оставлял. Потому, что всё равно другому человеку в чужих исходниках достаточно сложно разобраться. Легче самому написать.


 
Digitman ©   (2004-12-10 13:55) [8]


> 1). На сколько мой метод прост для взлома?


он просто примитивен. до безобразия примитивен.
бедняге-взломщику  придется аж целый байт изменить в твоем файле


 
Amoeba ©   (2004-12-10 13:59) [9]

Анектот про Неуловимого Джо помнишь?
А если серьезно, то чтай вот это:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=66


 
TUser ©   (2004-12-10 14:09) [10]


> Оптимизатор оставит от твоих goto рожки да ножки.

Можно отключить оптимизатор. Но, я сомневаюсь, что эти goto вообще на что-то влияют.

PS. Как показывает опыт крупных компаний, которые делают действительно хорошие и нужные программы, где работают программисты очень высокого уровня, где деньги на защиту найдутся обязательно и в большом количестве - защита от взлома это или глюк, или иллюзия. Ее невозможно сделать.


 
Amoeba ©   (2004-12-10 14:13) [11]

Сложно написать такую программу, которую бы захотелось взломать (даже несмотря на сложность этого дела), и нет ничего проще, чем написать такую программу, поставив самую примитивную защиту, которую взламывать не будет ни малейшего желания.


 
Anatoly Podgoretsky ©   (2004-12-10 14:35) [12]

А программе очень ценная для мирового сообшества?
Может наоборот надо деньги заплатить, тому кто ее будет использовать, ну или по крайней мере деньги за взлом.


 
Chaser ©   (2004-12-14 10:18) [13]

Вообщем понятно, что в итоге придеться копать самому...
Ну и на том спасибо.


 
Andrey V. ©   (2004-12-14 15:34) [14]


> Вообщем понятно, что в итоге придеться копать самому...
> Ну и на том спасибо.

Надо изменить формулировку вопроса.
Как ЗАТРУДНИТЬ взлом , например.
По сети гуляет статья Зайцева Олега "Защита программ от взлома"
Если не найдешь вот ее краткая выжимка:
Совет _0. Старайтесь как можно меньше применять стандартные функции (особенно API-шные) и компоненты VCL. Так что Assembler, Assembler и еще раз Assembler ...
Совет _1. Применяйте нестандартный способ ввода пароля
Совет _2. Не храните введенный код в одном месте !
Совет _3. Не храните введенный код открытым текстом !
Совет _4. Ни в коем случае не анализируйте код сразу после его ввода.
Совет _5. Не проверяйте код только в одном месте и не пишите для проверки функцию.
Совет _6. Не проверяйте пароль одним алгоритмом.
Совет _7. Ни в коем случае не предпринимайте никаких действий после проверки.
Совет _8. Отвлекающие маневры.
Совет _9. Не храните результатов проверки в переменной и не используйте ее для явного ограничения функций незарегистрированной программы.
Совет _10. (вытекает из 9) Не храните результатов проверки на диске или в реестре.
Совет 13. Не определяйте дату и время стандартными способом !!
Совет 14.Не стоит хранить что-либо секретное в файлах или реестре.
Совет 15.Не храните ничего важного открытым текстом, особенно сообщения типа "Это незарегистрированная версия ...", "Введенный пароль не верен ...".


 
Erazzser   (2004-12-14 17:48) [15]

Используй упаковщика типа ASPack (сейчас уже ASProtect) их довольно много. От 90% крякеров тебя это спасёт, а остальные всёравно взломают ;))) (советую ASPack- к нему и кряк есть и использовать легко, правда и ломается не сложно, но на счёт этого я уже говорил ;)))


 
maxz ©   (2004-12-14 18:22) [16]

Надежность системы определяется надежностью самого слабого звена. Я недавно разговаривал с одним своим другом (сам он почти профессиональный крякер) насчет того, как мне лучше защитить свою прогу, которую он до этого уже успел благополучно поломать. Я для этой проги писал проверку CRC, и еще половину того, что наговорил Andrey V. ©   (14.12.04 15:34) [14]. Так этот знакомый сказал, что для того, чтобы поломать мою прогу, нужно было сменить всего пару байт. Сам он описал процесс так - где-то что-то с чем-то сверяется и от этого летит вся остальная защита...причем сам он даже не знает, где это :) А скрыть проверку значений нельзя.
На мой взгляд лучше программу распространять в демо версиях. Полные версии, конечно, тоже разойдутся по сети, но, как показывает практика, их найти труднее, чем найти кряк для триал версии.

Erazzser   (14.12.04 17:48) [15]
//к нему и кряк есть
ну раз есть кряк к ASPack (наверняка упакованную и круто защищенную), то чего уж говорить про наши проги


 
alekc   (2004-12-14 19:14) [17]

ИМХО, один из самых простых вариантов: если в программе используются какие-либо константы (типизированные), то просто в дополнение к проверке пароля IF"ом переxorь их (константы) с символами пароля. Если в таком случае кто просто тупо изменит команду перехода, то как грится - сам виноват... Только пароль не храни в открытом виде.


 
TUser ©   (2004-12-14 20:53) [18]


> alekc   (14.12.04 19:14) [17]

Как только взломщик это просечет - он расшифрует пароль, используя правильные и зашифрованные константы.


 
TUser ©   (2004-12-14 20:54) [19]

Знаю одну программу, которую принцыпиаально нельзя было взломать. Она рулила девайсом - через свою специальную плату.


 
alekc   (2004-12-14 21:21) [20]


> > alekc   (14.12.04 19:14) [17]
>
> Как только взломщик это просечет - он расшифрует пароль,
> используя правильные и зашифрованные константы.

Можно их xorить не паролем, а его хешем, причём только частью - пусть подбирает... :) Потом, чтобы получить правильные константы их сначала надо раскодировать при помощи пароля...
И вообще - это всё уже детали. Главное идея =)


 
TTWW_Ant ©   (2004-12-15 00:37) [21]

Я засовывал мусор в прогу )))



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.035 c
3-1101298230
keymaster
2004-11-24 15:10
2004.12.26
Client-Servet виснет


14-1102416695
vajo
2004-12-07 13:51
2004.12.26
12 декабря - Праздник? Т.Е. 13 декабря - Выходной?


3-1101788722
Frozzen
2004-11-30 07:25
2004.12.26
Права в ИБ


4-1100336714
S@lik
2004-11-13 12:05
2004.12.26
Флеш диск


1-1103038441
maxz
2004-12-14 18:34
2004.12.26
Утечка памяти





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский