|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.04.2015, 09:17 | #1 |
Регистрация: 10.04.2015
Сообщений: 7
|
Запуск EXE внутри файла.
Стоит задача - внутрь одного EXE в качестве ресурса загнать другой EXE, и в необходимый момент запустить этот EXE.
Представляется ли такая возможность? Хотя бы как-то косвенно, через манипуляции с файлами? Заранее благодарен!)) |
10.04.2015, 10:07 | #2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
легко. Файл извлекается из ресурсов, сохраняется на диск, запускается, по завершению удаляется.
|
10.04.2015, 10:16 | #3 |
Регистрация: 10.04.2015
Сообщений: 7
|
|
10.04.2015, 10:36 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
гугл - "msdn resources", "msdn createfile", ...
|
10.04.2015, 16:27 | #5 |
Регистрация: 10.04.2015
Сообщений: 7
|
Я нашёл много ссылок, но у меня Utf-8, и я ещё не так разбираюсь в конвертировании System::String<->string<->char *<->wstring<->wchar *
И можно помощь в виде одной функции, которая будет выгружать бинарник из Resources в путь, указанный в качестве аргумента? Буду очень признателен! Не прошу сей момент, но как выдастся время! |
10.04.2015, 16:51 | #6 | |||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
Цитата:
Цитата:
FindResource, LoadResource,LockResource,SizeofResource,CreateFile,WriteFile,CloseHandle |
|||
10.04.2015, 18:05 | #7 | |
Регистрация: 10.04.2015
Сообщений: 7
|
Цитата:
|
|
17.04.2015, 13:56 | #8 | |
xor esp, esp
Форумчанин
Регистрация: 11.02.2014
Сообщений: 135
|
Цитата:
Что это такое? Что это за магия? А просто массив типа wchar_t размером в 256 символов создать религия не позволяет? И зачем эти ресурсы? Бери WinHex, открывай файл далее Edit -> Copy All -> C Source Получишь массив байт этого вашего файла. Вставляешь его в какой-нибудь файл file.cpp, инклудишь этот файл в свой проект. Запоминаешь имя массва, а далее просто юзаешь связку CreateFile/WriteFile/CloseHandle, чтобы записать это все в файл. Пути не надо хардкодить, GetTempPath ( гугли ) получит путь до Temp папки, туда извлекаешь и ShellExecute на извлеченный файл. Правда, прости, за такой метод антивирусы тебя обзовут Trojan.Dropper'м. Но почему-то мне кажется, что что-то подобное ты и пишешь, ибо зачем такое?)) |
|
17.04.2015, 14:09 | #9 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
17.04.2015, 16:42 | #10 |
xor esp, esp
Форумчанин
Регистрация: 11.02.2014
Сообщений: 135
|
ТС, впрочем, тебе уже ответили. Если надо не косвенно, а прям в памяти грузить, то юзай это: https://leakforums.org/thread-190044
Функцию: Код:
Код:
Код:
Потом просто вызывай эту функцию, если все прошло успешно, она вернет тебе адрес точки входа загруженного в память экзешника ( все релоки, таблица импортов и т.д будут ок ). Потом вызывай CreateThread по этому адресу. На всякий случай с помощью VirtualProtect присвой PAGE_EXECUTE_READWRITE атрибуты доступа. Ибо я не уверен, что они изначально присутствуют. Но это все для тебя будет сложно + как я понял у тебя не Visual C++, а фигня какая-то ( любители C++/CLI, ничего личного ). Поэтому юзай уже предложенный метод. Последний раз редактировалось Malriser; 17.04.2015 в 16:48. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запуск файла (*.exe) в скрытом режиме | @san4ez | Общие вопросы Delphi | 13 | 05.10.2011 14:01 |
Запуск exe-файла с переменными параметрами | royun | Общие вопросы Delphi | 5 | 15.09.2011 11:18 |
Запуск Откомпилированого EXE Файла | Deman005 | Работа с сетью в Delphi | 4 | 03.08.2010 01:57 |
Прописать запуск exe-файла | Manitu | Помощь студентам | 4 | 07.03.2008 10:31 |
Запуск exe-файла из приложения | TerVovik | Помощь студентам | 4 | 12.12.2007 16:21 |