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

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

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

12 окт 2004, 17:01

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

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

14 окт 2004, 08:47

Уверен, что никак.
Думаю, прийдется все-таки сначала сохранить.
psix
Сообщения: 52
Зарегистрирован: 29 июл 2004, 13:53
Откуда: Россия, Москва
Контактная информация:

15 окт 2004, 22:22

Возможно, не с помощью tfilestream.
Существуют ведь программы-упаковщики/шифровальщики для ехе-файлов.
Вот я попробывал написать свой шифровальщик.
С шифрованием проблем нет.С прикреплением закодированного файла к файлу, который его раскодировал бы тоже.
Вот запустить его, не сохраняя на диск я не могу.
Если хотите, могу дать ссылку на исходники upx(шифровальщик). на C++. я его понять не могу. не то, чтоб я си знал.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

25 окт 2004, 02:19

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