Показать сообщение отдельно

  #2  
Старый 24.05.2007, 14:54
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Как я понял - эта зараза не заражает файлы, а просто крепит копирует себя с именем другой проги, а потом присоединяет её к себе?
Если так, то выход примерно такой - Динамически изменять ресурсы.
Скорее всего просто прога не имеет значка вообще, а то что конектится за ним, - это уже не берется во внимание. Исправить проблему можно так:
В прогу вмантируешь пустую иконку. И при заражении просто нужно у заражаемой проги выдрать иконку и вмантировать её к себе.
С виду всё тяжко получается, но на деле всё нет так уж и страшно.
т.к. Выдрать иконку из чужой проги, проще простого.
Код:
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. Он умеет заменять, удалять и добавлять ресурсы