Главная страница
    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.035 c
3-1080558744
JibSkeart_
2004-03-29 15:12
2004.04.25
А что за фишка с ExecuteOtions -> eoAsyncExecute = true ?


14-1080554461
pasha_golub
2004-03-29 14:01
2004.04.25
"Умный дом"


14-1080247544
Undert
2004-03-25 23:45
2004.04.25
PageProducer на РHP


14-1080554097
Dmitriy O.
2004-03-29 13:54
2004.04.25
Как определить чо нужно а что нет ?


14-1081130460
Думкин
2004-04-05 06:01
2004.04.25
С днем рождения! 5 апреля





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский