Ver Mensaje Individual
  #8  
Antiguo 13-01-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 11
aguml Va por buen camino
Bueno, al final lo que estaba haciendo no me iba bien del todo ya que en unas funciones de la dll funcionaba y en otras crasheaba creo que porque como solo copio las funciones pues al ejecutarse supongo que buscaba alguna cosa de la dll y booom.
Lo estoy intentando pasar todo para usarlo con lo que pusiste y de momento para cargar la dll tengo esto:
Código PHP:
void __fastcall TFormMain::OnEntryPoint(DWORD Address)
{
   
// Inyecta la dll
   
AnsiString dll "DLLHack.dll";
   
HANDLE  hThread 0;
   
DWORD   ExitCode 0;
   
LPTHREAD_START_ROUTINE hLib;

   
// Localizo memoria en el espacio de direcciones de la víctima
   
void*  Buffer VirtualAllocEx((HANDLE)Depurador->GetHProcess(), NULLdll.Length()+1MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);

   if(
Buffer){
      if(
Depurador->WriteMemory((unsigned long)Bufferdll.c_str(), dll.Length()+1)){
         
hLib = (LPTHREAD_START_ROUTINE)Depurador->GetAddressAPIByName("Kernel32.dll""LoadLibraryA");
         if(
hLib){
            
hThread =:: CreateRemoteThread(Depurador->GetHProcess(), NULL0hLibBuffer00);
            if(
hThread){
               
WaitForSingleObject(hThreadINFINITE ); // Espero a que se cree el Thread
               
GetExitCodeThread(hThread, &ExitCode);   // Termino el Thread
               
CloseHandle(hThread);                    // Cierro el Handle hThread
            
}
         }
      }
      
// libero la memoria localizada...
      
VirtualFreeEx((HANDLE)Depurador->GetHProcess(), Buffer0MEM_RELEASE); // Libero memoria
   
}

Como corre dentro de un depurador, tengo metodos para obtener la direccion de las apis dentro del proceso y otras cosas mas.
El problema que tengo es que se queda congelado en el WaitForSingleObject aunque si lo miro con el Cheat Engine puedo ver como se ha creado el hilo. ¿que puedo hacer para solucionar eso?
Responder Con Cita