Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

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


bool KillProcByPid(DWORD pid)
 
 {
 
 DWORD ExitCode;
 
 HANDLE hp;
 
 bool ret = true;
 
 
 
 if(pid)
 
         {
 
         hp = OpenProcess(PROCESS_ALL_ACCESS, true, pid);
 
         if (hp)
 
                 {
 
                 GetExitCodeProcess(hp, &ExitCode);
 
                 ret = TerminateProcess(hp, ExitCode);
 
                 }
 
         else
 
                 {
 
                 return false;
 
                 }
 
         }
 
 else
 
         {
 
         return false;
 
         }
 
 
 
 CloseHandle(hp);
 
 return ret;
 
 }

Если попытаться завершить системный процесс, ничего не получится. Однако всё решается выполнением этой функции перед вызовом KillProcByPid:
bool SetDebugStatusForCurentProc()
 
 {
 
 HANDLE hToken;
 
 LUID DebugValue;
 
 TOKEN_PRIVILEGES tkp;
 
 
 
 if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES |
 
 TOKEN_QUERY,&hToken))
 
         {
 
         return false;
 
         }
 
 
 
 if (!LookupPrivilegeValue((LPSTR) NULL,SE_DEBUG_NAME,&DebugValue))
 
         {
 
         return false;
 
         }
 
 
 
 tkp.PrivilegeCount = 1;
 
 tkp.Privileges[0].Luid = DebugValue;
 
 tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
 
 
 
 AdjustTokenPrivileges(hToken,FALSE,&tkp,sizeof(TOKEN_PRIVILEGES),(PTOKEN_PRIVILEGES)
 
 NULL,(PDWORD) NULL);
 
 
 
 if (GetLastError() != ERROR_SUCCESS)
 
         {
 
         return false;
 
         }
 
 
 
 return true;
 
 }


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS