C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Супер-пупер защищенное приложение  (Прочитано 7470 раз)
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Супер-пупер защищенное приложение
« : 26 Март 2011, 17:05:36 »

Привет всем!  Данная тема является, так сказать, расширением этого топика https://cbuilder.ru/index.php?topic=6748.0 
Расскажу подробнее о моем замысле и попрошу вас помочь мне в его осуществлении...
Итак, есть идея создать некоторое, так сказать, защищенное приложение. Защита его подразумевает то, что не введя пароль, нельзя определить для чего программа вообще нужна (при запуске сразу требуется пароль).
Все функции, константы и классы для этого приложения предполагается вынести в DLL файл. Сам файл DLL зашифровать алгоритмом AES с ключом высокой стойкости (его необходимо вводить при запуске приложения). EXE файл приложения при запуске требует пароль, расшифровывает DLL файл, загружает его и передает управление программой в DLL.
Внимание вопросы:
1. Возможно ли это осуществить в принципе;
2. Возможно ли расшифровать DLL не на жесткий диск, а в оперативную память и оттуда загрузить в приложение, то есть, чтобы на диске нигде не сохранялся расшифрованный DLL файл.
Записан
code doctor
... лучше с умным потерять ...
Участник


Сказали спасибо: +95/-13
Offline

Сообщений: 712

когда очень хорошо - тоже плохо ...


Re: Супер-пупер защищенное приложение
« Ответ #1 : 26 Март 2011, 17:12:30 »

если отвлечься от того, что всем пофиг супер-пупер призывы типа "Внимание вопросы" (к стати, после первого слова я бы поставил запятую ) , то посмотреть можно здесь : http://exelab.ru/f/index.php?action=vthread&forum=6&topic=15503
Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


Re: Супер-пупер защищенное приложение
« Ответ #2 : 26 Март 2011, 17:24:12 »

Нафига тебе DLL? Вернись в первую тему и почитай.
Записан
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Re: Супер-пупер защищенное приложение
« Ответ #3 : 26 Март 2011, 17:32:20 »

Цитата: S0mbre от 26 Март 2011, 17:24:12
Нафига тебе DLL? Вернись в первую тему и почитай.
Вернись тоже и ответь, пожалуйста... 
Записан
ht1515
Гость
Re: Супер-пупер защищенное приложение
« Ответ #4 : 26 Март 2011, 22:36:54 »

Цитировать
Возможно ли расшифровать DLL не на жесткий диск, а в оперативную память и оттуда загрузить в приложение, то есть, чтобы на диске нигде не сохранялся расшифрованный DLL файл.
можно. ищи лоудер винды , переделывай его. Пиши письмо микрософту, пусть его добавят в новые релизы.
Записан
code doctor
... лучше с умным потерять ...
Участник


Сказали спасибо: +95/-13
Offline

Сообщений: 712

когда очень хорошо - тоже плохо ...


Re: Супер-пупер защищенное приложение
« Ответ #5 : 26 Март 2011, 22:39:05 »

Цитата: ht1515 от 26 Март 2011, 22:36:54
можно. ищи лоудер винды , переделывай его. Пиши письмо микрософту, пусть его добавят в новые релизы.
а это тут при чем...
Записан
ht1515
Гость
Re: Супер-пупер защищенное приложение
« Ответ #6 : 26 Март 2011, 22:41:15 »

code doctor, ну а кто грузит экзешники и всякие dll в сегменты кода ,данных и тд? Не гномик же, сидящий в пк. Так то реально, пусть загрузчик и расшифровывает тогда.
Записан
code doctor
... лучше с умным потерять ...
Участник


Сказали спасибо: +95/-13
Offline

Сообщений: 712

когда очень хорошо - тоже плохо ...


Re: Супер-пупер защищенное приложение
« Ответ #7 : 26 Март 2011, 22:52:06 »

человек, похоже, не может четко сформулировать задачу, а все прикалываются , хотя нет ничего невозможного, существуют временные файлы, FileStream, MemoryStream, шифро-крипто, хотя от очумелых ручек защиты нет. Но запутать следы можно всегда, помня о том, что затраты на взлом программы должны окупаться ее стоимостью, я не думаю, что при нормальной защите кому-нибудь захочется ломать эту самую супер-пупер прогу, которую сотворил d7d1cd , разве что из спортивного интереса, но такого рода решения обсуждаются и остаются в определенном кругу, и существенного вреда не наносят, тем более , d7d1cd свои алгоритмы криптования-шифрования-защиты не придумывает, так что он и его прога изначально не интересны ни крутым спецам, ни спецслужбам, как бы грустно оно ни было . А в большинстве случаев для среднестатистического пользователя достаточно "исключающего ИЛИ".
Впрочем, все это давно обсосано, обсуждено, изучено и забыто .
А, может, и впрямь, человек что-нибудь да изобретёт - не надо подрезать ему крылья .
« Последнее редактирование: 26 Март 2011, 22:58:47 от code doctor » Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг


Сказали спасибо: +350/-28
Offline

Сообщений: 2181


Re: Супер-пупер защищенное приложение
« Ответ #8 : 27 Март 2011, 11:08:12 »

DependecyWalker поможет определить назначение программы, а OllyDbg расскажет пароль. Поэтому вопрос - смысл?
Записан
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Re: Супер-пупер защищенное приложение
« Ответ #9 : 27 Март 2011, 11:45:22 »

Как же ваш DependecyWalker расскажет о назначении программы, если весь рабочий код будет зашифрован? И как OllyDbg расскажет пароль, если пароль ни в каком виде в программе не хранится? 
Записан
ht1515
Гость
Re: Супер-пупер защищенное приложение
« Ответ #10 : 27 Март 2011, 12:05:24 »

d7d1cd, ну дык  делай тогда. Че спрашиваешь?
Записан
ht1515
Гость
Re: Супер-пупер защищенное приложение
« Ответ #11 : 27 Март 2011, 12:07:38 »

Цитировать
2. Возможно ли расшифровать DLL не на жесткий диск, а в оперативную память и оттуда загрузить в приложение, то есть, чтобы на диске нигде не сохранялся расшифрованный DLL файл.
ну и че тебе это даст? дамп памяти снимут и все. А если ты прогу только для себя пишешь, то  накой тебе как то шифровать? Тем же раром пароль поставь да и все, если очкуешь что украдут.
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг


Сказали спасибо: +350/-28
Offline

Сообщений: 2181


Re: Супер-пупер защищенное приложение
« Ответ #12 : 27 Март 2011, 13:58:31 »

Цитата: d7d1cd от 27 Март 2011, 11:45:22
Как же ваш DependecyWalker расскажет о назначении программы, если весь рабочий код будет зашифрован? И как OllyDbg расскажет пароль, если пароль ни в каком виде в программе не хранится? 
По используемым системным библиотекам и функциям.
Цитата: d7d1cd от 27 Март 2011, 11:45:22
И как OllyDbg расскажет пароль, если пароль ни в каком виде в программе не хранится? 
И как же вы собрались расшифровывать dll? C чем вы будете сравнивать введенный пароль? AES - симметричный алгоритм шифрования, т.е. пароли на шифрование и расшифровку совпадают. Достаточно будет поставить бряк на введенные символы и отслеживать операции с ними. Далее определяем верный пароль, получаем расшифрованную DLL в памяти, делаем дамп памяти, восстанавливаем таблицу импорта при необходимости. В итоге - мы знаем пароль, имеем расшифрованную dll. Дальше подключаем дизассемблер. Компренэ?
Записан
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Re: Супер-пупер защищенное приложение
« Ответ #13 : 27 Март 2011, 14:16:44 »

Цитата: Tantos от 27 Март 2011, 13:58:31
И как же вы собрались расшифровывать dll? C чем вы будете сравнивать введенный пароль? AES - симметричный алгоритм шифрования, т.е. пароли на шифрование и расшифровку совпадают. Достаточно будет поставить бряк на введенные символы и отслеживать операции с ними. Далее определяем верный пароль, получаем расшифрованную DLL в памяти, делаем дамп памяти, восстанавливаем таблицу импорта при необходимости. В итоге - мы знаем пароль, имеем расшифрованную dll. Дальше подключаем дизассемблер. Компренэ?

С чем буду сравнивать? Интересен ход ваших мыслей... И не понятен... Зачем с чем то сравнивать введенные символы? Ведь они будут ключом к расшифровке!
Почему архивы, зашифрованные WinRar-ом, столь проблематично расшифровать? Можно с таким же успехом поставить бряк в WinRar, отследить введенные символы, ну и так далее... и, в конечном итоге, загнется вся гос. шифровка Америки...
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг


Сказали спасибо: +350/-28
Offline

Сообщений: 2181


Re: Супер-пупер защищенное приложение
« Ответ #14 : 27 Март 2011, 15:26:28 »

Объясняю на пальцах - введенный пароль необходимо проверить на истинность, т.е. что он верный. Так вот - ГДЕ будет храниться верный пароль?
По WinRar - кто сказал, что сложно? Просто переборщики паролей распространены гораздо шире, чем OllyDbg, которым еще надо уметь пользоваться и знать хотя бы зачатки Ассемблера. Если ваша программа действительно будет такой супер-пупер мегаважной, ее сломают. Мой вам совет - не изобретайте велосипед, порыскайте на wasm.ru. Антиотладочные приемы, мутация кода - вот что стоит изучить.
Записан
code doctor
... лучше с умным потерять ...
Участник


Сказали спасибо: +95/-13
Offline

Сообщений: 712

когда очень хорошо - тоже плохо ...


Re: Супер-пупер защищенное приложение
« Ответ #15 : 27 Март 2011, 17:52:47 »

нет, чтобы дельное человеку посоветовать, так они охоту вобче отбивают...
Записан
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Re: Супер-пупер защищенное приложение
« Ответ #16 : 27 Март 2011, 18:47:56 »

Спасибо, code doctor 
Tantos, введенный пароль не надо сравнивать ни с чем. Ведь в WinRAR введенный пароль ни с чем не сравнивается. И я не уверен в том, что зашифрованный WinRAR-ом файл легко сломать. Там используется AES, обладающий высокой степенью защиты. Не зря же его используют для защиты секретных сведений:
Цитировать
В июне 2003 года Агентство национальной безопасности США постановило, что шифр AES является достаточно надёжным, чтобы использовать его для защиты сведений, составляющих государственную тайну. Вплоть до уровня SECRET было разрешено использовать ключи длиной 128 бит, для уровня TOP SECRET требовались ключи длиной 192 и 256 бит
Записан
ht1515
Гость
Re: Супер-пупер защищенное приложение
« Ответ #17 : 27 Март 2011, 18:56:43 »

d7d1cd,
Цитировать
Ведь в WinRAR введенный пароль ни с чем не сравнивается.
Цитировать
Там используется AES, обладающий высокой степенью защиты.
да.

тебе чтобы загрузить dll в память нужен фаил самой dll расшифрованной.
Можешь быстро расшифровать её, потом открыть и удалить. В теории она должна остаться в памяти.
Записан
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Re: Супер-пупер защищенное приложение
« Ответ #18 : 27 Март 2011, 19:03:31 »

ht1515, под словом "открыть" ты имел ввиду LoadLibrary?
Записан
ht1515
Гость
Re: Супер-пупер защищенное приложение
« Ответ #19 : 27 Март 2011, 19:24:01 »

ну
Записан
ht1515
Гость
Re: Супер-пупер защищенное приложение
« Ответ #20 : 27 Март 2011, 19:26:20 »

ну то есть смотри. скачай unlocker прогу.
Открой блокнот, создай фаил и сохрани на раб стол.
Потом открой его. Попробуй удалить - не удалиться. Удали через анлокер - удалит. При это сам фаил будет висеть. Хз может он в каком то буфере временном висит, а из памяти удаляется. Вот протестируй как раз потом расскажешь.
Записан
Rius
Давний друг


Сказали спасибо: +116/-5
Offline

Сообщений: 753


Re: Супер-пупер защищенное приложение
« Ответ #21 : 27 Март 2011, 19:32:13 »

Применение в АНБ США не является показателем качества.
Помимо AES существуют и другие алгоритмы, это не принципиально.
На диск сохранять нельзя.
Главная проблема - выполнить код, не сохранённый в файле, а находящийся лишь в памяти.
Записан
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Re: Супер-пупер защищенное приложение
« Ответ #22 : 27 Март 2011, 20:37:21 »

Цитата: Rius от 27 Март 2011, 19:32:13
Главная проблема - выполнить код, не сохранённый в файле, а находящийся лишь в памяти.

Ну а я про что... 
Записан
alhimera
новенький


Сказали спасибо: +0/-0
Offline

Сообщений: 1


Re: Супер-пупер защищенное приложение
« Ответ #23 : 06 Май 2014, 23:53:00 »

Думаю что тема уже не актуальна, но сам интересуюсь подобным вопросом.
Делаю прогу, пока не на С++, но может быть, если освою его хоть немного, то перепишу.
В проге использую AES. При вводе пароля его не обязательно сравнивать с каким-то паролем (это конкретно относится к способу AES шифрования).
У нас может иметься переменная, зашифрованная AES, ключем к которой и является наш пароль. И мы знаем чему изначально равна была переменная в первоначальном виде и при вводе пароля мы декодируем шифрованную переменную и сравниваем с известной. И если обе равны, то мы ввели верный пароль, иначе - ...
Таким образом, ключ хранится только у нас в голове.
Но вот есть другой вариант - кража ключа при вводе путем считывания нажатий клавиш клавиатуры, а если используем виртуальную, то можно отследить и положение кнопок ВК и отослать пароль путем кликов мыши.
Так что как не извращайся, а на любую жопу найдется "лом" с винтом.

По поводу загрузки в оперативу - а ведь при копировании текста, файлов,  они помещаются в буфер обмена - нельзя ли туда выгрузить?
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг


Сказали спасибо: +350/-28
Offline

Сообщений: 2181


Re: Супер-пупер защищенное приложение
« Ответ #24 : 07 Май 2014, 03:23:34 »

Не путайте копирование в буфер обмена с хранением данных в оперативной памяти!
Записан
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Re: Супер-пупер защищенное приложение
« Ответ #25 : 07 Май 2014, 18:23:27 »

Цитата: alhimera от 06 Май 2014, 23:53:00
Но вот есть другой вариант - кража ключа при вводе путем считывания нажатий клавиш клавиатуры, а если используем виртуальную, то можно отследить и положение кнопок ВК и отослать пароль путем кликов мыши.
Ну я рассматривал защиту программы от взлома, а не защиту от кражи пароля. Представьте ситуацию: вам дали исполняемый файл, зашифрованный алгоритмом AES с неизвестным размером ключа. Приведите, пожалуйста, алгоритм запуска этого файла, который (алгоритм) реально выполнить за мыслимое время.

Цитата: alhimera от 06 Май 2014, 23:53:00
По поводу загрузки в оперативу - а ведь при копировании текста, файлов,  они помещаются в буфер обмена - нельзя ли туда выгрузить?
Ну я думаю, что загрузить исполняемый файл в оперативку - это вообще не проблема. Как его запустить на выполнение?
Записан
Hex
Участник


Сказали спасибо: +16/-3
Offline

Сообщений: 38


Re: Супер-пупер защищенное приложение
« Ответ #26 : 08 Май 2014, 18:37:39 »

1. выносите критичный ("секретный") код в отдельный модуль
2. компилите
3. изучаете формат obj (на этом думаю и закончите, поскольку учиться НИХРЕНА не хотите, "дайте мне компонент" )
4. затем шифруете и подключаете файл как RAW ресурс к своей проге
5. при вводе пароля дешифруете в память и запускаете
6. вуаля

PS неадекват детектед.
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг


Сказали спасибо: +350/-28
Offline

Сообщений: 2181


Re: Супер-пупер защищенное приложение
« Ответ #27 : 09 Май 2014, 15:24:09 »

Что у вас за приложение, что его надо защищать? Кому оно будет интересно?
Записан
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Re: Супер-пупер защищенное приложение
« Ответ #28 : 09 Май 2014, 16:13:25 »

Цитата: Tantos от 09 Май 2014, 15:24:09
Что у вас за приложение, что его надо защищать? Кому оно будет интересно?
Честно? Извините, не могу написать  . У меня, например, есть приложение, которое будет интересно определенному кругу лиц. Поэтому его от них надо защитить.
А вообще, может быть нет никакого приложения. Просто интересно само создание защиты.
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг


Сказали спасибо: +350/-28
Offline

Сообщений: 2181


Re: Супер-пупер защищенное приложение
« Ответ #29 : 10 Май 2014, 11:35:07 »

Цитата: d7d1cd от 09 Май 2014, 16:13:25
У меня, например, есть приложение, которое будет интересно определенному кругу лиц. Поэтому его от них надо защитить.
А вообще, может быть нет никакого приложения. Просто интересно само создание защиты.
Купите коммерческую навесную защиту. Правда, их стоимость обычно в тысячах долларах измеряется. Вы уверены, что ваша программа стоит больше?
Что касается создания защиты своими руками... Не на вашем уровне владения программирования, если честно. Можете начать обучение с wasm.ru.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.06 секунд. Запросов: 19.