Форум программистов, компьютерный форум CyberForum.ru

Запуск exe из ресурсов без распаковки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.67
Sky-WaLkeR
1 / 1 / 0
Регистрация: 15.06.2012
Сообщений: 59
03.07.2012, 16:31     Запуск exe из ресурсов без распаковки #1
Всем доброго времени суток!

Сразу оговорка: нужно для легальных целей - защита другой программы от декомпиляции. Никаких вирусов и прочих вредителей...

Можно ли запустить exe из ресурсов без распаковки на диск? И лучше перед запуском проводить манипуляции с его бинарным кодом (дешифровка, например)...

Суть в следующем: есть программа, написанная на ЯП AutoIt, декомпилировать которую - дело 5 секунд. А код Си++, насколько я знаю, декомпилировать нельзя (только про дизассемблер не говорите, у целевой аудитории нет таких познаний). Вот и возникла идея - модуль на Си запрашивает пароль, если правильный - запускает основную прогу. Чтобы исключить распаковку редакторами ресурсов, хочется применить какую-нибудь простейшую шифровку ресурса с exe...

Возможно ли такое? Заранее спасибо за ответ.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2012, 16:31     Запуск exe из ресурсов без распаковки
Посмотрите здесь:

C++ Запуск exe
Запуск .exe из программы C++
Запуск exe файла в графическом режиме C++
запуск *.exe на других ПК C++
Запуск программы без создания окна. Запуск фоновой программы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
03.07.2012, 23:22     Запуск exe из ресурсов без распаковки #2
Запустить exe не иначе как отдельным файлом в специальном формате не позволяет ОС. Возможно, как-то и можно, но это уже хак.
rlib
20 / 20 / 1
Регистрация: 01.05.2012
Сообщений: 60
04.07.2012, 02:16     Запуск exe из ресурсов без распаковки #3
Возможно; придётся самому выполнить всю работу виндового лоадера - настройки аддрессов из импортов и т.д.

Добавлено через 4 минуты
То, что вы собиратесь писать, называется Molebox (не сочтите за рекламу!) - ничего на диск не пишется.
Попробуйте, также, обратиться к ThinApplication от VMWare.
Sky-WaLkeR
1 / 1 / 0
Регистрация: 15.06.2012
Сообщений: 59
04.07.2012, 11:03  [ТС]     Запуск exe из ресурсов без распаковки #4
rlib
За Molebox спасибо, буду пробовать... Жаль, конечно, то не самописная программа\код с++, но все же выход.

UPD: правда, у него лицензия Shareware...
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.07.2012, 11:07     Запуск exe из ресурсов без распаковки #5
Если целю является только защита от декомпиляции, можно использовать паковщик ехе файлов. Например mpress не позволяет "расжать" файл (в отличии от наипопулярнейшего upx).
Sky-WaLkeR
1 / 1 / 0
Регистрация: 15.06.2012
Сообщений: 59
04.07.2012, 11:17  [ТС]     Запуск exe из ресурсов без распаковки #6
Deviaphan
Спасибо, но он мне, к сожалению, не подходит... При запуске сжатого exe выдает ошибку а-ля не найден файл скрипта (AutoIt - интерпретируемый язык, exe=autoit3.exe+script.au3, зашитый в его недрах.). Но качество упаковки радует, буду использовать в других проектах

Пробовал кучу разных упаковщиков\протекторов, из них половина вываливалась с ошибкой, а половина игнорировалась декомпилятором... Для уменьшения размера пользуюсь FSG, но он легко обходится...
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.07.2012, 11:24     Запуск exe из ресурсов без распаковки #7
Можно через обфускатор прогнать. Тогда студенты (а у кого ещё знаний может не хватить?) не смогут получить читабельный код и, как минимум, им придётся думать, как же эта каша работает.)

Добавлено через 1 минуту
Цитата Сообщение от Sky-WaLkeR Посмотреть сообщение
Но качество упаковки радует
Вполне возможно, что файл скрипта при упаковке отбросился, если он как-нибудь нестандартно к ехе прикреплен.) Но в 2-10 раз сжимает махом в большинстве exe/dll.
Sky-WaLkeR
1 / 1 / 0
Регистрация: 15.06.2012
Сообщений: 59
04.07.2012, 11:25  [ТС]     Запуск exe из ресурсов без распаковки #8
Тоже пробовал, декомпилятор "деобфусцирует" на лету...
Был вариант записывать все строки в бинарном виде и на лету разворачивать, тогда читать действительно трудно, но все же открыть легко...
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.07.2012, 11:27     Запуск exe из ресурсов без распаковки #9
О! Ещё вот этот попробуй, может с ним заработает http://ru.wikipedia.org/wiki/PECompact
Sky-WaLkeR
1 / 1 / 0
Регистрация: 15.06.2012
Сообщений: 59
04.07.2012, 11:30  [ТС]     Запуск exe из ресурсов без распаковки #10
Пробовал, декомпилятор открывает (но ошибку не дает).
Пробовал: FSG, Mew11, ASPack, PECompact, UPX, Private exe Protector, теперь еще и mpress
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.07.2012, 11:33     Запуск exe из ресурсов без распаковки #11
Трям...
Тогда я тоже за ThinApplication. Но размер увеличится, а не уменьшится.)
Catstail
Модератор
 Аватар для Catstail
21486 / 10239 / 1668
Регистрация: 12.02.2012
Сообщений: 17,120
04.07.2012, 12:14     Запуск exe из ресурсов без распаковки #12
Я бы поступил так:

1) скрипт захорировать (причем, не одним байтом, а блоком байтов на 1000)
2) написать на C++ "запускач"
3) слить (двоично) запускач и хорированный скрипт
4) запускач при запуске (после запроса пароля) лезет в собственный хвост, расшифровывает скрипт и сохраняет его под случайным именем в Tmp, запускает оттуда, ждет завершения, удаляет из Tmp...
Sky-WaLkeR
1 / 1 / 0
Регистрация: 15.06.2012
Сообщений: 59
04.07.2012, 12:21  [ТС]     Запуск exe из ресурсов без распаковки #13
Вариант хороший, но тоже есть своя засада: при распаковке на диск юзер может отловить скрипт в его первоначальном состоянии (например с помощью FileMon) и декомпилировать...

P.S: а что значит захорировать?
Catstail
Модератор
 Аватар для Catstail
21486 / 10239 / 1668
Регистрация: 12.02.2012
Сообщений: 17,120
04.07.2012, 12:42     Запуск exe из ресурсов без распаковки #14
Это да. Но в системах защиты нужно иметь чёткую модель угрозы (от кого защищаемся). Если ОН умеет пользоваться FileMon, то ОН - не совсем лох. Защитить от такого СКРИПТ проблематично.

Ха! А как запускается интерпретатор скриптового языка? Может быть сделать вот как:

1) просто захорировать (см. выше) скрипт
2) сделать фильтр-расшифровщик (берет упакованный поток из stdin, распакованный поток направляет в stdout)
3) сделать конвейер: расшифровщик | интерпретатор
4) все это запускать в скрытом окне...
Sky-WaLkeR
1 / 1 / 0
Регистрация: 15.06.2012
Сообщений: 59
04.07.2012, 13:11  [ТС]     Запуск exe из ресурсов без распаковки #15
Модель угрозы есть: не лох, но и не крут (в качестве его инструментов - FileMon, декомпилятор, все.).

Хм, идея интересная... Можешь показать пример?
Интерпретатор Autoit3.exe здесь
Исходный код здесь
Результирующий exe здесь
Компилятор, наверное, не стоит выкладывать... (скорость ужас, 1Мб грузит секунд 40) Но если надо, выложу.
Catstail
Модератор
 Аватар для Catstail
21486 / 10239 / 1668
Регистрация: 12.02.2012
Сообщений: 17,120
04.07.2012, 13:50     Запуск exe из ресурсов без распаковки #16
Все получил. Оказывается, я немного не понял постановку. Оказывается скрипт при использовании exe-файла не существует. И прятать надо не скрипт, а экзешник. Так что идея с конвейером не проходит. Но задача интересная. Буду думать.
Ganibal95
1 / 1 / 0
Регистрация: 15.01.2012
Сообщений: 23
12.08.2012, 10:45     Запуск exe из ресурсов без распаковки #17
А можно-ли создать новый процесс а старый закрыть?
Catstail
Модератор
 Аватар для Catstail
21486 / 10239 / 1668
Регистрация: 12.02.2012
Сообщений: 17,120
12.08.2012, 21:06     Запуск exe из ресурсов без распаковки #18
В принципе - да.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2012, 19:21     Запуск exe из ресурсов без распаковки
Еще ссылки по теме:

Некорректный запуск exe в VS 2013 C++
Запуск .exe с параметрами? C++
C++ Скрытый запуск exe файла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ganibal95
1 / 1 / 0
Регистрация: 15.01.2012
Сообщений: 23
20.08.2012, 19:21     Запуск exe из ресурсов без распаковки #19
Нашел способ, сделал на PureBasic.
Yandex
Объявления
20.08.2012, 19:21     Запуск exe из ресурсов без распаковки
Ответ Создать тему
Опции темы

Текущее время: 21:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru