Даня, значит так:
1) Тебе надо почитать документацию по формату PE (Portable Executable - именно в этом формате хранятся все исполняемые модули под Win32.) Читать надо серьезно, вдумчиво, с расстановкой. Это поможет стопроцентно определить, "дозрел" ли ты до момента, когда тебе можно с ним начинать "бороться". Я, например, еще не "дозрел". Начал читать и бросил. Довольно сложная штука, говорю тебе, этот PE-формат
2) Но если говорить в общем плане, то необходимо создать новую секцию с правом исполнения и записи, или расширить существующую и присвоить ей соответствующие права. И записать туда свой код. В случае с существующей секцией можно писать в середину, начало или конец. Лучше всего - в середину, но этот способ - наисложнейший. Затем надо найти EP (Entry Point, точка входа в код) И сохранить адрес первой инструкции неизмененного кода проги. А потом - заменить точку входа адресом первой инструкции твоего кода. Но еще лучше - начинать исполнение не непосредственно с твоего кода, а чуть "поодаль", с кода чужого, - это будет менее заметно. В твоем же коде, по окончании всех действий, следует передать управление на обыкновенный код программы, т.е. перейти к исполнению кода с OEP (Original Entry Point, исходной точки входа.)
{кто лучше знает эту терминологию, поправьте меня, ладно?}
Чтобы осуществить задуманное тобой, надо делать ручную разборку PE-формата и изменение ключевых структур "подопытных" файлов. Сложная эта задача. Тебе-то зачем? Вирус пишешь, что ли? Уж лучше бы
SweetHTML потестил, право слово