IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Защита от взлома, Есть ли она?
Славик
сообщение 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), который, впрочем, легко грохается smile.gif


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Славик
сообщение 18.02.2005 15:45
Сообщение #3


Гость






Обьясни пожалуйста свой первый пункт. Как это видна без взлома? Ведь одна и таже задача может быть написана разными способами. Мне способ надо не рассекретить.

А может есть какая нибудь программа, в которую можно вставить exe файл паскаля, и эта программа практически не ломаема?
Мне надо чтоб exe файл работал, но подкопаться к нему чтобы нельзя. : )
 К началу страницы 
+ Ответить 
Altair
сообщение 18.02.2005 16:04
Сообщение #4


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


это не возможно, что бы совсем не подкопаться, когда программа выполняется, она загружается в память, и отуда ее можно выудить все равно!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
SKVOZNJAK
сообщение 18.02.2005 16:11
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


Используй побольше GOTO и констант, правильное значение которых проявляется только при выполнении проги smile.gif И вскоре ты сам без описания не поймёшь её смысл.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
SHnur
сообщение 18.02.2005 16:32
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Шурик

Репутация: -  0  +


также можеш использовать побольше break , exit , halt
Короче операторы нарушающие структуру проги .


--------------------
Двадцать пятый час в сутках может появиться всего лишь из-за небольшой ошибки в программе.
Чтобы не воспользоваться сумасшедшими возможностями, нужно быть идиотом.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
SKVOZNJAK
сообщение 18.02.2005 16:38
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


exit , halt, repeat, until легко эмулируются при помощи GOTO

Сообщение отредактировано: SKVOZNJAK - 18.02.2005 16:39
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
xds
сообщение 18.02.2005 16:44
Сообщение #8


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Цитата
Обьясни пожалуйста свой первый пункт. Как это видна без взлома? Ведь одна и таже задача может быть написана разными способами. Мне способ надо не рассекретить.

Раз ты догадался, что задача может быть решена несколькими способами, значит догадываешься и о последних (иначе, как бы ты отличил один от другого?) smile.gif

Вопросы по существу: а надо ли защищать всю программу целиком (или можно выделить один критический участок)? С какой целью затевается "банкет"?


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Славик
сообщение 18.02.2005 17:15
Сообщение #9


Гость






Спасибо всем за отзывы. Кое что пересмотрю...

Есть два(нужных) варианта что ПРИМЕРНО нужно.

1) ПАРОЛЬ - Пользователь вводит 12345, и прога пишет Вышел Зайчик... : ))

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

2) ОТРЕЗОК АЛГОРИТМА - шифрующий некоторые данные.
Для примерна(простой) - ввожу число 34436345 и программа выдает "abtg".
Значит, нужно скрыть переменые или содержимое переменных, и сам процесс шифрования.

Запутывания GOTO и другое, это (наверно) не совсем надежно.
Мне хочется все же по проще как то. Запутывать так же ДОЛГО как и распутывать, если хочется МАКСИМАЛЬНО защитить алгоритм(часть алгоритма).
 К началу страницы 
+ Ответить 
SKVOZNJAK
сообщение 19.02.2005 2:39
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


GOTO не такое слабое как кажется. Допустим у тебя есть небольшой массив. Ты размазываешь его по всей программе, доступ к частям через гото и типизованные константы. Естественно имеется много других гото, в зависимости от вводимого пароля(его части) меняется сам алгоритм поиска частей размазанного массива. Похожая система применялась в спектрумбейсике. Ты смотришь на коротенький код и не можешь понять что он запускает smile.gif По сути, алгоритм модифицируется во время исполнения, в него вбрасываются левые данные и на их основе происходят дальнейшие действия. Чтобы понять, нужно найти значения некоторых переменных в нужное время.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
xds
сообщение 19.02.2005 4:29
Сообщение #11


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Цитата
Похожая система применялась в спектрумбейсике. Ты смотришь на коротенький код и не можешь понять что он запускает smile.gif

Например, машинный код цеплялют (до сих пор, сценеры smile.gif) в "хвост" файла Бейсика (или в начало, после REM), а программа просто его запускает... К томуже, SOS-Basic для каждой численной константы хранит два представления: символьное (для отображения в листинге) и двоичное, непосредственно используемое интерпретатором. Поэтому, там, где мы видим "0", зачастую может храниться другое число, например 23837 smile.gif В "магнитофонный период" еще был популярен нестандартный формат хранения на ленте.


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Михаил Густокашин
сообщение 20.02.2005 10:18
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской

Репутация: -  0  +


можно устроить xor с паролем на критический участок и проверить правильность по контрольной сумме. тогда пароль никоим образом не хранится в программе, а если не xor'ить лишнего, то будет даже достаточно эффективно.


--------------------
учим школьников программированию (и математике до кучи): информация здесь: Webpage
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
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


--------------------
Я могу изменить мир, но Бог не даёт исходник:(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Славик
сообщение 20.02.2005 18:40
Сообщение #14


Гость






Некоторые предложения мне подойдут. Спасибо Вам!

ZeroLink: шифровальщик скачал... Посмотрю...

Михаил Густокашин писал про ХОГ. Что это такое и где взять информацию об этом?


Еще вопросы - можно ли из операционной системы, или как то еще, выудить алгоритм программы, подгруженный из другой программы?

2) Можно ли вообще подгружать часть алгоритма(хотябы) из другого файла в главную программу таким образом, чтобы в главной программе небыл указан адрес откуда подгружать. То есть, другая программа сама активизирует себя и сама "стучится" в главную программу.

3) Может ли подгружаемая програма, себя удалить сразу после своей самоактивации для высылания алгоритма?
 К началу страницы 
+ Ответить 
volvo
сообщение 20.02.2005 18:50
Сообщение #15


Гость






Цитата(Славик @ 20.02.05 17:40)
другая программа сама активизирует себя и сама "стучится" в главную программу.
blink.gif
Так какая же из них после этого главная? Кроме того, чтобы она могла себя активизировать, она должна "висеть" в памяти, не так ли? Или должно быть третье приложение, которое "висит" в памяти и после запуска главной программы активизирует вторую ...
 К началу страницы 
+ Ответить 
Altair
сообщение 20.02.2005 19:24
Сообщение #16


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Михаил Густокашин писал про ХОГ. Что это такое и где взять информацию об этом?

Он говрил не про ХОГ а про xor (XOR) -
это команда, выполняет побитовую операцию xor. (иск. ИЛИ)
Копай в сторону того, что
a xor b=c
тогда c xor b =a.
то есть b - ключ. (пароль)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Славик
сообщение 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 по Дельфи (автор:Вит) есть статья про это...
срыть можно все что угодно, но дело в том, что в памяти программа находится без защиты , следовательно сняв снимок памяти, можно всегда все узнать... дело только в том, какие деньги вокруг этого...
Ты скажи, что ты точно хочешь? что за программа, что ее так надежно надо защищать?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 29.04.2024 4:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"