comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Buscar bytes en la memoria virtual

  • 1 Respuestas
  • 1768 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado linkgl

  • *
  • Underc0der
  • Mensajes: 45
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Agosto 16, 2011, 12:24:17 pm »
Este código lo hice en base a otro código mío jaja, este es como un "STRPOS" o "INSTR" que busca determinados bytes en la memoria de un programa y retorna la posicion en la que se encuentran, partiendo de una dirección que le des, ejemplo

buscar 0x90
desde 0x401000
retorno 0x40105D
(por poner un ejemplo)

Código: C
  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. DWORD FindXBytes(DWORD inicio,LPVOID bytes,LPSTR proceso,DWORD tam)
  5. {
  6.   STARTUPINFO si
  7.   PROCESS_INFORMATION pi;
  8.   ZeroMemory( &si, sizeof(si) );
  9.   ZeroMemory( &pi, sizeof(pi) );
  10.   si.cb = sizeof(si);
  11.   DWORD leidos;
  12.   char *value;
  13.   value=(char *)No tienes permisos para ver links. Registrate o Entra con tu cuenta(tam);
  14.   No tienes permisos para ver links. Registrate o Entra con tu cuenta(value,0,tam);
  15.   if(CreateProcess(proceso,"",NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi))
  16.   {
  17.     ResumeThread(pi.hThread);
  18.     while(ReadProcessMemory(pi.hProcess, (LPVOID)inicio, &value, tam, &leidos))
  19.     {
  20.       if(No tienes permisos para ver links. Registrate o Entra con tu cuenta(bytes,&value,tam)==0)
  21.       {
  22.         TerminateProcess(pi.hProcess,0);
  23.         return inicio;
  24.       }
  25.       inicio++;
  26.     }
  27.     TerminateProcess(pi.hProcess,0);
  28.     return 0;
  29.   }
  30.   else
  31.   {
  32.     return 0;
  33.   }
  34. }
  35. int main()
  36. {
  37.   //->Ejemplo de uso  
  38.   char buscar[7]={0xFF,0x35,0x50,0x20,0x40,0x00};
  39.   int posicion=FindXBytes(0x401000,buscar,"c:\\crackme2.exe",6);
  40.   if(posicion!=0)
  41.     No tienes permisos para ver links. Registrate o Entra con tu cuenta("%s esta en la direccion en memoria-> %X",buscar,posicion);
  42.   else No tienes permisos para ver links. Registrate o Entra con tu cuenta("no se encontro %s en la memoria virtual del programa");
  43.   No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  44.   return 0;
  45. }
« Última modificación: Agosto 16, 2011, 12:25:54 pm por linkgl »

Desconectado P4|3L0

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Agosto 10, 2012, 08:49:25 am »
Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
else printf("no se encontro %s en la memoria virtual del programa");
¿?¿?¿? Y ese parametro %s que saca?

 

¿Te gustó el post? COMPARTILO!



Buscar y reemplazar bytes en runtime (loader)

Iniciado por linkgl

Respuestas: 0
Vistas: 1268
Último mensaje Agosto 13, 2011, 01:35:57 am
por linkgl