Помогите, пожалуйста, с такой задачей:
Есть переменная типа TFileStream.
В ней записан ехе-файл. Как его запустить, не сохраняя файл на диск?
Зарание благодарен.
Как запустить ехе-файл из TFileStream? Не сохраняя ехе-файл.
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
- Naeel Maqsudov
- Сообщения: 2551
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Уверен, что никак.
Думаю, прийдется все-таки сначала сохранить.
Думаю, прийдется все-таки сначала сохранить.
-
- Сообщения: 52
- Зарегистрирован: 29 июл 2004, 13:53
- Откуда: Россия, Москва
- Контактная информация:
Возможно, не с помощью tfilestream.
Существуют ведь программы-упаковщики/шифровальщики для ехе-файлов.
Вот я попробывал написать свой шифровальщик.
С шифрованием проблем нет.С прикреплением закодированного файла к файлу, который его раскодировал бы тоже.
Вот запустить его, не сохраняя на диск я не могу.
Если хотите, могу дать ссылку на исходники upx(шифровальщик). на C++. я его понять не могу. не то, чтоб я си знал.
Существуют ведь программы-упаковщики/шифровальщики для ехе-файлов.
Вот я попробывал написать свой шифровальщик.
С шифрованием проблем нет.С прикреплением закодированного файла к файлу, который его раскодировал бы тоже.
Вот запустить его, не сохраняя на диск я не могу.
Если хотите, могу дать ссылку на исходники upx(шифровальщик). на C++. я его понять не могу. не то, чтоб я си знал.
- Naeel Maqsudov
- Сообщения: 2551
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Если выделить память из кучи и загрузить ресурс туда, то его нельзя будет запустить. Хотя почитайте в справке по Win32API про функции VirtualAlloc/VirtualProtect. Там говорится о возможности создавать блоки памяти, в которые можно будет передавать управление. Т.е., на сколько я порнимаю, делать уда JMP или CALL... Никогда сам такого не делал, но уверен, что это и есть тот самый способ, которым достигается то, что Вы хотите.