Re: У меня вирус или Dr.Web не даёт скомпилировать прогу на Delphi?
ps
чтобы отмести хитрое предположение, что вирус цепляется только к определенным exe-шникам, проверь длину получающегося файла: с закоменнтированной строчкой, и раскоментированной.
если длины равны/почти равны - значит вируса точно нет.
ззы
при еще большей паранойи можно файлы diff-ом сравнить.
Размер в обоих случаях (со строчкой и без) 40960 байт
Файлы практически не отличаются. Наверно всё-таки drweb глючит
Дрвеб глючит, точно. Это не первая дельфипрога, на которую он гонит. Видимо множество вирусописателей пишет вирусы на дельфи (а чо, вишмастер на дельфи написан, например а ленивые аверы лениво выделяют сигнатуры широкими взмахами рук. Типа, дельфёвый код распознаётся глазами на раз, инлайнить оно не умеет, поэтому сверху там одни сплошные call, ну и вот.
инлайнить оно не умеетумеет вообще-то
Проверка: vir.exeВопрос: а в чём глубокий смысл такого странного кода? Или он специально писался для того, чтобы попасть под одну из сигнатур дрвеба?
Версия антивирусного ядра: 4.44.0.9170
Размер файла: 40.50 КБ
vir.exe infected with BackDoor.Pigeon.origin
Сначала это была вполне осмысленная прога. Когда drweb начал на неё ругаться, я попытался понять, что ему не нравится (сначала, конечно, проверил память этим же drweb'ом). Это оказалось не так-то просто и заняло больше часа. Я удалял куски кода, менял параметры и, в конце концов, выделил то, на что он ругался, прога в первом посте - это как раз то. Оказалось, что обмануть drweb не просто: если "плохие" операторы разносить по телу программы, помещать внутрь подпрограмм, циклов или if'ов, то ситуация не меняется. Вышел из ситуации, реализовав два последовательных вызова fileage через цикл (видимо, drweb это воспринимает как один вызов).
Вышел из ситуации, реализовав два последовательных вызова fileage через цикл (видимо, drweb это воспринимает как один вызов).Если я правильно понимаю, вот этот кусок напрашивается на выделение в процедуру:
a:=fileage('');
assignfile(f,'');
reset(f,1);
closefile(f);
2) Боюсь, что процедура не поможет (drweb умеет внутрь залезать). Ну разве что в цикле сделать вызов.
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
проверить слабо было?1) Я проверял, только не так, а отдельной подпрограммой делал fileage.
2) Если обновить вирусные базы, то и на изначальную прогу ругаться не будет (создатели drweb'a исправили ошибку после того, как я им послал информацию).
Оставить комментарий
l302a84
Если вот такую бессмысленную прогупытаюсь скомпилировать на Delphi 6, то Spider Guard говорит, что exe-шник заражён "Backdoor.Pigeon.origin". Если что-нибудь из проги убрать (например, одну из строк a:=fileage('' то всё нормально. Это Dr.Web глючит или у меня на самом деле такой хитрый вирус?