برای طرح سوال و دسترسی به آموزش ها سورس کدهای بیشتر به مجموعه xstack و یا به کانال ما در تلگرام کانال ما در تلگرام بپویندید.

kill process بستن یک برنامه در دلفی

به نام دانای بر حق

 

یکی از چیزهایی که قبلا تو xmen برای این حقیر جذاب بودش این بودش که برای هر کاری یه sample وجود داشتش. استاد مبین همیشه پیشتاز این عرصه بودش با اقتدا به ایشان. البته انتشار این مثال ها جنبه عملی و چیز جدیدی نداره ها فقط مثال هستش بودنشون خالی از لطف نیست.

kill process  با استفاده از نام فایل:

استفاده از unit مشخص شده Winapi.TlHelp32 ضرورت داره:

تابع مورد نظر :

 

function KillTask(ExeFileName: string): Integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
۰));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;

نحوه استفاده:

procedure TForm1.btnKillTaskClick(Sender: TObject);
begin
  KillTask('test.exe');
end;

kill process ستفاده از pid :

استفاده از تابع زیر میتونید یک برنامه با استفاده از pid به کارش خاتمه بدین:

function TerminateProcessByID(ProcessID: Cardinal): Boolean;
var
  hProcess : THandle;
begin
  Result := False;
  hProcess := OpenProcess(PROCESS_TERMINATE,False,ProcessID);
  if hProcess > 0 then
  try
    Result := Win32Check(Windows.TerminateProcess(hProcess,0));
  finally
    CloseHandle(hProcess);
  end;
end;

نحوه استفاده:

 

procedure TForm1.btnKillTaskClick(Sender: TObject);
begin
    TerminateProcessByID(123);
end;

 

اول از همه کوچک ترین عضو مجموعه 4xmen بنده حقیر هستم. در ثانی یک توسعه دهنده هستم زمینه های تخصصی کارم :‌ Delphi, PHP, C++ ,Python, JavaScript, Unity game engine, C#, asm و علاقه مند به لینوکس، RCE ، کریپتوگرافی هستم. تا الان حضرت حق اینا رو به ما داده و هر وقت که بخواد ازمون میگیره دست خودشه. یا حق، با حق، تا حق
نوشته ایجاد شد 96

4 دیدگاه در “kill process بستن یک برنامه در دلفی

  1. سلام
    از اینطور پست زیاد بزار البته پیشرفته تر
    الان با این روش مثلا آنتی ویروس x بسته نمیشه چرا ؟
    چون تابع terminate process رو هوک کرده ؟ میشه آنهوکش کرد ؟

    1. نباید هم بسته بشه چون سرویس خوده آنتی ازش محافظت میکنه
      بله میشه unhook کرد منتهی مراتب هوک های ring3 نیست که بشه این کار رو کرد باید ring0 حرکت بزنی یه سویچ خفن کنی رو cpp ; )

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوشته های مرتبط

متنی که میخواهید برای جستجو وارد کرده و دکمه جستجو را فشار دهید. برای لغو دکمه ESC را فشار دهید.

بازگشت به بالا