Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: naderST en 22 Junio 2008, 19:04 pm



Título: Detectar la ejecución de una aplicación
Publicado por: naderST en 22 Junio 2008, 19:04 pm
Buenas quería saber como podría hacer esto?


Título: Re: Detectar la ejecución de una aplicación
Publicado por: SKL (orignal) en 22 Junio 2008, 19:48 pm
lista los procesos y agregale un IF, si el nombre del exe es igual al que estas buscando, que salte el error o lo que sea


Título: Re: Detectar la ejecución de una aplicación
Publicado por: naderST en 22 Junio 2008, 19:56 pm
lista los procesos y agregale un IF, si el nombre del exe es igual al que estas buscando, que salte el error o lo que sea

mmm pero quiero que detecte cualquier exe que se ejecute, no solo uno en específico.


Título: Re: Detectar la ejecución de una aplicación
Publicado por: SKL (orignal) en 22 Junio 2008, 20:03 pm
bue, es lo mismo pero agarra los ultimas 3 letras del programa y te va a decir si es un exe o una dll


Título: Re: Detectar la ejecución de una aplicación
Publicado por: Fr4NN^ en 2 Julio 2008, 15:34 pm
mmm... puedes volcar todos los procesos a un list o a cualkier lado y comparar a cada rato con la del instante y si aparece uno nuevo podes capturar el nombre...
no parece ser dificil..

sientate un rato y fijate como lo puedes hacer xD

Saludos


Título: Re: Detectar la ejecución de una aplicación
Publicado por: Hendrix en 2 Julio 2008, 15:53 pm
Interceptar ejecutables (http://www.gedzac.com/articulos/interexe.zip)

Es algo viejo este articulo, pero te podria servir.

Un Saludo  :)



Título: Re: Detectar la ejecución de una aplicación
Publicado por: seba123neo en 2 Julio 2008, 16:42 pm
tambien podes hacer algo asi:

Código
  1. Option Explicit
  2. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  3. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  4. Private Declare Function EnumProcesses Lib "PSAPI.DLL" (lpidProcess As Long, ByVal cb As Long, cbNeeded As Long) As Long
  5. Private Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, lphModule As Long, ByVal cb As Long, lpcbNeeded As Long) As Long
  6. Private Declare Function GetModuleBaseName Lib "PSAPI.DLL" Alias "GetModuleBaseNameA" (ByVal hProcess As Long, ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
  7. Private Const PROCESS_VM_READ = &H10
  8. Private Const PROCESS_QUERY_INFORMATION = &H400
  9.  
  10. Private Function EstaCorriendo(ByVal NombreDelProceso As String) As Boolean
  11. Const MAX_PATH As Long = 260
  12. Dim lProcesses() As Long, lModules() As Long, N As Long, lRet As Long, hProcess As Long
  13. Dim sName As String
  14. NombreDelProceso = UCase$(NombreDelProceso)
  15. ReDim lProcesses(1023) As Long
  16. If EnumProcesses(lProcesses(0), 1024 * 4, lRet) Then
  17. For N = 0 To (lRet \ 4) - 1
  18. hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lProcesses(N))
  19. If hProcess Then
  20. ReDim lModules(1023)
  21. If EnumProcessModules(hProcess, lModules(0), 1024 * 4, lRet) Then
  22. sName = String$(MAX_PATH, vbNullChar)
  23. GetModuleBaseName hProcess, lModules(0), sName, MAX_PATH
  24. sName = Left$(sName, InStr(sName, vbNullChar) - 1)
  25. If Len(sName) = Len(NombreDelProceso) Then
  26. If NombreDelProceso = UCase$(sName) Then EstaCorriendo = True: Exit Function
  27. End If
  28. End If
  29. End If
  30. CloseHandle hProcess
  31. Next N
  32. End If
  33. End Function
  34.  
  35. Private Sub Command1_Click()
  36. MsgBox EstaCorriendo("calc.exe")
  37. End Sub

esto es cualquiera es para uno solo.. :P

saludos.


Título: Re: Detectar la ejecución de una aplicación
Publicado por: naderST en 2 Julio 2008, 19:39 pm
Gracias a todos por sus respuesta, pero me voy con la respuesta de Hendriҳ