به نام دانای بر حق
یکی از چیزهایی که قبلا تو 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;
سلام
از اینطور پست زیاد بزار البته پیشرفته تر
الان با این روش مثلا آنتی ویروس x بسته نمیشه چرا ؟
چون تابع terminate process رو هوک کرده ؟ میشه آنهوکش کرد ؟
نباید هم بسته بشه چون سرویس خوده آنتی ازش محافظت میکنه
بله میشه unhook کرد منتهی مراتب هوک های ring3 نیست که بشه این کار رو کرد باید ring0 حرکت بزنی یه سویچ خفن کنی رو cpp ; )
اینارو خودت میگی یا کسیم کمکت می کنه ؟
امداد های غیبی به هر حال همیشه شامل حال ما میشن ;)