Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

защита исполняемых файлов

12K
11 марта 2006 года
1Pavel1
15 / / 28.02.2006
Разработка инструментария для установки защиты исполняемого файла от несанкционированного использования.
ос - windows
язык - visual C++
исполняемый файл типа PE
привязкка к паролю, директрии, к конкретному компьютеру.
защита встраивается в исполняемый файл (как мне обьяснили в момент инсталяции, и данная защита не обязана действовать абсолютно для всех исполняемых файлов).

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

да хочу подчеркнуть, защита именно уже существующих откомпилированных файлов (читай с недоступными исходниками), а не разрабатываемых программ.
492
14 марта 2006 года
alibabaich
238 / / 08.07.2004
Цитата:
Originally posted by 1Pavel1
Разработка инструментария для установки защиты исполняемого файла от несанкционированного использования.
ос - windows
язык - visual C++
исполняемый файл типа PE
привязкка к паролю, директрии, к конкретному компьютеру.
защита встраивается в исполняемый файл (как мне обьяснили в момент инсталяции, и данная защита не обязана действовать абсолютно для всех исполняемых файлов).

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

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

Шифрование, шифрование, и еще раз шифрование. Ключи на основе пароля, файла или системной информации. Подругому никак.

12K
15 марта 2006 года
1Pavel1
15 / / 28.02.2006
Цитата:
Originally posted by alibabaich
Шифрование, шифрование, и еще раз шифрование. Ключи на основе пароля, файла или системной информации. Подругому никак.



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

12K
15 марта 2006 года
1Pavel1
15 / / 28.02.2006
Цитата:
Originally posted by alibabaich
Шифрование, шифрование, и еще раз шифрование. Ключи на основе пароля, файла или системной информации. Подругому никак.


да, еще просьба подкинуть пару сслок где есть нормальные статьи по шифровке+c++. и не посылайте на яндекс, там добра на эту тему навалом, а вот действительно качественных статей, днем с огнем...

492
16 марта 2006 года
alibabaich
238 / / 08.07.2004
Цитата:
Originally posted by 1Pavel1
а каким образом вшить в файл систему дешифровки?
т.е. запускаешь файл, а он требует пароль и только после этого запускается. не запуск специальной утилиты, ввод пароля, а потом запуск нужного файла, а именно сам файл просит пароль.

Зачем в файл? Пишится загрузщик. Схема примерно такова:

Запускается загрузщик.

Загрузщик получает информацию по которой получает ключи для дешифровки основного модуля.

Дешифрует основной модуль.

Проверяет некоторым образом, например по хешу или части файла корректность результата.

Запускает оснавной модуль.

12K
16 марта 2006 года
1Pavel1
15 / / 28.02.2006
Цитата:
Originally posted by alibabaich
Зачем в файл? Пишится загрузщик. Схема примерно такова:

Запускается загрузщик.

Загрузщик получает информацию по которой получает ключи для дешифровки основного модуля.

Дешифрует основной модуль.

Проверяет некоторым образом, например по хешу или части файла корректность результата.

Запускает оснавной модуль.



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

492
17 марта 2006 года
alibabaich
238 / / 08.07.2004
Цитата:
Originally posted by 1Pavel1
да эта идея мне тоже сразу же пришла в голову, но дело в том что это задание курсача, и одним из необходимых условий является "защита встраивается в исполняемый файл"... и никуда отсюда не денешься...

Посмотри как работают вирусы которые прописывают тело в .ехе файлы. Я же не говорил о том сколько должно быть файлов(я говорил о модулях)... Можно все в один запихнуть. Только не делай просто проверку пароля, такие функции легко обрезаются. Защита либо есть, либо нет. А кроме криптографии защиту ничто не гарантирует. Все остальное это имитация защиты.

12K
17 марта 2006 года
1Pavel1
15 / / 28.02.2006
Цитата:
Originally posted by alibabaich
Посмотри как работают вирусы которые прописывают тело в .ехе файлы. Я же не говорил о том сколько должно быть файлов(я говорил о модулях)... Можно все в один запихнуть. Только не делай просто проверку пароля, такие функции легко обрезаются. Защита либо есть, либо нет. А кроме криптографии защиту ничто не гарантирует. Все остальное это имитация защиты.



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

492
17 марта 2006 года
alibabaich
238 / / 08.07.2004
Цитата:
Originally posted by 1Pavel1
ну почему, есть же система прав доступа и в винде, насколько я знаю еще мощнее чем в unix,

Миф. Если я получу доступ к винчестеру, то кроме шифрования не спасет ничего.

534
18 марта 2006 года
HarryAxe
448 / / 19.01.2006
Цитата:
Originally posted by alibabaich
Посмотри как работают вирусы которые прописывают тело в .ехе файлы. Я же не говорил о том сколько должно быть файлов(я говорил о модулях)... Можно все в один запихнуть. Только не делай просто проверку пароля, такие функции легко обрезаются. Защита либо есть, либо нет. А кроме криптографии защиту ничто не гарантирует. Все остальное это имитация защиты.

Если ты начнёшь изменять PE файл на жёстком диске, то любой нормальный антивирус интерпретирует вой криптограф как потенциальный вирус и поместит его на карантин. Внедряешь код в виртуальную память процесса - нет проблем. А вот бинарник изменить не получается. Я вот, кстати, тоже сейчас разрабатываю код, связанный с внедрением некоторой функции в другой бинарник на жёстком диске...

12K
18 марта 2006 года
1Pavel1
15 / / 28.02.2006
Цитата:
Originally posted by HarryAxe
Если ты начнёшь изменять PE файл на жёстком диске, то любой нормальный антивирус интерпретирует вой криптограф как потенциальный вирус и поместит его на карантин. Внедряешь код в виртуальную память процесса - нет проблем. А вот бинарник изменить не получается. Я вот, кстати, тоже сейчас разрабатываю код, связанный с внедрением некоторой функции в другой бинарник на жёстком диске...



народ, еще раз говорю, эта программа не будет использоваться по назначению. это курсач, и внедрить НУЖНО, а что антивирус не позволит или что это не логично, это дело десятое.
тем не менее буду рад любому мнению на эту тему (к курсачу еще записку писать надо, вот тут альтернативные пути решения их плюсы и минусы весьма пригодятся :) ). по прежнему жду человека который обьяснит (или даст ссылку) как вшить код в исполняемый файл.
HarryAxe - раз делаешь, то где то об этом читаешь, брось ссылки наиболее толковых статей и пр.

534
21 марта 2006 года
HarryAxe
448 / / 19.01.2006
Цитата:
Originally posted by 1Pavel1
народ, еще раз говорю, эта программа не будет использоваться по назначению. это курсач, и внедрить НУЖНО, а что антивирус не позволит или что это не логично, это дело десятое.
тем не менее буду рад любому мнению на эту тему (к курсачу еще записку писать надо, вот тут альтернативные пути решения их плюсы и минусы весьма пригодятся :) ). по прежнему жду человека который обьяснит (или даст ссылку) как вшить код в исполняемый файл.
HarryAxe - раз делаешь, то где то об этом читаешь, брось ссылки наиболее толковых статей и пр.

http://www.wasm.ru/article.php?article=apihook_2
http://www.wasm.ru/article.php?article=1021007

15K
21 марта 2006 года
Red Alert
15 / / 19.03.2006
Цитата:
Originally posted by 1Pavel1
народ, еще раз говорю, эта программа не будет использоваться по назначению. это курсач, и внедрить НУЖНО, а что антивирус не позволит или что это не логично, это дело десятое.
тем не менее буду рад любому мнению на эту тему (к курсачу еще записку писать надо, вот тут альтернативные пути решения их плюсы и минусы весьма пригодятся :) ). по прежнему жду человека который обьяснит (или даст ссылку) как вшить код в исполняемый файл.
HarryAxe - раз делаешь, то где то об этом читаешь, брось ссылки наиболее толковых статей и пр.



Тебе нужно именно ВНЕДРИТЬ? Всмысле использовать посторонние методы для встройки кода защиты. Или достаточно вкомпилированного модуля защиты? И насколько сложной должна быть защита?

492
22 марта 2006 года
alibabaich
238 / / 08.07.2004
Цитата:
Originally posted by HarryAxe
Если ты начнёшь изменять PE файл на жёстком диске, то любой нормальный антивирус интерпретирует вой криптограф как потенциальный вирус и поместит его на карантин. Внедряешь код в виртуальную память процесса - нет проблем. А вот бинарник изменить не получается. Я вот, кстати, тоже сейчас разрабатываю код, связанный с внедрением некоторой функции в другой бинарник на жёстком диске...

Да щасс... Вот если ты попробуешь внедрять свой код на стороне пользователя, то заорет благим матом. А на криптооперации АВП смотрят спустя рукова. Я работаю не с одной системой банк-клиент и криптоопераций, за день, на сервере происходит как минимум порядка 10^5 ни Norton ни Dr. Web ничего не пишут.

12K
22 марта 2006 года
1Pavel1
15 / / 28.02.2006
Цитата:
Originally posted by alibabaich
Да щасс... Вот если ты попробуешь внедрять свой код на стороне пользователя, то заорет благим матом. А на криптооперации АВП смотрят спустя рукова. Я работаю не с одной системой банк-клиент и криптоопераций, за день, на сервере происходит как минимум порядка 10^5 ни Norton ни Dr. Web ничего не пишут.


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

492
23 марта 2006 года
alibabaich
238 / / 08.07.2004
Цитата:
Originally posted by 1Pavel1
ну как всегда, разведут между собой дискуссию....
вы мне лучше скажите как можно внедрить (или упаковать) используя c++, чем лучше закриптовать(какипе классы криптования и пр) и т.д. и т.п.
я сейчас остановился на варианте протектора-упаковщика как наиболее простом варианте из соотваетствующих задаче... да да не кричите что если сломать его пара минут, мне нужно именно сделать, а сколько потратит крякер на взлом этого моего 'детища' меня ни сколько не волнует, т.к. это курсач...

ya.ru или google.ru Строка поиска Crypto API, Криптопровайдеры, хеширование, zlib, алгоритмы сжатия. Еще можно на intuit.ru там статьи Безопасность информационных технологий.

534
23 марта 2006 года
HarryAxe
448 / / 19.01.2006
Цитата:
Originally posted by alibabaich
ya.ru или google.ru Строка поиска Crypto API, Криптопровайдеры, хеширование, zlib, алгоритмы сжатия. Еще можно на intuit.ru там статьи Безопасность информационных технологий.

Да на данный момент речь идёт не о криптографии, а о встраивании кода защиты в исполняемый модуль. А общая схема работы криптосистемы вполне понятна: генерим ключ (исходя из введённых пользователем данных, или, скажем, адреса сетевой карты или серийного номера жёсткого диска/процессора), генерим код декриптования (в классическом варианте - RSA), кодируем модуль выбранным алгоритмом (полностью или только исполняемый код), используя сгенерированный ключ; встраиваем в модуль алгоритм дешифрования, встраиваем проверку ключа с помощью хэш-суммы, чтобы предотвратить попытку раскодировать модуль с помощью неверного ключа. Дешифрование выглядит проще: заново генерим ключ (или запрашиваем данные у пользователя), верифицируем его, дешифруем по вшитому алгоритму, используя новый ключ. В конце можно ещё CRC полученного файла сверить на всякий случай. Причём весь процесс дешифровки должен происходить на стороне закодированного модуля, вот в этом-то и загвоздка! А по какому алгоритму кодировать он и сам найдёт (чай, курсовой-то не по экономике или химии, должен разбираться...)

534
23 марта 2006 года
HarryAxe
448 / / 19.01.2006
В общем, встроить код можно, скомпоновав его весь в Dll и затем полностью скопировав .code секцию в целевой PE модуль, предварительно изменив точку входа и сохранив оригинальную. Причём, учитывая требования антивируса, при дешифровке модуль нужно будет не изменять, а полностью пересоздавать (иными словами, если process.exe использует зашифрованную library.dll, то просто так взять, расшифровать да и подсунуть новую dll для связывания с process.exe не удастся, и подмену dll нужно будет выполнять вручную. Но это если с антивирусом... Попозже поищу как избавтся от этой проблемы). Ещё тут нужно будет немного ассемблера для подмены точек входа, но ещё подумаю, можно ли будет всё-таки без него обойтись. Короче, чуть попозже попробую подготовить код (сейчас немного занят другой проблемой...) и выложить результаты
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог