Re: У меня вирус или Dr.Web не даёт скомпилировать прогу на Delphi?

l302a84

Если вот такую бессмысленную прогу
 
{$O-}
program ss;

{$APPTYPE CONSOLE}

uses
SysUtils, Windows;

var
a,b:integer;
f:file;

procedure xx;
var
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
CreateProcess(nil,'',nil,nil,false,
0,nil,nil,StartupInfo,ProcessInfo);
end;

begin
a:=fileage('');
a:=fileage('');
assignfile(f,'');
reset(f,1);
closefile(f);
assignfile(f,'');
reset(f,1);
closefile(f);
xx;
end.

пытаюсь скомпилировать на Delphi 6, то Spider Guard говорит, что exe-шник заражён "Backdoor.Pigeon.origin". Если что-нибудь из проги убрать (например, одну из строк a:=fileage('' то всё нормально. Это Dr.Web глючит или у меня на самом деле такой хитрый вирус?

Dasar

скорее Dr.web глючит.
ps
чтобы отмести хитрое предположение, что вирус цепляется только к определенным exe-шникам, проверь длину получающегося файла: с закоменнтированной строчкой, и раскоментированной.
если длины равны/почти равны - значит вируса точно нет.
ззы
при еще большей паранойи можно файлы diff-ом сравнить.

l302a84

Размер в обоих случаях (со строчкой и без) 40960 байт :)

l302a84

Файлы практически не отличаются. Наверно всё-таки drweb глючит :mad:

bleyman

Дрвеб глючит, точно. Это не первая дельфипрога, на которую он гонит. Видимо множество вирусописателей пишет вирусы на дельфи (а чо, вишмастер на дельфи написан, например а ленивые аверы лениво выделяют сигнатуры широкими взмахами рук. Типа, дельфёвый код распознаётся глазами на раз, инлайнить оно не умеет, поэтому сверху там одни сплошные call, ну и вот.

Corrector

инлайнить оно не умеет
умеет вообще-то

Andbar

гы... Компилил под Delphi 7
Проверка: vir.exe
Версия антивирусного ядра: 4.44.0.9170
Размер файла: 40.50 КБ
vir.exe infected with BackDoor.Pigeon.origin
Вопрос: а в чём глубокий смысл такого странного кода? Или он специально писался для того, чтобы попасть под одну из сигнатур дрвеба?

l302a84

Сначала это была вполне осмысленная прога. Когда drweb начал на неё ругаться, я попытался понять, что ему не нравится (сначала, конечно, проверил память этим же drweb'ом). Это оказалось не так-то просто и заняло больше часа. Я удалял куски кода, менял параметры и, в конце концов, выделил то, на что он ругался, прога в первом посте - это как раз то. Оказалось, что обмануть drweb не просто: если "плохие" операторы разносить по телу программы, помещать внутрь подпрограмм, циклов или if'ов, то ситуация не меняется. Вышел из ситуации, реализовав два последовательных вызова fileage через цикл (видимо, drweb это воспринимает как один вызов).

Andbar

Вышел из ситуации, реализовав два последовательных вызова fileage через цикл (видимо, drweb это воспринимает как один вызов).
Если я правильно понимаю, вот этот кусок напрашивается на выделение в процедуру:
  a:=fileage('');
assignfile(f,'');
reset(f,1);
closefile(f);

l302a84

1) В исходной программе ситуация была немного другая, там порядок был важен (и он был другой и участок кода с fileage был намного раньше, чем то, что с чтением из файла.
2) Боюсь, что процедура не поможет (drweb умеет внутрь залезать). Ну разве что в цикле сделать вызов.

Andbar

2) Боюсь, что процедура не поможет (drweb умеет внутрь залезать). Ну разве что в цикле сделать вызов.
проверить слабо было?
{$O-}
program ss;

{$APPTYPE CONSOLE}

uses
SysUtils, Windows;

var
a,b:integer;

procedure xx;
var
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
CreateProcess(nil,'',nil,nil,false,
0,nil,nil,StartupInfo,ProcessInfo);
end;

procedure touch(filename:string);
var f:file;
begin
assignfile(f,filename);
reset(f,1);
closefile(f);
end;

begin
a:=fileage('');
a:=fileage('');
touch('');
touch('');
xx;
end.
Проверка: vir.exe
Версия антивирусного ядра: 4.44.0.9170
Размер файла: 40.50 КБ
vir.exe - Ok

l302a84

проверить слабо было?
1) Я проверял, только не так, а отдельной подпрограммой делал fileage.
2) Если обновить вирусные базы, то и на изначальную прогу ругаться не будет (создатели drweb'a исправили ошибку после того, как я им послал информацию).
Оставить комментарий
Имя или ник:
Комментарий: