طيباوي ابو علي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
أي معلومات أرجو أن تفيدونا بها
ارجو من قام بتحسينه ان ينشره لكي تعم الفائدة
مسموح بنشره في منتديات اخرى و مواقع
.
الصلاة والسلام على أشرف المرسلين وعلى آله وصحبه أجمعين
حذف الملف 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
أي معلومات أرجو أن تفيدونا بها
ارجو من قام بتحسينه ان ينشره لكي تعم الفائدة
مسموح بنشره في منتديات اخرى و مواقع
.