elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
06 Octubre 2008, 21:52  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderadores: Hendrix, E0N)
| | |-+  Acerca de Matar Pocesos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Acerca de Matar Pocesos  (Leído 283 veces)
Zorrohack

Desconectado Desconectado

Mensajes: 845


Quisiera burlar la enfermedad asi como a los AVs


Ver Perfil
Acerca de Matar Pocesos
« en: 18 Enero 2004, 01:06 »

 ???

He estado mirando este articulo:

Cancelar un proceso (kill)

MKB-551101

Para poder cerrar un proceso hay que seguir los siguientes pasos:

1. Obtener el identificador del proceso.

2. Abrir el proceso a partir de su identificador. Para ello, hay que utilizar la función OpenProcess:

Private Declare Function OpenProcess Lib "kernel32" (ByVal _
dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal _
dwProcessId As Long) As Long

3. Comprobar el estado del proceso con la función GetExitCodeProcess para comprobar que está activo:

Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal _
hProcess As Long, lpExitCode As Long) As Long

4. Si el proceso está activo hay que cerrarlo con la función TerminateProcess:

Private Declare Function TerminateProcess Lib "kernel32" (ByVal _
hProcess As Long, ByVal uExitCode As Long) As Long

5. Por último, si el proceso se cerró correctamente hay que liberar su manejador asociado con CloseHandle:

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject _
As Long) As Long

A continuación, se muestra un ejemplo en Visual Basic que implementa el kill -9. Siga los siguientes pasos para probar el código:

1. Cree un nuevo proyecto con un formulario.
2. Añada un botón y una caja de texto con las siguientes propiedades:

Command1
Name: btnCerrar
Caption: &Matar Proceso

Text1
Name: txtIdProceso
Text: ""

3. Copie o pegue el siguiente código en el formulario:

Private Declare Function OpenProcess Lib "kernel32" (ByVal _
dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject _
As Long) As Long

Const PROCESS_TERMINATE = &H1
Const PROCESS_QUERY_INFORMATION = &H400
Const STILL_ACTIVE = &H103

Private Sub btnCerrar_Click()
Dim hProceso As Long
Dim lEstado As Long

' Obtenemos el handle al proceso
hProceso = OpenProcess(PROCESS_TERMINATE Or _
PROCESS_QUERY_INFORMATION, 0, CLng(txtIdProceso))

If hProceso <> 0 Then
  ' Comprobamos estado del proceso
  GetExitCodeProcess hProceso, lEstado
  If lEstado = STILL_ACTIVE Then
    ' Cerramos el proceso
    If TerminateProcess(hProceso, 9) <> 0 Then
      MsgBox "Proceso cerrado"
    Else
      MsgBox "No se pudo matar el proceso"
    End If
  End If
  ' Cerramos el handle asociado al proceso
  CloseHandle hProceso
Else
  MsgBox "No se pudo tener acceso al proceso"
End If
End Sub


Pero no he conseguido nada, ademas quisiera saber como hago para por ejemplo Matar el Proceso de Avpm.exe que es del Anti Virus Kaspersky.


En línea

Progresamos porque hay Millones de imbeciles, maldicion jodi a McAfee,Panda,Kav,Norton, perdonen solo practicaba.
Mr.Potat0
Visitante


Email
Re:Acerca de Matar Pocesos
« Respuesta #1 en: 18 Enero 2004, 02:11 »

puedes mirar los procesos activos con Process32First y Process32Next, el segundo parametro de estas funciones es un puntero a una estructura (PROCESSENTRY32):

Citar
typedef struct tagPROCESSENTRY32 {
    DWORD dwSize;
    DWORD cntUsage;
    DWORD th32ProcessID;
    DWORD th32DefaultHeapID;
    DWORD th32ModuleID;
    DWORD cntThreads;
    DWORD th32ParentProcessID;
    LONG  pcPriClassBase;
    DWORD dwFlags;
    char szExeFile[MAX_PATH];
} PROCESSENTRY32;

char szExeFile[MAX_PATH] tiene el nombre del ejecutable, ya sabes lo que puedes hacer.
En línea
Zorrohack

Desconectado Desconectado

Mensajes: 845


Quisiera burlar la enfermedad asi como a los AVs


Ver Perfil
Re:Acerca de Matar Pocesos
« Respuesta #2 en: 20 Enero 2004, 00:56 »

 ???


No entendi Nada !!!
En línea

Progresamos porque hay Millones de imbeciles, maldicion jodi a McAfee,Panda,Kav,Norton, perdonen solo practicaba.
®®
Colaborador

Conectado Conectado

Mensajes: 5.254


Ver Perfil
Re:Acerca de Matar Pocesos
« Respuesta #3 en: 20 Enero 2004, 01:31 »

pos asi por encima y copiado de la ayuda:

Process32First Retrieves information about the first process encountered in a system snapshot. (CreateToolhelp32Snapshot ¿ok?

pues bueno la estructura que te decia en el otro post tiene un campo que es szExeFile[MAX_PATH] ¿ok? aqui estara el nombre del ejecutable luego solo te queda comparar que szExeFile sea = a el programa que tu buscas.
En línea
4lpha

Desconectado Desconectado

Mensajes: 60


¡Amo YaBB SE!


Ver Perfil
Re:Acerca de Matar Pocesos
« Respuesta #4 en: 20 Enero 2004, 18:44 »

A mi tambien me interesaria saber como matar procesos en vb, ay algun manual q diga como? losq yo tengo no tocan l tema...
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats