Как запустить ехе-файл из TFileStream? Не сохраняя ехе-файл.

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Ответить
psix
Сообщения: 52
Зарегистрирован: 29 июл 2004, 12:53
Откуда: Россия, Москва
Контактная информация:

Как запустить ехе-файл из TFileStream? Не сохраняя ехе-файл.

Сообщение psix » 12 окт 2004, 16:01

Помогите, пожалуйста, с такой задачей:
Есть переменная типа TFileStream.
В ней записан ехе-файл. Как его запустить, не сохраняя файл на диск? :(

Зарание благодарен.

Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Сообщение Naeel Maqsudov » 14 окт 2004, 07:47

Уверен, что никак.
Думаю, прийдется все-таки сначала сохранить.

psix
Сообщения: 52
Зарегистрирован: 29 июл 2004, 12:53
Откуда: Россия, Москва
Контактная информация:

Сообщение psix » 15 окт 2004, 21:22

Возможно, не с помощью tfilestream.
Существуют ведь программы-упаковщики/шифровальщики для ехе-файлов.
Вот я попробывал написать свой шифровальщик.
С шифрованием проблем нет.С прикреплением закодированного файла к файлу, который его раскодировал бы тоже.
Вот запустить его, не сохраняя на диск я не могу.
Если хотите, могу дать ссылку на исходники upx(шифровальщик). на C++. я его понять не могу. не то, чтоб я си знал.

Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Сообщение Naeel Maqsudov » 25 окт 2004, 01:19

Если выделить память из кучи и загрузить ресурс туда, то его нельзя будет запустить. Хотя почитайте в справке по Win32API про функции VirtualAlloc/VirtualProtect. Там говорится о возможности создавать блоки памяти, в которые можно будет передавать управление. Т.е., на сколько я порнимаю, делать уда JMP или CALL... Никогда сам такого не делал, но уверен, что это и есть тот самый способ, которым достигается то, что Вы хотите.

Ответить