Страница 1 из 1

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

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

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

Добавлено: 14 окт 2004, 08:47
Naeel Maqsudov
Уверен, что никак.
Думаю, прийдется все-таки сначала сохранить.

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

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