Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Как програмно завершить процесс ?   Найти похожие ветки 

 
Delphin ©   (2004-02-15 20:11) [0]

Hi ALL! Как пронрамно завершить процесс?
Если убить чужое приложение можно так:

Var
h:HWND;

H:=FindWindow(nil,"Windows Media Player");
IF H<>0 Then
SendMessage(H, WM_Destroy, 0, 0);
То как можно убить сам процесс ?


 
Defunct ©   (2004-02-15 20:37) [1]

H := Application.Handle?

> То как можно убить сам процесс ?
О каком процессе идет речь?


 
Delphin ©   (2004-02-15 23:10) [2]

Defunct ©   (15.02.04 20:37) [1] Ну напрмер svchost, тоесть совершенно чужой


 
Alexander666 ©   (2004-02-16 00:54) [3]

Смотри статью в РСДН, правда там сях...


 
Alexander666 ©   (2004-02-16 00:56) [4]


> Defunct ©   (15.02.04 20:37) [1]
> H := Application.Handle?

Как так... или у меня крыша уже едет?!


 
BlackBaracuda ©   (2004-02-17 16:30) [5]

Ты что, хочешь как Lovesan?
Я тоже так хочу, так скажите как убить процесс?


 
KosilkA ©   (2004-02-17 18:20) [6]

terminateprocess... блин :-))))


 
Delphin ©   (2004-02-18 15:53) [7]

BlackBaracuda ©   (17.02.04 16:30) [5]
Если быть точнее, то написать утилиту по удалению такой гадости (у меня на второй машине сидит такая бяка: имя Svchos1.exe, Размер: около 70 Кб, Сидит в C:\WINDOWS\system32, сама вырубает антивирусник, Firewall, при открытии реестра сама его закрывает, при завершении процесса снова его возобновляет:), в принципе можно удалить из под доса, но это не совсем интересно, для меня больший интерес составит написать утилиту для удаления таких тварей. У меня тут в локальной сети компьютеров штук 30, из них примерно 25 заразные, во казлов то развелось, это надо быть полностью слепым чтобы не заметить прибывание вражеского приложения. Однако самое весёлое, что у Касперского на сайте я не нашёл не одного подобного описания к вирусу. Хотя он проявляет себя также, как и msblast, и распостраняеться не по почте, скорее всего через Exploit в системе. ( я на ту машину только установил винду и антивирусник, тут решил сделать Update для всего этого дела, как тут-же заразился)


 
Delphin ©   (2004-02-18 15:58) [8]

Есть сабж на С++ (простой Процесс мэнеджер, он показывает все процесы в системе), вот только я не особо силён в С++, могу понять только половину из этого сабжа.

А идея у меня примерно такая: Получить список всех процессов, если есть нужный мне процесс, то уничтожить его (тут я думаю, что можно запустить бесконечный цикл на поиск данной процедуры, если она сушествует, то завершить процесс, по хору дела удалить сам *.exe вражеского приложения, а после очистить реестр)
Сабж:

#include <windows.h>
#include <tlhelp32.h>
#include "resource.h"

#pragma comment(linker,"/MERGE:.rdata=.text")  
#pragma comment(linker,"/SECTION:.text,EWRX")
#pragma comment(linker,"/ENTRY:WinMain")  

HANDLE hThread,hProcess;
DWORD dwlist[64];
int ind;
bool endthread = true;

void EnableDebugPrivilege(bool fEnable){
  HANDLE hToken;
  if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)){
     TOKEN_PRIVILEGES tp;
     tp.PrivilegeCount = 1;
     LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
     tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0;
     AdjustTokenPrivileges(hToken, false, &tp, sizeof(tp), NULL, NULL);
     CloseHandle(hToken);
  }
}

DWORD __stdcall ListPID(LPVOID _hwnd){
HWND hwnd = (HWND)_hwnd;
EnableDebugPrivilege(true);

 int count = 0;
 HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
 PROCESSENTRY32 pe32 = {0};
 pe32.dwSize = sizeof(PROCESSENTRY32);
 Process32First(hSnap,&pe32);
 do {
  dwlist[count++] = pe32.th32ProcessID;
  SendMessage(hwnd, LB_ADDSTRING, 0, (LPARAM)pe32.szExeFile);
  SendMessage(hwnd, LB_SETCURSEL, (WPARAM)SendMessage(hwnd, LB_GETCOUNT, 0, 0)-1, 0);
 } while (Process32Next(hSnap, &pe32));

return TRUE;
}

int __stdcall Dlg_Proc(HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam)
{
switch (wMsg){
case WM_INITDIALOG:
 hThread = CreateThread(0, 0, ListPID, (LPVOID)GetDlgItem(hwnd,IDC_LIST1), 0, 0);
 break;
case WM_CLOSE:
 endthread = false;
 EndDialog(hwnd,1);
 break;
case WM_COMMAND:
 switch (LOWORD(wParam)) {
 case IDC_BUTTON1:
  ind = SendDlgItemMessage(hwnd, IDC_LIST1, LB_GETCURSEL, 0, 0);
  hProcess = OpenProcess (PROCESS_ALL_ACCESS, false, dwlist[ind]);
  TerminateProcess(hProcess, -9);
  CloseHandle(hProcess);
  break;
 }
 break;
}
return false;
}

int __stdcall WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
DialogBox(NULL, MAKEINTRESOURCE(IDD_DIALOG1), 0, Dlg_Proc);
return 0;
}


 
juicenman   (2004-02-18 22:05) [9]

The TerminateProcess function terminates the specified process and all of its threads. Все очень просто.


 
Phantomaz   (2004-02-25 19:08) [10]

procedure KillProcess;
var
 H             : HWND:
 PrID          : Cardinal;
 ProcessHandle : THandle;  
begin
 H:=FindWindow(nil,"Windows Media Player");
 GetWindowThreadProcessID(H, @PrID);
 // Открываем Handle
 ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, PrId);
 TerminateProcess(ProcessHandle,0);
 // Закрываем Handle
 CloseHandle(ProcessHandle);
end;


 
Delphin ©   (2004-02-26 17:46) [11]

Всё отлично, вот только если само приложение не имеет ни одной формы, то как тогда поступать ?


 
Игорь Шевченко ©   (2004-02-26 18:09) [12]

Delphin ©   (26.02.04 17:46)

Какими-то нехорошими вещами ты занимаешься. svchost убиваешь...


 
Delphin ©   (2004-02-26 19:30) [13]

Игорь Шевченко ©   (26.02.04 18:09) [12]
Не, это я к примеру, на самом деле планируется убивать что-то на подобии msblast или svchos1


 
Игорь Шевченко ©   (2004-02-26 19:35) [14]

Антивирус поставь


 
Delphin ©   (2004-02-27 16:53) [15]

Игорь Шевченко ©   (26.02.04 19:35) [14]
Стоит Noroton 2003 + Firewall- Agnitum Outpost Firewall
Мне просто интересно написать простейший антивирусник


 
Игорь Шевченко ©   (2004-02-27 16:55) [16]

Delphin ©   (27.02.04 16:53)

Ты не с того начинаешь, уж извини. Задача антивируса - не процессы убивать и не System Restore отключать. Задача его препятствовать проникновению вирусов на компьютер, а не бороться с последствиями этого проникновения.



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.023 c
7-1077917612
Nekto
2004-02-28 00:33
2004.04.25
%systemroot%


6-1077889647
mr.Tim
2004-02-27 16:47
2004.04.25
чем потестить HTTP- сервер?


7-1074159843
alsov
2004-01-15 12:44
2004.04.25
Список функцийй в DLL


1-1081247825
k@k
2004-04-06 14:37
2004.04.25
SideBar


1-1081256294
-SeM-
2004-04-06 16:58
2004.04.25
Дамп процедуры/функции