Re: Запись в свой *.ехе
От: Dmitriy_Apraksin  
Дата: 29.04.02 05:55
Оценка:
Здравствуй DDG.

DDG>Здравствуйте, господа! Помогите разобраться. Каким способом можно записать кое какие данные в свой же exe-ник?


Я так полагаю, что тебе нужно записать в EXE, который на данный момент исполняется системой, т.е. является "открытым системой" ( потому что иначе — какие проблемы-то ? ). Следовательно, основная проблема — сделать исполняющийся EXE доступным на запись ( т.е. открыть его с доступом "GENERIC_WRITE" ). Естесственно,
вызов обычного CreateFileA/_lopen Windows жестоко обломает. Поэтому стандартные
методы тут не прокатят. Впрочем, под Win 9X есть такие штучки, как VxD, которые
работают в Ring 0 и которым в принципе дозволено практически все. Так что один из
вариантов — загрузить свой VxD и натравить его на свой же Exe-шник ( если не хочешь писать VxD, можешь сам перейти в Ring 0 и уже там сделать все, что надо
при помощи IFSMGR API ). Все прекрасно будет работать, но... с одной лишь оговоркой — данный метод не применим под Win NT/2K ( по причине отсутствия там
VxD ). В этом случае могу посоветовать только слегка поизвращаться — скажем,
из своего Exe-шника запустить еще какой-нибудь, при этом самому закрыться, далее второй Exe-шник ( уже без проблем ! ) пишет в твой и запускает тебя вновь, при этом сам закрывается... Извратно, но работать будет ( и, кстати, под любой Windows )

Dmitriy Apraksin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.