Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как завершить процесс?

1.9K
22 июня 2007 года
disasm
232 / / 06.02.2006
Есть драйвер режима ядра работающий под WinXP SP2. Как завершить процесс зная его PID?

Ситуация такова:
Процесс totalcmd.exe создает cmd.exe. В это время в драйвере вызывается моя функция CreateProcessNotifyRoutine, которой передаются PID-ы обеих процессов. Вот мне нужно убить процесс cmd.exe имея в наличии его PID

Заранее спасибо.
334
22 июня 2007 года
HexEdit
809 / / 27.07.2006
Вначеле нужно получить хендл процесса (через NtOpenProcess)
затем завершить - NtTerminateProcess
1.9K
22 июня 2007 года
disasm
232 / / 06.02.2006
Цитата: HexEdit
Вначеле нужно получить хендл процесса (через NtOpenProcess)
затем завершить - NtTerminateProcess



А есть какие-нибудь примеры? В NtOpenProcess надо указывать некие абстрактные параметры, я даже не нашел, где можно указать PID..

261
22 июня 2007 года
ahilles
1.5K / / 03.11.2005
на с++ и asm сам переведёшь (user mode код на дельфи , но в принципе должен и в ядре пойти)
Код:
var
  CID:TClientID;
  ObjAttrs:TObjectAttributes;
  hProcess:THandle;
begin
  ZeroMemory(@ObjAttrs,sizeof(ObjAttrs));
  CID.UniqueProcess:=ProcessID;  
  CID.UniqueThread:=0;
  RES:=ZwOpenProcess(@hProcess,PROCESS_TERMINATE,@ObjAttrs,@CID);
  if RES<>STATUS_SUCCESS then
    exit;
  RES:=ZwTerminateProcess(hProcess,0);
334
22 июня 2007 года
HexEdit
809 / / 27.07.2006
2ahilles: не ZwXxx а NtXxx
2disasm: эти функции экспортируются ntoskrnl.exe, НО: они не документированы, и поэтому советую тестить на виртуалке :)
Хотя у меня все вроде было ок :)

ЗЫ. И никакие они не абстрактные, нормальные параметры :)
1.9K
23 июня 2007 года
disasm
232 / / 06.02.2006
Цитата: HexEdit
2ahilles: не ZwXxx а NtXxx
2disasm: эти функции экспортируются ntoskrnl.exe, НО: они не документированы, и поэтому советую тестить на виртуалке :)
Хотя у меня все вроде было ок :)

ЗЫ. И никакие они не абстрактные, нормальные параметры :)



Интересно выходит.. Если у меня функция NtOpenProcess есть, то функции NtTerminateProcess нет. К тому же у функции NtOpenProcess 3 (а не 4) параметра, и её нет в мсдн

Код ahilles-а работает, за что ему огромное спасибо!!!

261
23 июня 2007 года
ahilles
1.5K / / 03.11.2005
Цитата: HexEdit
2ahilles: не ZwXxx а NtXxx


в user mode разницы нет никакой.
а вот в kernel mode есть Zw функции проверяют права доступа и безопасность а Nt функции не проверяют. В данном случае это не важно.
в DDK вообще винегрет: документировано и объявлено в заголовочных файлах половина Zw функции и половина Nt функций.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог