Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
9 / 9 / 7
Регистрация: 01.03.2015
Сообщений: 182

Запустить exe файл из ресурсов не создавая временный файл

03.09.2016, 14:02. Показов 8634. Ответов 87
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
у меня есть в ресурсах массив байтов, который по сути является .exe файлом. мне нужно запустить это массив байтов как .exe файл. Такое решение не предлагать: "Создать файл, записать в него массив байтов и запустить файл", т.к. мне это желательно сделать не создавая лишних файлов

Добавлено через 5 минут
запуск должен быть с параметрами
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.09.2016, 14:02
Ответы с готовыми решениями:

Запустить exe-файл из ресурсов
Всем доброго времени суток. У меня возникла потребность в запуске экзкшного файла который находится в ресурсах. Необходимо вытащить...

Как запустить файл exe из ресурсов
я запихнул файл exe в ресурс в basic теперь мне надо что бы при нажатии на button этот ресурс воспроизвелся!!!!

Как запустить exe файл из ресурсов в RAD Studio XE6
Здравствуйте, помогите мне, я в RAD Studio XE6 добавил ехе файл в ресурсы таким вот образом project=> Resources and Inages=> add и...

87
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 19:20
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Ashaxm Посмотреть сообщение
Или может быть поместить в ресурсы проекта оболочки как byte а при выполнении условия переименовать в .ехе
Надо все равно создавать временный файл. Запустить его, потом удалить, никто и не узнает, что файл ЕХЕ лежит в проге. А как хранить его, тут на выбор, можно в данные или ресурсы.
1
Эксперт .NET
 Аватар для Rius
13298 / 7755 / 1685
Регистрация: 25.05.2015
Сообщений: 23,622
Записей в блоге: 14
01.09.2025, 20:01
Цитата Сообщение от a380 Посмотреть сообщение
создавать временный файл. Запустить его, потом удалить, никто и не узнает
systeninternals filemon узнает.

Программа, находящаяся в физической доступности злоумышленника, не может быть защищена ничем.
Вопрос только в соотношении профита и затрат.
1
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 20:15
Цитата Сообщение от Rius Посмотреть сообщение
systeninternals filemon узнает.
Для бытового применения потянет. Чтобы кучу DLL например не таскать, запихнул в один файл и запускай их по надобности. На работе например, все свои.
А так да, глупости это все - чужие проги запускать, свою напиши, исходники есть, можно выбрать.
0
01.09.2025, 21:19

Не по теме:

любопытно, неужто WinAPI CreateProcess умеет втискивать новый процесс в существующий ??
Я говорил про концептуально идею, а не реализацию. Если такое невозможно арпиори -- тогда тем более не стоит пытаться так делать. (✿◠‿◠) Может более шарящие знают как эмулировать выполнение кода из одной программы в другой, но на мой взгляд всё это от лукавого.

0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3450 / 2771 / 575
Регистрация: 04.09.2018
Сообщений: 8,715
Записей в блоге: 3
01.09.2025, 21:32
Инжектированием, в основном, занимаются вирусописатели. И это делается на C++. Но вроде бы, из контекста вопроса не требуется внедрять один процесс в другой. Чел хочет "невидимо" запустить сторонний exe..
1
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 21:46
Цитата Сообщение от wizard41 Посмотреть сообщение
это делается на C++
Можно и батником добавить в конец файла, ума не надо. Потом двигаешь в нужную позицию своей проги и читаешь на известную длину, любой язык это может. Вирусы тоже на любом языке.

В вопросе было про байты или про запуск, все как обычно - хочу все, не знаю что, думайте.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
01.09.2025, 23:39

Не по теме:

Цитата Сообщение от wizard41 Посмотреть сообщение
Инжектированием, в основном, занимаются вирусописатели
где-то сейчас фыркнула целая толка мододелов и читеров.



Ashaxm,
Можно чуть подробней, какая изначально задача решается? Пользователь не должен вытащить ваш второй exe вне основной программы? Этот второй exe на .net, или вообще рандомная программа?
1
02.09.2025, 09:05

Не по теме:

Цитата Сообщение от Wolfdp Посмотреть сообщение
целая толка мододелов и читеров
Ага, я этих тоже имел в виду.

0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 57
02.09.2025, 10:57
Цитата Сообщение от Wolfdp Посмотреть сообщение
Пользователь не должен вытащить ваш второй exe вне основной программы? Этот второй exe на .net
Именно так. Всё на vb.net Оболочка проверяет условие и запускает или не запускает ехе-файл. К которому юзер не должен иметь доступа.
0
Эксперт .NET
 Аватар для Rius
13298 / 7755 / 1685
Регистрация: 25.05.2015
Сообщений: 23,622
Записей в блоге: 14
02.09.2025, 10:59
Второй exe файл на чём написан?

Почему юзер не должен иметь доступа?
0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 57
02.09.2025, 11:05
Цитата Сообщение от Rius Посмотреть сообщение
Почему юзер не должен иметь доступа?
Написан на С++ имхо. Больше я ничего не могу знать. Таковы условия поставленой мне задачи.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3450 / 2771 / 575
Регистрация: 04.09.2018
Сообщений: 8,715
Записей в блоге: 3
02.09.2025, 12:35
Ashaxm, как уже сказали - на 100% от пользователя ничего скрыть не выйдет.
Самый оптимальный вариант: ложишь свой exe в ресурсы "запускатора". Когда нужно его запустить - твое приложение распаковывает его куда нибудь в %userprofile%\%appdata%, запускает с передачей параметров.. Пользователь при этом ничего не видит и не знает откуда оно взялось..

После закрытия этот exe тайком удаляется.

Добавлено через 1 минуту
Обычный юзер ничего не поймет и не найдет. А более менее толковый и из твоего приложения выковыряет, если надо...

Добавлено через 3 минуты
Цитата Сообщение от wizard41 Посмотреть сообщение
от пользователя
От ОС (системы) имелось в виду. А тут уже кто как умеет с ней работать и какими инструментами..
0
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
02.09.2025, 14:51
Ashaxm,
И наверное в автозапуске прописан ? Вот там юзер его и найдет случайно. Гарантия 100%.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3450 / 2771 / 575
Регистрация: 04.09.2018
Сообщений: 8,715
Записей в блоге: 3
02.09.2025, 15:23
Могу конечно подсказать вариант, но он достаточно сложный.
Выкинуть содержимое ресурса в MemoryStream, получить на него указатель и попытаться запустить его от туда. Без физического копирования на диск. Но автор вопроса явно с этим не справится сам.
1
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 57
02.09.2025, 15:32
Цитата Сообщение от wizard41 Посмотреть сообщение
не справится сам
Спасибо! вот это то что хотелось бы. Да, самому будет сложновато и долго, не приходилось. А подсказать плз? хотя бы какой минимум.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
02.09.2025, 16:06
Цитата Сообщение от wizard41 Посмотреть сообщение
Выкинуть содержимое ресурса в MemoryStream, получить на него указатель и попытаться запустить его от туда. Без физического копирования на диск.
На StackOverflow пишут что без файла винда откажется сотрудничать.

Цитата Сообщение от wizard41 Посмотреть сообщение
Когда нужно его запустить - твое приложение распаковывает его куда нибудь в %userprofile%\%appdata%
Я бы отталкивался от этого, опционально докинув такое:
- попробовать использовать Access Control List. Гуглим, там всё просто.
- сам файл создавать как системный и скрытый (антивирус будет в восторге). Если получиться задействовать ACL, то этот пункт несколько бессмысленный.
- в самом приложении зашифровать исходный exe, а сам пароль обфусцировать и применять SecureString. Хотя тут вообще всё приложение обфусцировать нужно в любом случае.
- если не получится задействовать ACL, хранить не просто в AppData, а в менее очевидном месте. Проблема в том, что пользователю 100% доступна только его системная папка юзера (в которую и входит этот самый AppData), так что сильно не разгуляешься (либо запрашивать права админа)
- подписываться на закрытие приложения и грохать файл.

Ломается к сожалению очень просто:
- в диспетчере палим запуск вашего приложения и там же палим путь к нему.
- грохаем хост-приложение, чтобы оно не смогло "кильнуть" нужный exe.
- либо переводим систему в сон/гибернацию и смотрим.
- либо на vm делаем снепшот и дальше ковыряем вирутальный диск
- либо любыми средствами проксируем запись на диск и куда-то складируем дубликаты.
0
110 / 74 / 6
Регистрация: 08.08.2025
Сообщений: 716
02.09.2025, 16:08
Цитата Сообщение от wizard41 Посмотреть сообщение
попытаться запустить его от туда
СОМ файлы сразу начинались с кода, это прокатывало. С ЕХЕ все сложно. Парсер заголовка нужен и вручную делать то, что делает Винда.
0
23 / 20 / 1
Регистрация: 15.06.2018
Сообщений: 437
02.09.2025, 16:09
little hacker, я так понял, ты пытаешься запустить программу которая в байтах в самом коде ?
Если так тогда через прогу которая запускала ранее эту программу есть компилятор, который собирает этот кусок байтов сохраняет программу примерно в папки темп запускает ее выполняет действие закрывает и удаляет.
Сейчас подробно не могу описать и пример привести как это происходит т.к я с телефона сижу, но если я правильно понял твой вопрос я так делал с DLL файлами чтобы скрыть их т.к это был чит и он внедрился в игру при помощи длл а длл нужно было шифровать разными методами
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3450 / 2771 / 575
Регистрация: 04.09.2018
Сообщений: 8,715
Записей в блоге: 3
02.09.2025, 17:48
Цитата Сообщение от Wolfdp Посмотреть сообщение
На StackOverflow пишут
Ну на SO много что пишут. Я сам с exe не пробовал (не было необходимости), но... если немного смухлевать + unsafe == думаю можно. Я не зря сказал про указатель и еще ранее сказал про С++. Там такие штуки проворачиваются на раз.

Добавлено через 2 минуты
Цитата Сообщение от a380 Посмотреть сообщение
Парсер заголовка нужен
Без проблем. Его вычитать можно и из памяти.
0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 57
02.09.2025, 17:56
Цитата Сообщение от pafka1997 Посмотреть сообщение
через прогу которая запускала ранее эту программу есть компилято
это не понятно.
Но да, нужно что-то подобное, если сможешь дай образец то что работает плз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.09.2025, 17:56
Помогаю со студенческими работами здесь

Запустить exe-файл и нажать на кнопку этого exe (файл delphi)
Как осуществить с помощью php: На сайте нажимаю кнопку, далее, после нажатия: 1) идет запуск exe (delphi файл) на сервере 2)...

Запустить BAT-файл из ресурсов
Нужно склеить (склеить могу) bat и готовый exe проекта, что прописать в проект, что бы при нажатии на кнопку запускалась эта команда?

Как запустить vbs файл из ресурсов?
Как запустить vbs файл из ресурсов ?

Как запустить VBS файл из ресурсов?
Здравствуйте уважаемые, мне нужно запустить 1 VBS файл из ресурсов и до меня не доходит как. Видел такой код: ...

Как запустить из ресурсов Торрент-файл
Я залил в ресурсы "Торрент файл" Как мне осуществить его открытие на кнопку? Во 1: Что бы (Торрент файл) Был в строен в саму...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru