دلفي تعليم
مرحبا بكم ايها الزئر أو الزائرة الكريمين

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

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

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

مُساهمة  alla في 2/8/2015, 3:52 am


بسم الله الرحمن الرحيم
الصلاة والسلام على أشرف المرسلين وعلى آله وصحبه أجمعين

حذف الملف 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)+ExtractFileName(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

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


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


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


.





_________________
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

alla
مبرمج مجتهد

عدد المساهمات : 687
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

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

مُساهمة  alla في 2/8/2015, 10:57 pm

الفيروس المسمى

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\CurrentVersion\Run

Nom de valeur : ccExecute

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



_________________
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

alla
مبرمج مجتهد

عدد المساهمات : 687
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

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

مُساهمة  alla في 2/8/2015, 10:58 pm


بسم الله الرحمن الرحيم
الصلاة والسلام على أشرف المرسلين وعلى آله وصحبه أجمعين


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

الكود:

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)+ExtractFileName(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

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

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

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


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


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


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


.





_________________
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

alla
مبرمج مجتهد

عدد المساهمات : 687
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى