![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 23.03.2013
Сообщений: 218
|
![]()
Есть идея запускать приложение прямо в памяти. Т.е. получаю array of byte(массив - ехе файл), который нужно выполнить без сохранения на диск.
Находил такие темы: http://www.delphisources.ru/forum/sh...ad.php?t=13425 http://www.programmersforum.ru/newthread.p...wthread&f=4 http://hpc.name/thread/31283/p1.html Но это всё не то. В идеале запустить ехе файл как отдельный поток на исполнение, или может быть заменить в памяти мой процесс нужным, помоги хотябы с теорией, ну и чуть-чуть практики, если не сложно ![]() |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Когда-то думал о том что можно в CreateThread передать адрес на первый байт некоего массива. Соответственно массив станет как бы исполнимым кодом.
Не пробовал. К тому же уверен что для этого массива нужно будет давать привилегии на исполнение.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 23.03.2013
Сообщений: 218
|
![]()
Обычно передаётся указатель на первый байт процедуры, которая выполняется.
Т.е. получатся можно попытаться указать на точку входа? или я непонимаю чего-то |
![]() |
![]() |
![]() |
#4 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
![]()
Если запускать именно exe, то нужно распарсить заголовок exe файла, переместить все секции так, как указано в заголовке, загрузить библиотеки, уазанные в секции импорта и соответственно заполнить ее. Иными словами выполнить работу загрузчика винды.
|
![]() |
![]() |
![]() |
#5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Я точно механизм не знаю.
Я не развивал эту тему даже с академической точки зрения, но думаю помимо передачи точки входа ты столкнешься с морем проблем при самом исполнении кода.
I'm learning to live...
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 23.03.2013
Сообщений: 218
|
![]()
А если вместо exe сделать dll, не проще ли будет?
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
конечно будет проще, dll именно расчитано на динамическую загрузку.
создали процедуру Start в длл. а в проге, загрузили длл, получили адрес процедуры Start, вызвали её. многие же плагины именно длл-ками и являются. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,370
|
![]()
В винде нет разницы между EXE и DLL.
Все равно надо будет грузить весь файла, читать заголовок, распределять секции, грузить нужные DLL библиотеки и т.д. |
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
с exe же сложнее. хотя стоп, это если нет цели чтоб dll не оказалось на диске. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 13.05.2013 в 11:55. |
|
![]() |
![]() |
![]() |
#10 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]()
Процитирую себя
![]() (правда этот код уже засветился везде, где только можно, и, вероятно, его не любят антивирусы)
пыщь
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Array Of Byte -> TStream | KiL0z | Общие вопросы Delphi | 9 | 18.06.2011 20:17 |
unsigned char в array<Byte> | Artemprodigy | Visual C++ | 0 | 23.03.2011 11:19 |
Байты из файла в array of Byte | Cold_Night | Помощь студентам | 5 | 09.12.2009 15:46 |
convert(array of byte, real48) | Ringess | Общие вопросы Delphi | 3 | 24.06.2009 13:03 |
Array of byte в файл | Deight | Общие вопросы Delphi | 3 | 05.12.2008 19:10 |