elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 03:17  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  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 627 veces)
.:UND3R:.


Desconectado Desconectado

Mensajes: 1.960


Ingeniería inversa


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

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 por .:UND3R:. » En línea

raul338
Moderador
***
Conectado Conectado

Mensajes: 2.371


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 »

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: 144



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

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 por Hasseds » En línea

Sergio Desanti
BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 2.831


I'Love...!¡.


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

mira:

Código
 
Option Explicit
 
Private Sub Form_Load()
Dim stRes()     As stProcessInfo
Dim i           As Long
 
   i = (GetProcess("explorer.exe", stRes()) - 1)
   Do Until (i = 0)
       Debug.Print stRes(i - 1).dwPid; stRes(i - 1).szRuta
       i = (i - 1)
   Loop
End Sub
 
 

En un modulo:

Código
 
' ////////////////////////////////////////////////////////////////
' // Autor: BlackZeroX ( Ortega Avila Miguel Angel )            //
' //                                                            //
' // Web: http://InfrAngeluX.Sytes.Net/                         //
' //                                                            //
' // |-> Pueden Distribuir Este Código siempre y cuando         //
' // no se eliminen los créditos originales de este código      //
' // No importando que sea modificado/editado o engrandecido    //
' // o achicado, si es en base a este código                    //
' ////////////////////////////////////////////////////////////////

Option Explicit
 
Private Const PROCESS_QUERY_INFORMATION As Long = (&H400)
Private Const PROCESS_VM_READ           As Long = (&H10)
Private Const MAX_PATH                  As Long = 260
 
Private Type PROCESSENTRY32
   dwSize              As Long
   cntUsage            As Long
   th32ProcessID       As Long
   th32DefaultHeapID   As Long
   th32ModuleID        As Long
   cntThreads          As Long
   th32ParentProcessID As Long
   pcPriClassBase      As Long
   dwFlags             As Long
   szExeFile           As String * MAX_PATH
End Type
Public Type stProcessInfo
   szRuta              As String
   dwPid               As Long
End Type
Enum GetFileStr
    Extensión = 1
    FileName = 2
    Ruta = 4
End Enum
 
Private Declare Function CreateToolhelp32Snapshot Lib "Kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function Process32First Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)
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
 
Public Function GetProcess(ByVal sProcName As String, ByRef stRetOut() As stProcessInfo) As Long
'   //  La funcion Retorna la cantidad de procesos encontrados.
Dim hCTS                As Long
Dim PE32                As PROCESSENTRY32
Dim lhFind              As Long
Dim li                  As Long
Dim sTmp                As String * MAX_PATH
Dim lProc               As Long
 
   hCTS = CreateToolhelp32Snapshot(&HF, 0&)
   PE32.dwSize = LenB(PE32)
   sProcName = LCase$(sProcName)
   Mid$(PE32.szExeFile, 1, MAX_PATH) = String(MAX_PATH, Chr(0))
   lhFind = Process32First(hCTS, PE32)
   While (lhFind > 0)
       lProc = (InStr(1, PE32.szExeFile, Chr(0), vbBinaryCompare) - 1)
       If (lProc = Len(sProcName)) Then
           If (LCase$(Mid$(PE32.szExeFile, 1, lProc)) = sProcName) Then
               lProc = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, PE32.th32ProcessID)
               ReDim Preserve stRetOut(0 To li)
               If Not (lProc = 0) Then
                   stRetOut(li).szRuta = GetPatchInfo(Mid$(sTmp, 1, GetModuleFileNameExA(lProc, 0, sTmp, MAX_PATH)), Ruta)
                   CloseHandle lProc
               End If
               stRetOut(li).dwPid = PE32.th32ProcessID
               li = (li + 1)
           End If
       End If
       Mid$(PE32.szExeFile, 1, MAX_PATH) = String(MAX_PATH, Chr(0))
       lhFind = Process32Next(hCTS, PE32)
   Wend
   CloseHandle hCTS
   If (li > 0) Then
       GetProcess = (li + 1)
   Else
       GetProcess = 0
   End If
End Function
 
' ////////////////////////////////////////////////////////////////
' // http://infrangelux.hostei.com/index.php?option=com_content&view=article&id=17:artgetpatchinfo&catid=2:catprocmanager&Itemid=8
' ////////////////////////////////////////////////////////////////
Public Function GetPatchInfo(ByVal StrRutaFull As String, Optional ByVal Options As GetFileStr = FileName) As String
Dim lng_ptr(1)              As Long
Dim lng_aux                 As Long
    lng_aux = Len(StrRutaFull)
    lng_ptr(0) = InStrRev(StrRutaFull, "\")
    If lng_ptr(0) > 0 Then
        lng_ptr(1) = InStrRev(StrRutaFull, ".")
        If lng_ptr(1) > 0 And Not lng_ptr(0) < lng_ptr(1) Then
            lng_ptr(1) = lng_aux + 1
        End If
        If (Options And Ruta) = Ruta Then
            GetPatchInfo = Mid$(StrRutaFull, 1, lng_ptr(0)) & GetPatchInfo
        End If
        If (Options And FileName) = FileName Then
            If lng_ptr(1) = lng_aux Then
                lng_aux = lng_aux - lng_ptr(0) - 1
            Else
                lng_aux = lng_ptr(1) - lng_ptr(0) - 1
            End If
            GetPatchInfo = GetPatchInfo & Mid$(StrRutaFull, lng_ptr(0) + 1, lng_aux)
        End If
        If (Options And Extensión) = Extensión Then
            GetPatchInfo = GetPatchInfo & Mid$(StrRutaFull, lng_ptr(1), lng_ptr(1))
        End If
    End If
End Function
 
 

Temibles Lunas!¡.
En línea

Web Principal-->[ Blog(VB6) | Host File (Public & Private) | Scan Port | (New)MyInfraPC (Descubre mi Contraseña venefi. $) ]



The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilith y el metal mi
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda para poner comando en web
Desarrollo Web
Nikko 1 415 Último mensaje 27 Mayo 2004, 09:47
por The Ghost
Un script para Analizar
GNU/Linux
neopel 1 320 Último mensaje 15 Febrero 2005, 01:38
por Soul Lost
Uso del for para 'analizar' frases (><) « 1 2 »
Programación Visual Basic
WestOn 25 4,830 Último mensaje 6 Noviembre 2008, 19:23
por WestOn
[DUDA] For para matar procesos
Scripting
Francisasdasd 7 2,022 Último mensaje 23 Enero 2009, 00:20
por Francisasdasd
duda con el comando ipconfig/flushdns...y con comando en DOS...
Redes
orerof 5 5,126 Último mensaje 4 Octubre 2009, 06:09
por survil
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines