ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

04.04.2010, 21:03
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
По имени запускаемой проги узнаем PID и KillProcess(PID). Это Возможно?
|
|
|

04.04.2010, 21:16
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
PHP код:
bool TermProc(AnsiString ProcName)
{
HANDLE hpr = NULL;
HANDLE hProcessSnap = NULL;
PROCESSENTRY32 pe32;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe32.dwSize = sizeof(pe32);
if (Process32First(hProcessSnap, &pe32))
do
if(AnsiString(pe32.szExeFile) == ProcName)
{
hpr = OpenProcess(PROCESS_TERMINATE,FALSE,pe32.th32ProcessID);
TerminateProcess(hpr,0);
return true;
}
while (Process32Next(hProcessSnap, &pe32));
CloseHandle (hpr);
CloseHandle (hProcessSnap);
return false;
}
P.S.: #include <Tlhelp32.h>
|
|
|

04.04.2010, 21:17
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
а то http://www.wasm.ru/article.php?article=hiddndt
если надо могу на delphi код дать... ща поищу давно давно делал
Код:
///////////////////////////////////////////////////////////
function ProcessTerminate(dwPID:Cardinal):Boolean;
var
hToken:THandle;
SeDebugNameValue:Int64;
tkp:TOKEN_PRIVILEGES;
ReturnLength:Cardinal;
hProcess:THandle;
begin
Result:=false;
// Добавляем привилегию SeDebugPrivilege
// Для начала получаем токен нашего процесса
if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES
or TOKEN_QUERY, hToken ) then
exit;
// Получаем LUID привилегии
if not LookupPrivilegeValue( nil, 'SeDebugPrivilege', SeDebugNameValue )
then begin
CloseHandle(hToken);
exit;
end;
tkp.PrivilegeCount:= 1;
tkp.Privileges[0].Luid := SeDebugNameValue;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
// Добавляем привилегию к нашему процессу
AdjustTokenPrivileges(hToken,false,tkp,SizeOf(tkp),tkp,ReturnLength);
if GetLastError()<> ERROR_SUCCESS then exit;
// Завершаем процесс. Если у нас есть SeDebugPrivilege, то мы можем
// завершить и системный процесс
// Получаем дескриптор процесса для его завершения
hProcess := OpenProcess(PROCESS_TERMINATE, FALSE, dwPID);
if hProcess =0 then exit;
// Завершаем процесс
if not TerminateProcess(hProcess, DWORD(-1))
then exit;
CloseHandle( hProcess );
// Удаляем привилегию
tkp.Privileges[0].Attributes := 0;
AdjustTokenPrivileges(hToken, FALSE, tkp, SizeOf(tkp), tkp, ReturnLength);
if GetLastError() <> ERROR_SUCCESS
then exit;
Result:=true;
end;
///////////////////////////////////////////////////////////
|
|
|

04.04.2010, 21:25
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
SetWindowPos - интересная ф-ция  (только taskmng равноправны  ) У меня wasm неробит! забанили походу
Да а на счет PID по Имени процесса или файла реально узнать?
|
|
|

04.04.2010, 21:35
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Сообщение от cheater_man
Да а на счет PID по Имени процесса или файла реально узнать?
мое предыдущее сообщение почитай...
|
|
|

04.04.2010, 21:43
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Сообщение от M_script_
мое предыдущее сообщение почитай...
Thanks. It is working example. 
|
|
|

04.04.2010, 21:57
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Упс. А чтото вы все забыли один хороший способ. Связанный с приложениями отладчиками. В ключе
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe
прописать параметр Debugger указывающий на пусть в несуществующей проге или к проге которая ничего не делает или к своей.
т.е. смысл в том, что при старте taskmgr.exe автоматически запустится прога указанная в параметре Debugger. таким образом наша прога получит управленяи первой. А настоящий диспечер задач незапустится
И главное - это будет работать всегда почти. именно такой метод юзает ProcessExplorerNT чтобы запускаться вместо стандартного диспечера задач
Последний раз редактировалось slesh; 04.04.2010 в 22:29..
|
|
|

05.04.2010, 06:15
|
|
Познающий
Регистрация: 14.05.2009
Сообщений: 92
Провел на форуме: 299447
Репутация:
5
|
|
procedure DestroyTaskMgr;
var
hwnd:THandle;
begin
hwnd := FindWindow(0,'Диспетчер задач Windows');
if hwnd = 0 then exit else
SendMessage(hwnd,WM_SYSCOMMAND,SC_CLOSE,0);
end;
ЯП : Delphi
Вот компромис.. Без запар и понятно как комнатные тапки...
|
|
|

05.04.2010, 08:13
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
Сообщение от iGlass
procedure DestroyTaskMgr;
var
hwnd:THandle;
begin
hwnd := FindWindow(0,'Диспетчер задач Windows');
if hwnd = 0 then exit else
SendMessage(hwnd,WM_SYSCOMMAND,SC_CLOSE,0);
end;
ЯП : Delphi
Вот компромис.. Без запар и понятно как комнатные тапки...
повтор, это уже показывал M_script_
|
|
|

05.04.2010, 08:27
|
|
Познающий
Регистрация: 14.05.2009
Сообщений: 92
Провел на форуме: 299447
Репутация:
5
|
|
Всю тему не читал, так что сорри
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|