elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Duda con comando para analizar procesos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con comando para analizar procesos  (Leído 2,695 veces)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Duda con comando para analizar procesos
« en: 11 Junio 2011, 04:16 am »

Hola a todos bueno les cuento tomé un SOURCE que hace más o menos estó
EJ:
Código:
archivo.exe

-al hacer doble click en archivo.exe este hace una copia de archivo.exe y lo coloca en la siguiente dirección y con el siguiente nombre:
Código:
 c:/archivo de programas/asd/explorer.exe
-luego de esto ejecuta explorer.exe

por lo que por deducción nunca se ejecuta archivo.exe

-el problema surge que si se hace doble click nuevamente a archivo.exe este arranca y tiene una condición si existe c:/archivo de programas/asd/explorer.exe no lo copia a ese lugar pero luego se vuelve a ejecutar explorer.exe, por la que idea sería la siguiente que antes de ejecutar el explorer.exe verifique si c:/archivo de programas/asd/explorer.exe está siendo ejecutado y solo si no está ejecutado este lo lanza, el problema es que no se puede dar referencia a explorer.exe

como hago esto, Gracias :D


« Última modificación: 11 Junio 2011, 04:19 am por .:UND3R:. » En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Duda con comando para analizar procesos
« Respuesta #1 en: 11 Junio 2011, 04:22 am »

Tendrias que enumerar los procesos activos y a partir de ahi ver con GetModuleBase (creo que era ese) para ver si es tu "explorer"

Estoy desde el movil, no recuerdo bien los nombres de la api, pero puedes buscaren google :P


En línea

Hasseds

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: Duda con comando para analizar procesos
« Respuesta #2 en: 11 Junio 2011, 05:20 am »

http://foro.elhacker.net/programacion_visual_basic/isway-t328357.0.html

Código:
      
    Dim ruta As String
    ruta = "c:\Archivos de Programa\asd\explorer.exe"
    ' ruta = Environ("ProgramFiles") & "\asd\explorer.exe"

    If InStr(LCase$(IsWay("Explorer.Exe")), LCase$(ruta)) > 0 Then
     MsgBox "Corre"
    Else
     MsgBox "no corre"
    End If


« Última modificación: 11 Junio 2011, 05:39 am por Hasseds » En línea

Sergio Desanti
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Duda con comando para analizar procesos
« Respuesta #3 en: 11 Junio 2011, 07:42 am »

mira:

Código
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Form_Load()
  5. Dim stRes()     As stProcessInfo
  6. Dim i           As Long
  7.  
  8.    i = (GetProcess("explorer.exe", stRes()) - 1)
  9.    Do Until (i = 0)
  10.        Debug.Print stRes(i - 1).dwPid; stRes(i - 1).szRuta
  11.        i = (i - 1)
  12.    Loop
  13. End Sub
  14.  
  15.  

En un modulo:

Código
  1.  
  2. ' ////////////////////////////////////////////////////////////////
  3. ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel )            //
  4. ' //                                                            //
  5. ' // Web: http://InfrAngeluX.Sytes.Net/                         //
  6. ' //                                                            //
  7. ' // |-> Pueden Distribuir Este Código siempre y cuando         //
  8. ' // no se eliminen los créditos originales de este código      //
  9. ' // No importando que sea modificado/editado o engrandecido    //
  10. ' // o achicado, si es en base a este código                    //
  11. ' ////////////////////////////////////////////////////////////////
  12.  
  13. Option Explicit
  14.  
  15. Private Const PROCESS_QUERY_INFORMATION As Long = (&H400)
  16. Private Const PROCESS_VM_READ           As Long = (&H10)
  17. Private Const MAX_PATH                  As Long = 260
  18.  
  19. Private Type PROCESSENTRY32
  20.    dwSize              As Long
  21.    cntUsage            As Long
  22.    th32ProcessID       As Long
  23.    th32DefaultHeapID   As Long
  24.    th32ModuleID        As Long
  25.    cntThreads          As Long
  26.    th32ParentProcessID As Long
  27.    pcPriClassBase      As Long
  28.    dwFlags             As Long
  29.    szExeFile           As String * MAX_PATH
  30. End Type
  31. Public Type stProcessInfo
  32.    szRuta              As String
  33.    dwPid               As Long
  34. End Type
  35. Enum GetFileStr
  36.     Extensión = 1
  37.     FileName = 2
  38.     Ruta = 4
  39. End Enum
  40.  
  41. Private Declare Function CreateToolhelp32Snapshot Lib "Kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
  42. Private Declare Function Process32First Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  43. Private Declare Function Process32Next Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  44. Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  45. Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)
  46. Private Declare Function GetModuleFileNameExA Lib "PSAPI.DLL" (ByVal hProcess As Long, ByVal hModule As Long, ByVal lpFilename As String, ByVal nSize As Long) As Long
  47.  
  48. Public Function GetProcess(ByVal sProcName As String, ByRef stRetOut() As stProcessInfo) As Long
  49. '   //  La funcion Retorna la cantidad de procesos encontrados.
  50. Dim hCTS                As Long
  51. Dim PE32                As PROCESSENTRY32
  52. Dim lhFind              As Long
  53. Dim li                  As Long
  54. Dim sTmp                As String * MAX_PATH
  55. Dim lProc               As Long
  56.  
  57.    hCTS = CreateToolhelp32Snapshot(&HF, 0&)
  58.    PE32.dwSize = LenB(PE32)
  59.    sProcName = LCase$(sProcName)
  60.    Mid$(PE32.szExeFile, 1, MAX_PATH) = String(MAX_PATH, Chr(0))
  61.    lhFind = Process32First(hCTS, PE32)
  62.    While (lhFind > 0)
  63.        lProc = (InStr(1, PE32.szExeFile, Chr(0), vbBinaryCompare) - 1)
  64.        If (lProc = Len(sProcName)) Then
  65.            If (LCase$(Mid$(PE32.szExeFile, 1, lProc)) = sProcName) Then
  66.                lProc = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, PE32.th32ProcessID)
  67.                ReDim Preserve stRetOut(0 To li)
  68.                If Not (lProc = 0) Then
  69.                    stRetOut(li).szRuta = GetPatchInfo(Mid$(sTmp, 1, GetModuleFileNameExA(lProc, 0, sTmp, MAX_PATH)), Ruta)
  70.                    CloseHandle lProc
  71.                End If
  72.                stRetOut(li).dwPid = PE32.th32ProcessID
  73.                li = (li + 1)
  74.            End If
  75.        End If
  76.        Mid$(PE32.szExeFile, 1, MAX_PATH) = String(MAX_PATH, Chr(0))
  77.        lhFind = Process32Next(hCTS, PE32)
  78.    Wend
  79.    CloseHandle hCTS
  80.    If (li > 0) Then
  81.        GetProcess = (li + 1)
  82.    Else
  83.        GetProcess = 0
  84.    End If
  85. End Function
  86.  
  87. ' ////////////////////////////////////////////////////////////////
  88. ' // http://infrangelux.hostei.com/index.php?option=com_content&view=article&id=17:artgetpatchinfo&catid=2:catprocmanager&Itemid=8
  89. ' ////////////////////////////////////////////////////////////////
  90. Public Function GetPatchInfo(ByVal StrRutaFull As String, Optional ByVal Options As GetFileStr = FileName) As String
  91. Dim lng_ptr(1)              As Long
  92. Dim lng_aux                 As Long
  93.     lng_aux = Len(StrRutaFull)
  94.     lng_ptr(0) = InStrRev(StrRutaFull, "\")
  95.     If lng_ptr(0) > 0 Then
  96.         lng_ptr(1) = InStrRev(StrRutaFull, ".")
  97.         If lng_ptr(1) > 0 And Not lng_ptr(0) < lng_ptr(1) Then
  98.             lng_ptr(1) = lng_aux + 1
  99.         End If
  100.         If (Options And Ruta) = Ruta Then
  101.             GetPatchInfo = Mid$(StrRutaFull, 1, lng_ptr(0)) & GetPatchInfo
  102.         End If
  103.         If (Options And FileName) = FileName Then
  104.             If lng_ptr(1) = lng_aux Then
  105.                 lng_aux = lng_aux - lng_ptr(0) - 1
  106.             Else
  107.                 lng_aux = lng_ptr(1) - lng_ptr(0) - 1
  108.             End If
  109.             GetPatchInfo = GetPatchInfo & Mid$(StrRutaFull, lng_ptr(0) + 1, lng_aux)
  110.         End If
  111.         If (Options And Extensión) = Extensión Then
  112.             GetPatchInfo = GetPatchInfo & Mid$(StrRutaFull, lng_ptr(1), lng_ptr(1))
  113.         End If
  114.     End If
  115. End Function
  116.  
  117.  

Temibles Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 10,305 Último mensaje 13 Febrero 2008, 21:41 pm
por revenge1252
Uso del for para 'analizar' frases (><) « 1 2 3 »
Programación Visual Basic
WestOn 25 13,641 Último mensaje 6 Noviembre 2008, 19:23 pm
por WestOn
[DUDA] For para matar procesos
Scripting
FranciskoAsdf 7 5,161 Último mensaje 23 Enero 2009, 00:20 am
por FranciskoAsdf
Duda para programar Arbol de Procesos en C - OS Linux
Programación C/C++
donself 0 2,435 Último mensaje 20 Mayo 2016, 18:49 pm
por donself
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines