28-08-2009, 09:12 AM
(آخر تعديل لهذه المشاركة: 28-08-2009, 09:30 AM بواسطة STRELiTZIA.)
السلام عليكم و رحمة الله
بعض الملاحظات اخي mohfa :tong:
drag and drop files
يحدث عندي مشكل عند محاولة فحص ملفات تسميتها بهذه الضيغة : sysconst_Infected
لا يتم فحصه و الأداة تخرج رسالة تقول ان الملف غير موجود...
المشكل في طول اسم الملف عند عمل drag and drop.
Cleaning
يعتبر كل ملف يحتوي في قسم الــ uses على وحدة Windows فقط، و مكتوبة في سطر واحد على ضيغة البصمة التي استعملت و خاصة الوحدات المستقلة التي يتم اضافتها الى المشاريع على انها positive و يتم تنظيفها مما يؤدي الى تخريبها.
مثال :
الملف الأصلي مكتوب بهذه الطريقة :
التعاريف ليست في نفس السطر و Windows الحرف الأول كبير...
بعد تغيير طفيف
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:
إقتباس :لماذا يخرب ملف Cleaner لان هذا الاخير يحوي ' uses windows; '
بعض الملاحظات اخي mohfa :tong:
drag and drop files
يحدث عندي مشكل عند محاولة فحص ملفات تسميتها بهذه الضيغة : sysconst_Infected
لا يتم فحصه و الأداة تخرج رسالة تقول ان الملف غير موجود...
المشكل في طول اسم الملف عند عمل drag and drop.
Cleaning
يعتبر كل ملف يحتوي في قسم الــ uses على وحدة Windows فقط، و مكتوبة في سطر واحد على ضيغة البصمة التي استعملت و خاصة الوحدات المستقلة التي يتم اضافتها الى المشاريع على انها positive و يتم تنظيفها مما يؤدي الى تخريبها.
مثال :
الملف الأصلي مكتوب بهذه الطريقة :
كود :
uses
[COLOR=red]W[/COLOR]indows;بعد تغيير طفيف

كود :
(******************************************************************************
* *
* 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
[COLOR=red]uses windows;[/COLOR]
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:

