Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: seba123neo en 21 Octubre 2009, 02:38 am



Título: [SOURCE] Native Api - NtSuspendProcess/NtResumeProcess
Publicado por: seba123neo en 21 Octubre 2009, 02:38 am
Hola, este es un ejemplo de estas 2 api's nativas de NTDLL.DLL, la api NtSuspendProcess sirve como dice la palabra para suspender un proceso, es como si lo dejaria trabado, y la otra NtResumeProcess sirve para liberarlo y reestablecerlo a la normalidad, es muy facil el funcionamiento no hay mucha vuelta de tuerca, simplemente se les pasa el handle del proceso abierto con OpenProcess y listo.aca en el ejemplo el PID que usa OpenProcess esta fijo, o sea al PID del proceso que quieran usar como ejempo lo van a tener que averiguar ustedes  :P, lo hago asi para no ensuciar el codigo fuente, ya que para obtener el PID hay millones de paginas para ver como hacerlo y por eso se los dejo a ustedes.supongamos entonces que nuestro PID es el 1384 y supongamos pertenece a la calculadora de windows.

Código
  1. '****************************************************************
  2. ' Procedure : SuspendProcess
  3. ' Author    : seba123neo
  4. ' Date      : 20/10/2009
  5. ' Purpose   : Suspend/Resume Process
  6. '****************************************************************
  7.  
  8. Option Explicit
  9.  
  10. 'NTDLL.DLL
  11. Private Declare Function NtSuspendProcess Lib "ntdll.dll" (ByVal hProc As Long) As Long
  12. Private Declare Function NtResumeProcess Lib "ntdll.dll" (ByVal hProc As Long) As Long
  13.  
  14. Private Enum TYPESUSPEND
  15.    Suspend = 0
  16.    Release = 1
  17. End Enum
  18.  
  19. Private Const SYNCHRONIZE = &H100000
  20. Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
  21. Private Const PROCESS_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)
  22.  
  23. Private Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long
  24. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  25.  
  26. Private Sub Command1_Click()
  27.    Call SuspendProcess(1384, Suspend)
  28. End Sub
  29.  
  30. Private Sub Command2_Click()
  31.    Call SuspendProcess(1384, Release)
  32. End Sub
  33.  
  34. Private Sub SuspendProcess(ByVal pPID As Long, ByVal pTypeSuspend As TYPESUSPEND)
  35.    Dim vHandle As Long
  36.    vHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pPID)
  37.    If vHandle <> 0 Then
  38.        Select Case pTypeSuspend
  39.            Case 0: NtSuspendProcess vHandle
  40.            Case 1: NtResumeProcess vHandle
  41.        End Select
  42.    End If
  43.    CloseHandle vHandle
  44. End Sub
  45.  

saludos.


Título: Re: [SOURCE] Native Api - NtSuspendProcess/NtResumeProcess
Publicado por: LeandroA en 21 Octubre 2009, 03:57 am
Muy bueno Seba ;-), le corta todo los hilos al proceso.

Saludos