Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2015, 09:17   #1
XuPoH1
 
Регистрация: 10.04.2015
Сообщений: 7
Счастье Запуск EXE внутри файла.

Стоит задача - внутрь одного EXE в качестве ресурса загнать другой EXE, и в необходимый момент запустить этот EXE.
Представляется ли такая возможность? Хотя бы как-то косвенно, через манипуляции с файлами?
Заранее благодарен!))
XuPoH1 вне форума Ответить с цитированием
Старый 10.04.2015, 10:07   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

легко. Файл извлекается из ресурсов, сохраняется на диск, запускается, по завершению удаляется.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 10.04.2015, 10:16   #3
XuPoH1
 
Регистрация: 10.04.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от alexcoder Посмотреть сообщение
легко. Файл извлекается из ресурсов, сохраняется на диск, запускается, по завершению удаляется.
Можно ссылку, где почитать про необходимые для этих манипуляций системные функции? C:
XuPoH1 вне форума Ответить с цитированием
Старый 10.04.2015, 10:36   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

гугл - "msdn resources", "msdn createfile", ...
p51x вне форума Ответить с цитированием
Старый 10.04.2015, 16:27   #5
XuPoH1
 
Регистрация: 10.04.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
гугл - "msdn resources", "msdn createfile", ...
Я нашёл много ссылок, но у меня Utf-8, и я ещё не так разбираюсь в конвертировании System::String<->string<->char *<->wstring<->wchar *
И можно помощь в виде одной функции, которая будет выгружать бинарник из Resources в путь, указанный в качестве аргумента? Буду очень признателен! Не прошу сей момент, но как выдастся время!
XuPoH1 вне форума Ответить с цитированием
Старый 10.04.2015, 16:51   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
System::String
Откуда? У вас не С++, а С++ CLI или C#?

Цитата:
System::String<->string<->char *<->wstring<->wchar *
Зачем? Нафига? И прочие матерные слова... Посмотрите, что такое System::String, какие там символы, методы и т.д.

Цитата:
И можно помощь в виде одной функции, которая будет выгружать бинарник из Resources в путь, указанный в качестве аргумента?
Я за вас погуглил, раз вас забанили.
FindResource, LoadResource,LockResource,SizeofResource,CreateFile,WriteFile,CloseHandle
p51x вне форума Ответить с цитированием
Старый 10.04.2015, 18:05   #7
XuPoH1
 
Регистрация: 10.04.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Откуда? У вас не С++, а С++ CLI или C#?


Зачем? Нафига? И прочие матерные слова... Посмотрите, что такое System::String, какие там символы, методы и т.д.


Я за вас погуглил, раз вас забанили.
FindResource, LoadResource,LockResource,SizeofResource,CreateFile,WriteFile,CloseHandle
Большое вам спасибо! )
XuPoH1 вне форума Ответить с цитированием
Старый 17.04.2015, 13:56   #8
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

Цитата:
Сообщение от XuPoH1 Посмотреть сообщение
Я нашёл много ссылок, но у меня Utf-8, и я ещё не так разбираюсь в конвертировании System::String<->string<->char *<->wstring<->wchar *
И можно помощь в виде одной функции, которая будет выгружать бинарник из Resources в путь, указанный в качестве аргумента? Буду очень признателен! Не прошу сей момент, но как выдастся время!


Что это такое? Что это за магия? А просто массив типа wchar_t размером в 256 символов создать религия не позволяет?

И зачем эти ресурсы? Бери WinHex, открывай файл далее Edit -> Copy All -> C Source

Получишь массив байт этого вашего файла. Вставляешь его в какой-нибудь файл file.cpp, инклудишь этот файл в свой проект. Запоминаешь имя массва, а далее просто юзаешь связку CreateFile/WriteFile/CloseHandle, чтобы записать это все в файл. Пути не надо хардкодить, GetTempPath ( гугли ) получит путь до Temp папки, туда извлекаешь и ShellExecute на извлеченный файл. Правда, прости, за такой метод антивирусы тебя обзовут Trojan.Dropper'м. Но почему-то мне кажется, что что-то подобное ты и пишешь, ибо зачем такое?))
Malriser вне форума Ответить с цитированием
Старый 17.04.2015, 14:09   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Что это такое? Что это за магия? А просто массив типа wchar_t размером в 256 символов создать религия не позволяет?
Ну автор зачем-то взял смесь из C# и C++ (C++/CLI), вместо чистого C++ или C#, и запутался в ней.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 17.04.2015, 16:42   #10
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

ТС, впрочем, тебе уже ответили. Если надо не косвенно, а прям в памяти грузить, то юзай это: https://leakforums.org/thread-190044

Функцию:

Код:
 void *pe_load_memory_to_current_memory(unsigned char *data, LPVOID ImageBase);
Не забудь раскомментировать это:

Код:
    //return ntheader->OptionalHeader.AddressOfEntryPoint;
и закомментировать это:
Код:
 return (void*)baseaddr;

Потом просто вызывай эту функцию, если все прошло успешно, она вернет тебе адрес точки входа загруженного в память экзешника ( все релоки, таблица импортов и т.д будут ок ). Потом вызывай CreateThread по этому адресу. На всякий случай с помощью VirtualProtect присвой PAGE_EXECUTE_READWRITE атрибуты доступа. Ибо я не уверен, что они изначально присутствуют.

Но это все для тебя будет сложно + как я понял у тебя не Visual C++, а фигня какая-то ( любители C++/CLI, ничего личного ).

Поэтому юзай уже предложенный метод.

Последний раз редактировалось Malriser; 17.04.2015 в 16:48.
Malriser вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск файла (*.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