Как я понял - эта зараза не заражает файлы, а просто крепит копирует себя с именем другой проги, а потом присоединяет её к себе?
Если так, то выход примерно такой - Динамически изменять ресурсы.
Скорее всего просто прога не имеет значка вообще, а то что конектится за ним, - это уже не берется во внимание. Исправить проблему можно так:
В прогу вмантируешь пустую иконку. И при заражении просто нужно у заражаемой проги выдрать иконку и вмантировать её к себе.
С виду всё тяжко получается, но на деле всё нет так уж и страшно.
т.к. Выдрать иконку из чужой проги, проще простого.
Код:
uses ShellApi;
procedure TForm1.Button1Click(Sender: TObject);
var
IconIndex: word;
h: hIcon;
begin
IconIndex := 0;
h:= ExtractIcon(hinstance,'c:\1.exe',IconIndex);
DrawIcon(Form1.Canvas.Handle, 10, 10, h);
end;
Выдирет иконку и нарисует её на экране.
Для того чтобы засунуть иконку в файл есть парочку сособов:
1) - Разбираем PE заголовок Выдергиваем от туда адрес ресурсов
- Разбираем талицу ресурсов.
- Находим ресурс иконки и заменяем его на свой
2) Я слыхал про проект madshi. ТАм есть модуль - MadRes. Он умеет заменять, удалять и добавлять ресурсы