Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.033 c
1-1081151863
infom
2004-04-05 11:57
2004.04.25
Вывод листинга программы в Word


14-1080803078
Фикус
2004-04-01 11:04
2004.04.25
Новый вирус!


14-1081170459
VID
2004-04-05 17:07
2004.04.25
Куда IE положил скачанные обновления для Windows ?


11-1064814825
Ал
2003-09-29 09:53
2004.04.25
Как сделать многострочный Hint?


14-1080757008
gn
2004-03-31 22:16
2004.04.25
хочу похвастатся моя любимая написала первую программу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский