Защита от взлома, Есть ли она? |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Защита от взлома, Есть ли она? |
Славик |
17.02.2005 23:27
Сообщение
#1
|
Гость |
Всем привет. И спасибо за быстрые отклики в предыдущих темах.
Я искал на вашем форуме, но не нашел... по поводу вопроса: Можно ли взломать ".exe" файл созданный на Турбо паскале 7 ? (чтобы был виден алгоритм) Как это можно сделать? Можно ли защитить файл от взлома, и как? Или хотябы, при взломе, "не дать" прочитать часть или весь алгоритм. Просьба обьяснить это попонятней, поскльку я новичок в программировании. |
xds |
18.02.2005 2:59
Сообщение
#2
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
1) общая идея алгоритма видна без взлома ;);
2) детали можно выяснить, немного подумав и (или) дизассемблировав код; 3) защита - шифровка бинарника (с присоединением расшифровщика, закодированного на ассемблере в неудобочитаемом виде); 4) здравый смысл и семантический анализ п. 3 подсказывает, что идеальной защиты не существует. P.S. Последнее время еще стал популярен ASPack (только для бинарников типа Win32/PE), который, впрочем, легко грохается -------------------- The idiots are winning.
|
Славик |
18.02.2005 15:45
Сообщение
#3
|
Гость |
Обьясни пожалуйста свой первый пункт. Как это видна без взлома? Ведь одна и таже задача может быть написана разными способами. Мне способ надо не рассекретить.
А может есть какая нибудь программа, в которую можно вставить exe файл паскаля, и эта программа практически не ломаема? Мне надо чтоб exe файл работал, но подкопаться к нему чтобы нельзя. : ) |
Altair |
18.02.2005 16:04
Сообщение
#4
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
это не возможно, что бы совсем не подкопаться, когда программа выполняется, она загружается в память, и отуда ее можно выудить все равно!
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
SKVOZNJAK |
18.02.2005 16:11
Сообщение
#5
|
Профи Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
Используй побольше GOTO и констант, правильное значение которых проявляется только при выполнении проги И вскоре ты сам без описания не поймёшь её смысл.
|
SHnur |
18.02.2005 16:32
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 81 Пол: Мужской Реальное имя: Шурик Репутация: 0 |
также можеш использовать побольше break , exit , halt
Короче операторы нарушающие структуру проги . -------------------- Двадцать пятый час в сутках может появиться всего лишь из-за небольшой ошибки в программе.
Чтобы не воспользоваться сумасшедшими возможностями, нужно быть идиотом. |
SKVOZNJAK |
18.02.2005 16:38
Сообщение
#7
|
Профи Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
exit , halt, repeat, until легко эмулируются при помощи GOTO
Сообщение отредактировано: SKVOZNJAK - 18.02.2005 16:39 |
xds |
18.02.2005 16:44
Сообщение
#8
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
Цитата Обьясни пожалуйста свой первый пункт. Как это видна без взлома? Ведь одна и таже задача может быть написана разными способами. Мне способ надо не рассекретить. Раз ты догадался, что задача может быть решена несколькими способами, значит догадываешься и о последних (иначе, как бы ты отличил один от другого?) Вопросы по существу: а надо ли защищать всю программу целиком (или можно выделить один критический участок)? С какой целью затевается "банкет"? -------------------- The idiots are winning.
|
Славик |
18.02.2005 17:15
Сообщение
#9
|
Гость |
Спасибо всем за отзывы. Кое что пересмотрю...
Есть два(нужных) варианта что ПРИМЕРНО нужно. 1) ПАРОЛЬ - Пользователь вводит 12345, и прога пишет Вышел Зайчик... : )) Вот сам пароль(переменные для сличения), и саму переменную с сообщением, хотелось бы скрыть как то понадежней. 2) ОТРЕЗОК АЛГОРИТМА - шифрующий некоторые данные. Для примерна(простой) - ввожу число 34436345 и программа выдает "abtg". Значит, нужно скрыть переменые или содержимое переменных, и сам процесс шифрования. Запутывания GOTO и другое, это (наверно) не совсем надежно. Мне хочется все же по проще как то. Запутывать так же ДОЛГО как и распутывать, если хочется МАКСИМАЛЬНО защитить алгоритм(часть алгоритма). |
SKVOZNJAK |
19.02.2005 2:39
Сообщение
#10
|
Профи Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
GOTO не такое слабое как кажется. Допустим у тебя есть небольшой массив. Ты размазываешь его по всей программе, доступ к частям через гото и типизованные константы. Естественно имеется много других гото, в зависимости от вводимого пароля(его части) меняется сам алгоритм поиска частей размазанного массива. Похожая система применялась в спектрумбейсике. Ты смотришь на коротенький код и не можешь понять что он запускает По сути, алгоритм модифицируется во время исполнения, в него вбрасываются левые данные и на их основе происходят дальнейшие действия. Чтобы понять, нужно найти значения некоторых переменных в нужное время.
|
xds |
19.02.2005 4:29
Сообщение
#11
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
Цитата Похожая система применялась в спектрумбейсике. Ты смотришь на коротенький код и не можешь понять что он запускает Например, машинный код цеплялют (до сих пор, сценеры ) в "хвост" файла Бейсика (или в начало, после REM), а программа просто его запускает... К томуже, SOS-Basic для каждой численной константы хранит два представления: символьное (для отображения в листинге) и двоичное, непосредственно используемое интерпретатором. Поэтому, там, где мы видим "0", зачастую может храниться другое число, например 23837 В "магнитофонный период" еще был популярен нестандартный формат хранения на ленте. -------------------- The idiots are winning.
|
Михаил Густокашин |
20.02.2005 10:18
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: 0 |
можно устроить xor с паролем на критический участок и проверить правильность по контрольной сумме. тогда пароль никоим образом не хранится в программе, а если не xor'ить лишнего, то будет даже достаточно эффективно.
-------------------- учим школьников программированию (и математике до кучи): информация здесь: Webpage
|
ZeroLink |
20.02.2005 14:15
Сообщение
#13
|
Новичок Группа: Пользователи Сообщений: 41 Пол: Мужской Репутация: 0 |
Для защиты:
1) Шифруй все надписи типа "Copyr..." в самой проге см. http://far.by.ru/progs/graph.shtml №13 Программа-шифровщик. 2) Откомпилированную прогу сжимай каким-нибуди DIET'от. 3) Вставляй антитрассировку 4) Мысли не стандартно Для взлома: 1) Учи Assembler 2) Изучи структуру exe прог 3) Запускай дизассембляторы И помни, что любая защита рано или позно ломается! Сообщение отредактировано: ZeroLink - 20.02.2005 14:20 -------------------- Я могу изменить мир, но Бог не даёт исходник:(
|
Славик |
20.02.2005 18:40
Сообщение
#14
|
Гость |
Некоторые предложения мне подойдут. Спасибо Вам!
ZeroLink: шифровальщик скачал... Посмотрю... Михаил Густокашин писал про ХОГ. Что это такое и где взять информацию об этом? Еще вопросы - можно ли из операционной системы, или как то еще, выудить алгоритм программы, подгруженный из другой программы? 2) Можно ли вообще подгружать часть алгоритма(хотябы) из другого файла в главную программу таким образом, чтобы в главной программе небыл указан адрес откуда подгружать. То есть, другая программа сама активизирует себя и сама "стучится" в главную программу. 3) Может ли подгружаемая програма, себя удалить сразу после своей самоактивации для высылания алгоритма? |
volvo |
20.02.2005 18:50
Сообщение
#15
|
Гость |
Цитата(Славик @ 20.02.05 17:40) другая программа сама активизирует себя и сама "стучится" в главную программу. Так какая же из них после этого главная? Кроме того, чтобы она могла себя активизировать, она должна "висеть" в памяти, не так ли? Или должно быть третье приложение, которое "висит" в памяти и после запуска главной программы активизирует вторую ... |
Altair |
20.02.2005 19:24
Сообщение
#16
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Цитата Михаил Густокашин писал про ХОГ. Что это такое и где взять информацию об этом? Он говрил не про ХОГ а про xor (XOR) - это команда, выполняет побитовую операцию xor. (иск. ИЛИ) Копай в сторону того, что a xor b=c тогда c xor b =a. то есть b - ключ. (пароль) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Славик |
20.02.2005 19:37
Сообщение
#17
|
Гость |
Код Так какая же из них после этого главная? Если написано "Главная программа" - главная. А там где "другая" написано, или программка, это не главная. Код Кроме того, чтобы она могла себя активизировать, она должна "висеть" в памяти, не так ли? Даже если и так, можно ли при этом ее выудить если бы она себя удаляла сразу же? (вообще из компа) И можно ли предотвратить ее удаление? (если учесть, что она бы при установке программы устанавливалась в случайное место на компе). |
volvo |
20.02.2005 19:45
Сообщение
#18
|
Гость |
Как я могу отвечать на конкретные вопросы, не имея никакой информации? Какая ОС, какие права (пользователь, админ)? Ничего же не известно... Я должен догадаться и ответить?
|
Славик |
20.02.2005 19:53
Сообщение
#19
|
Гость |
Код Какая ОС, какие права (пользователь, админ)? Я имел ввиду, что хочу как то "скрыть" алгоритм(или часть) программы, которая будет запускаться уже на компах пользователей. Если ты имеешь ввиду мой комп, для создания подобного засекречивания, то у меня Виндовс ХР профешшинал. (если еще надо какие то данные, напиши). |
Altair |
20.02.2005 20:04
Сообщение
#20
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Да можно сркыть все что угодно, можно сделать процесс-невидимым, сам файл (бинарник) - невидимым( система просто не будет видеть его) - все это можно сделать обрабатывая запросы WINAPI, в FAQ'e по Дельфи (автор:Вит) есть статья про это...
срыть можно все что угодно, но дело в том, что в памяти программа находится без защиты , следовательно сняв снимок памяти, можно всегда все узнать... дело только в том, какие деньги вокруг этого... Ты скажи, что ты точно хочешь? что за программа, что ее так надежно надо защищать? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Текстовая версия | 29.04.2024 4:13 |