Ver Mensaje Individual
  #1  
Antiguo 14-08-2020
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 14
aguml Va por buen camino
Problemas al buscar un proceso

Hola amigos, estoy intentando crear un proceso suspendido, obtener su imagebase, y por último revivirlo. De momento tengo esto:
Código PHP:
#include <vcl.h>
#include <Windows.h>
#include <psapi.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponentOwner)
    : 
TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    
WideString path "";
    
wchar_t szProcessName[] = L"mi_proceso.exe";
    
WideString fullPath path szProcessName;
    
PROCESS_INFORMATION pi;
    
STARTUPINFO si;
    
HMODULE hMod;
    
DWORD cbNeeded=0;

    
ZeroMemory( &sisizeof(si) );
    
si.cb sizeof(si);
    
ZeroMemory( &pisizeof(pi) );

    
//Creo el proceso suspendido
    
CreateProcess(fullPath.c_bstr(), NULLNULLNULLFALSECREATE_SUSPENDEDNULLNULL, &si, &pi);

    
//Busco el proceso en la lista de procesos
    
if ( EnumProcessModulespi.hProcess, &hModsizeof(hMod), &cbNeeded) )
    {
        
GetModuleBaseNamepi.hProcesshModszProcessNamesizeof(szProcessName)/sizeof(wchar_t) );
    }
    
//Revivo el proceso
    
ResumeThread(pi.hThread);

    
//Libero el Handle
    
CloseHandle(pi.hProcess);

El caso es que cuando llego a EnumProcessModules nunca entra aunque mi proceso si está en la lista de procesos. ¿alguna ayuda para solucionarlo? Lo que necesito es obtener la ImageBase del proceso creado suspendido.
Responder Con Cita