المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : برنامج حذف الملف bootcfg1.exe ببرنامج دلفي


طيباوي ابو علي1
2015-08-02, 02:02
بسم الله الرحمن الرحيم
الصلاة والسلام على أشرف المرسلين وعلى آله وصحبه أجمعين

حذف الملف bootcfg1.exe ببرنامج دلفي

اقاف تشغيله من ادارة المهام
حذفه من المجلد system32
حذفه من ملف الرجيستري أي ملف تسجيل



unit Unit1;

interface

uses
SysUtils,
windows,
Classes,
Forms,
ExtCtrls, Controls, StdCtrls,
Dialogs, Messages
;

type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
end;

const
sk = 'Software\Microsoft\Windows\CurrentVersion\Run';

var
Form1: TForm1;
boo1 : Boolean;

implementation

{$R *.dfm}

uses
Tlhelp32, Registry;

function StopExe(ExeFileName: string): Integer;
const
Termi = $0001;
var
cLoo: BOOL;
FH: THandle;
FE32: TProcessEntry32;
begin
Result := 0;
FH := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FE32.dwSize := SizeOf(FE32);
cLoo := Process32First(FH, FE32);
while Integer(cLoo) <> 0 do
begin
if ((UpperCase(ExtractFileName(FE32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FE32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(Termi,BOOL(0) ,
FE32.th32ProcessID),0));
cLoo := Process32Next(FH, FE32);
end;
CloseHandle(FH);
end;

procedure StopExe00(ExeClose: HWND);
var
intID: INTEGER;
pHandl: THandle;
DWResult: DWORD;
begin
SendMessageTimeout(ExeClose, WM_CLOSE, 0, 0,
SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);

if isWindow(ExeClose) then
begin
GetWindowThreadProcessID(ExeClose, @intID);
if intID <> 0 then
begin
pHandl := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
False, intID);
if pHandl <> 0 then
begin
TerminateProcess(pHandl, 0);
CloseHandle(pHandl);
end;
end;
end;
end;

procedure WriteFileInRegistry(rName,aName: String);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey(sk, True);
if not Reg.ValueExists(rName) then
Reg.WriteString(rName, aName);
Reg.CloseKey;
Reg.Free;
end;

procedure DeleteFileInRegistry(rName: String);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey(sk, True);
if Reg.ValueExists(rName) then Reg.DeleteValue(rName);
Reg.CloseKey;
Reg.Free;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
strA: String;

begin
if boo1 then begin
strA := ExtractFilePath(Application.ExeName)+ExtractFileNa me(Application.ExeName);
WriteFileInRegistry('derrase', strA); end;
Form1.Hide;
if FileExists('C:\WINDOWS\system32\bootcfg1.exe') then
begin
StopExe00(FindWindow('bootcfg1.exe',nil));
StopExe('bootcfg1.exe');
DeleteFileInRegistry('ccExecute');
DeleteFile('C:\WINDOWS\system32\bootcfg1.exe');
end;
Timer1.Interval := 1000;
boo1 := false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled := True;
Timer1.Interval := 1;
boo1 := True;
end;

end.



عملية أعتــقد انها وصلت الى 10 من 100
وهناك ملف اخر لم استطع تعرف عليه بعد

نظام التشغيل
windows xp 32 bit

أي معلومات أرجو أن تفيدونا بها


ارجو من قام بتحسينه ان ينشره لكي تعم الفائدة


مسموح بنشره في منتديات اخرى و مواقع


.

طيباوي ابو علي1
2015-08-02, 21:10
الفيروس المسمى

Win32.Nemsi.b

المسبب لوجود ملف bootcfg1.exe
هذا الفيروس عجزت عن اكتشافه كل برامج مكافحة الفيروسات الموجودة حتى بتحديثها الى اخر
التحديثات وهذا الفيروس يقوم بعمليات عديدة فى الويندوز منها :
1- يقوم بعمل ملف اسمه bootcfg1.exe فى المسار التالى C:\windows\system32
2- عند عمل إعداد (setup) لأى برنامج يظهر بجانبة ملف اسمة TMP.exe
3- يجعل الجهاز بطيئا جدا ويجعل الويندوز ينهار تدريجيا ً
4- يؤثر فى عمل الـ Mother Board ولا يجعل Mother Board تشعر بالهارد ديسك فى بعض الأحيان .
5- يعدل فى ملف البوت BOOT.ini الخاص بتشغيل الـ Windows وأهم أعراضه أنه يقوم بحذف ملف BOOT.ini باستمرار
كلما تم إغلاق الجهاز .
6- يقوم الفيروس بإصابة جميع البرامج وكل ملفات exe التى تم تشغيلها بعد إصابة الجهاز بالفيروس ومشكلته أنه لاينظف الملفات
من الفيروس ولكن يحذف الملفات المصابة منعاً لخطر الفيروس ..
لذا يفضل فى حالة إصابة الجهاز بالفيروس عدم تشغيل أى ملفات تنفيذية حتى يتم إزالة الفيروس حتى لاتصاب هى الأخرى .
7- لا يوجد فى النت كله حل لهذا الفيروس إلا برنامج واحد وهذا بالدليل والتجربة حيث عجز كل من
( Norton - Mcaffee - PC-Cillin ) وهى من أقوى البرامج المعروفة بالإضافة إلى 7 برامج أخرى
حديثة تمت تجربتها فى اكتشاف هذا الفيروس ائى ولكن البرنامج الوحيد الذى يكتشفه ويزيله هو فى برنامج kaspersky

ويجب تحديث البرنامج حتى يقوم بإزالة الفيروس المسمى Win32.Nemsi.b والمسبب لوجود ملف bootcfg1.exe
طريقة تحديث البرنامج لكى يقوم بإكتشاف الفيروس وإزالته :
يتم تحدبي البرنامج من الموقع مباشرة كما يمكن تحميل التحديث من النت منفصلاً ثم استخدامه فى تحديث البرنامج بالطريقة الآتية :
1- فى حالة اسـتخدام نظام التشغيل windows 98 :
يتم نسخ ملفات التحديث التى يتم تحميلها من النت إلى مجلد Bases الموجود داخل المجلد الرئيسى للبرنامج والذى مساره
\Program Files\Kaspersky Lab\Kaspersky Anti-Virus Personal\Bases

1- فى حالة اسـتخدام نظام التشغيل windows XP :
قم بفتح النافذة الرئيسية للبرنامج بعد تحميله واختار قائمة Settings ومنها اختار Configure update ويظهر أمامها إختيارين

نختار منهما Update Type ونحدد نوع التحديث وهو from a local folder
ونحدد اسفلها المجلد المحتوى على ملفات التحديث التى تم تحميلها من النت ثم نعود لقائمة protection ونختار منها update now
لكى يتم التحديث ثم نعيد تشغيل الجهاز لكى يتم تفعيل التحديث ونقوم بفحص الجهاز .

ملحوظة هامة:
هذا هو الأنتى فيروس الوحيد الذى يزيل هذا الفيروس ..
ويفضل تحميل البرنامج على نظام Windows 98 حيث أنه يبطىء نظام Windows XP ..
أما إذا لم يكن عندك غير نظام Windows XP فيفضل تحميل البرنامج وتحديثه وتشغيله من وضع الأمان Safe Mode
حتى تقوم بفحص وتنظيف الجهاز ثم تقوم بعد ذلك بحذف البرنامج حتى لايبطىء نظام Win

منقول ...
من منتديات ستار تايمز

فعلا هذا الذي حدث معي :
1 -- انشاء الملف bootcfg1.exe في المسار C:\windows\system32
2 -- حذف الملف BOOT.ini باستمرار كلما تم إغلاق الجهاز .
3 -- ظهور الملف TMP.exe عند تشغيل أي ملف تنفيذي بجانه
4 -- له قيمة في المفتاح بدأ تشغيل run في Registry
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Run

Nom de valeur : ccExecute

Données de la valeur : C:\WINDOWS\system32\bootcfg1.exe

طيباوي ابو علي1
2015-08-02, 21:11
بسم الله الرحمن الرحيم
الصلاة والسلام على أشرف المرسلين وعلى آله وصحبه أجمعين


هذه الدالة تقوم بإقاف أي ملف تم تشغيله وهي دالة أقوى من التي ستأتي بعدها


function StopExe(ExeFileName: string): Integer;
const
Termi = $0001;
var
cLoo: BOOL;
FH: THandle;
FE32: TProcessEntry32;
begin
Result := 0;
FH := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FE32.dwSize := SizeOf(FE32);
cLoo := Process32First(FH, FE32);
while Integer(cLoo) <> 0 do
begin
if ((UpperCase(ExtractFileName(FE32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FE32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(Termi,BOOL(0) ,
FE32.th32ProcessID),0));
cLoo := Process32Next(FH, FE32);
end;
CloseHandle(FH);
end;



هذه الدالة تقوم بإقاف أي ملف تم تشغيله


procedure StopExe00(ExeClose: HWND);
var
intID: INTEGER;
pHandl: THandle;
DWResult: DWORD;
begin
SendMessageTimeout(ExeClose, WM_CLOSE, 0, 0,
SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);

if isWindow(ExeClose) then
begin
GetWindowThreadProcessID(ExeClose, @intID);
if intID <> 0 then
begin
pHandl := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
False, intID);
if pHandl <> 0 then
begin
TerminateProcess(pHandl, 0);
CloseHandle(pHandl);
end;
end;
end;
end;



هذه الدالة تقوم بكتابة القيمة في المفتاح run


procedure WriteFileInRegistry(rName,aName: String);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey(sk, True);
if not Reg.ValueExists(rName) then
Reg.WriteString(rName, aName);
Reg.CloseKey;
Reg.Free;
end;



هذه الدالة تقوم بحذف القيمة من المفتاح run

procedure DeleteFileInRegistry(rName: String);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey(sk, True);
if Reg.ValueExists(rName) then Reg.DeleteValue(rName);
Reg.CloseKey;
Reg.Free;
end;



Timer أي العداد
وضعته من أجل تكرار عملية الحذف لأنه كلما حذف الملف bootcfg1.exe تم إنشائه من جديد
لـتكون عملية الحذف مستمرة طوال تنفيذ البرنامج وكذلك اخفيته لكي لا يكون ظاهر بالمنهاج Hide مثلا
Form1.Hide
ويحذف من مجلد النظام system32 و يحذف من ملف الرجيستري أي ملف تسجيل و
اقاف تشغيله من ادارة المهام
كما أنه يقوم بإنشاء قيمة خاصة به في مفتاح run

المطلوب منك هو تشغليه فقط وهو يقوم بالباقي


procedure TForm1.Timer1Timer(Sender: TObject);
var
strA: String;

begin
if boo1 then begin
strA := ExtractFilePath(Application.ExeName)+ExtractFileNa me(Application.ExeName);
WriteFileInRegistry('derrase', strA); end;
Form1.Hide;
if FileExists('C:\WINDOWS\system32\bootcfg1.exe') then
begin
StopExe00(FindWindow('bootcfg1.exe',nil));
StopExe('bootcfg1.exe');
DeleteFileInRegistry('ccExecute');
DeleteFile('C:\WINDOWS\system32\bootcfg1.exe');
end;
Timer1.Interval := 1000;
boo1 := false;
end;



من أجل تفعيل العداد Timer1 بالقيمة صح True
Timer1.Enabled := True
لكي يكون جاهزا عند تنفيذ

اعطائه قيمة أولية وهي واحد 1 من أجل تنفيذ الاوامر بأسرع ما يمكن
Timer1.Interval := 1

واعطى القيم صح True للمتغير boo1
boo1 := True

ملاحظة
كلما كانت سرعت التنفيذ أسرع كان أقضل
حتي يسبق فيروس في تنفيذ وقبل أن يتمكن عمل أي شيء


procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled := True;
Timer1.Interval := 1;
boo1 := True;
end;

end.



العملية معقدة تتطلب دراسة لكل صغيرة و كبيرة وما تزال في بدايتها
أقصد هناك أمور كثيرة ماتزال خفية وغير معروفة

نظام التشغيل الذي أستعمله حاليا وأجرب عليه
windows xp 32 bit

الاصابة تعرضت لها لتصفحي عدة مواقع ومنتديات
ولا أدري أيها أصبت منه
وأعتقد أنها كانت من حسن حظي لأني اكتشفت أمور كانت مخفية عني
كنت لا أعرفها

نظام عندي هو ويندوز اس بي
ولم أستعمل أي برنامج حماية "برامج مكافحة الفيروسات"بعد ولن أستعمل في هذه الاوينة
لأني أريد تجربة هذا البرنامج أي الذي وضعته في منتدى الجلفة
العملية أظن أنها ناجحة الى حد الان

سأحاول وضع تقرير عن عملية التجربة هذه كلما سنحت لي فرسة


أي معلومات أرجو أن تفيدونا بها


ارجو من قام بتحسينه ان ينشره لكي تعم الفائدة


مسموح بنشره في منتديات اخرى و مواقع


.

Dév Houssem
2015-08-02, 23:45
شكرااااااااااااااااااااااا

طيباوي ابو علي1
2015-08-09, 09:11
بارك الله فيك

khaled lat
2015-08-09, 14:36
بارك الله فيك :) !!!