[DUDA] abrir un proceso de usuario (OpenProcess) VB 6.0

Iniciado por AlxSpy, 13 Junio 2011, 17:45 PM

0 Miembros y 2 Visitantes están viendo este tema.

AlxSpy

hice un codigo para buscar datos en la memoria de un proceso, uso el OpenProcess y la constante PROCESS_ALL_ACCESS, lo he ejecutado con varios procesos y anda bien, ahora quise probarlo con el juego StarCraft, al ejecutar este juego me fijo en el taskmgr en la columna donde dice si es un proceso "SYSTEM" o "serivcio de red" o "usuario"  dice que es proceso "usuario" pero no puedo abrir el proceso.

ThunderCls

-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

AlxSpy

#2
graxias, copie el codigo del post en un modulo .bas y llamo a esa funcion de esta manera:

Código (vb) [Seleccionar]
Private Sub Form_Load()
   ObtenerPrivilegios SE_DEBUG_NAME
End Sub


pero no puede abrir el proceso ¿algo hice mal?, mi SO es windows 7 ¿sera este el problema?,el taskmgr si puede cerrar el proceso con facilidad , estuve revisando algo acerca del comando schtasks y tambien estoy que busco lo del AdjustTokenPrivileges.

mi cuenta de usuario es la unica y principal.

ThunderCls

Cita de: alxspy en 16 Junio 2011, 01:34 AM
graxias, copie el codigo del post en un modulo .bas y llamo a esa funcion de esta manera:

Código (vb) [Seleccionar]
Private Sub Form_Load()
   ObtenerPrivilegios SE_DEBUG_NAME
End Sub


pero no puede abrir el proceso ¿algo hice mal?, mi SO es windows 7 ¿sera este el problema?,el taskmgr si puede cerrar el proceso con facilidad , estuve revisando algo acerca del comando schtasks y tambien estoy que busco lo del AdjustTokenPrivileges.

mi cuenta de usuario es la unica y principal.

Pues no se en realidad que estaras haciendo, pero con el codigo que te puse anteriormente a mi me va de maravillas. Te pongo un codigo de ejemplo con el que consigo abrir un proceso SYSTEM  ;D
Copia el codigo anterior en un modulo, inserta dos botones en el formulario y luego copia este codigo:

Código (vb) [Seleccionar]
Private Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Const PROCESS_ALL_ACCESS = &H1F0FFF

Private Sub Command1_Click()
   ObtenerPrivilegios SE_DEBUG_NAME
End Sub

Private Sub Command2_Click()
   Dim hOpen As Long
   
   hOpen = OpenProcess(PROCESS_ALL_ACCESS, 0&, 800) ' // Abrimos el proceso por su PID
                                                    ' // Cambia el "800" por el PID del proc que quieras
   If hOpen = 0 Then
     MsgBox "No abrio el proceso", vbCritical, "Error", 0, 0
   Else
     MsgBox "Se abrio el proceso", vbInformation, "Correcto", 0, 0
   End If
   
   CloseHandle (hOpen)
End Sub


Veras que si le das al boton2 antes que al boton1 te dara error, pues no tienes los privilegios activados, una vez los ajustes, te saldra el cartel de correcto.
saludos

-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/