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, 02:56  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  problemas al intentar reemplazar string en la memoria.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problemas al intentar reemplazar string en la memoria.  (Leído 610 veces)
Destro-

Desconectado Desconectado

Mensajes: 47


Ver Perfil
problemas al intentar reemplazar string en la memoria.
« en: 26 Noviembre 2011, 17:17 »

Holas :).

Estoy intentando reemplazar un string de otra aplicacion en memoria pero no logre nada :\.

Me podrian decir los orrores que tiene esto xd.

Código:
int main()
{
      char data[] = "asd";
      DWORD pid;
      HANDLE process;
      HWND wnd = FindWindow(0, "ventana");
 
      GetWindowThreadProcessId(wnd, &pid);
      process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);

      if(process==NULL)
            printf("Error abriendo el proceso.\n");
      else
            printf("Proceso abierto.\n");

      if(WriteProcessMemory(process, (LPVOID)00405254, (LPVOID)&data, strlen(data), NULL) == 0)
            printf("Error escribiendo memoria.\n");
      else
            printf("Memoria Escrita.\n");

      CloseHandle(process);

      system("PAUSE");
      return 0;
}

La direccion de memoria la saque con el ida.
.rdata:00405254 00000018 C No hay nuevas verciones

Trank :).

@EDIT
me olvidaba,el ultimo printf lo manda bien,pero en la otra aplicacion el msgbox sigue siendo el mismo "No hay nuevas verciones".


« Última modificación: 26 Noviembre 2011, 17:20 por Destro- » En línea
naderST


Desconectado Desconectado

Mensajes: 467



Ver Perfil
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #1 en: 26 Noviembre 2011, 22:21 »

Un detalle la dirección que encontraste es decimal u octal? Porque cuando llamas a WriteProcessMemory le estas pasando una dirección en octal OJO, si es decimal quita todos los ceros a la izquierda que tengas.

EDIT:

Estoy casi seguro que tu problema es que estas poniendo la dirección en octal, y de igual manera escribirá en la memoria del proceso solo que en una dirección que no quieres escribir.

Código
WriteProcessMemory(process, (LPVOID)405254, (LPVOID)&data, strlen(data), NULL)
 


« Última modificación: 26 Noviembre 2011, 22:29 por naderST » En línea
Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 4.392


Clarin miente, TN opera y los giles regurgitan.


Ver Perfil WWW
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #2 en: 26 Noviembre 2011, 23:57 »

En PC las direcciones se anotan en hexadecimal casi siempre, 0x405254 en este caso.
En línea



La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Destro-

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #3 en: 27 Noviembre 2011, 01:52 »

Ahora no escribe en la memoria :\.
Error 998 El acceso a la dirección de memoria no es válido.

Gracias :).
« Última modificación: 27 Noviembre 2011, 02:04 por Destro- » En línea
Unbr0ken

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #4 en: 27 Noviembre 2011, 06:55 »

Copia la dirección que estás intentando escribir, busca algún debugger o programa para mostrar la memoria de un proceso y dirígete a esa parte, entonces mira las banderas de acceso y revisa si tiene datos esa dirección.
En línea

Cita de: Snowcrash
Discutir con desconocidos por internet es un ejercicio de imbéciles; todos acaban siendo quinceañeros arrogantes con cantidades infinitas de tiempo libre.

NO resuelvo dudas vía MP, para algo está el foro.
Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 4.392


Clarin miente, TN opera y los giles regurgitan.


Ver Perfil WWW
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #5 en: 27 Noviembre 2011, 11:40 »

Tenes que llamar a VirtualProtectEx para darte permisos de escritura.
En línea



La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Unbr0ken

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #6 en: 27 Noviembre 2011, 11:41 »

Tenes que llamar a VirtualProtectEx para darte permisos de escritura.

Que directo tío xDDDDDDDDDDDDDDDDD.
En línea

Cita de: Snowcrash
Discutir con desconocidos por internet es un ejercicio de imbéciles; todos acaban siendo quinceañeros arrogantes con cantidades infinitas de tiempo libre.

NO resuelvo dudas vía MP, para algo está el foro.
Destro-

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #7 en: 27 Noviembre 2011, 15:43 »

ok,en un rato pruebo y les cuento,gracias :).
En línea
Destro-

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #8 en: 29 Noviembre 2011, 00:10 »

we,no lo pudo hacer ;(.

esto es lo ultim que probe (probe como 20 cosas mas u.u).

Código:
int main()
{
      char data[] = "asd";
      DWORD pid;
      HANDLE process;
      HWND wnd = FindWindow(0, "ventana");
 
      GetWindowThreadProcessId(wnd, &pid);
      process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);

      if(process==NULL)
            printf("[-] Error abriendo proceso.\n");
      else
            printf("[+] Proceso abierto.\n");

      VirtualProtectEx(process, (LPVOID)0x405254, 18, 1|2, 0);

      if(WriteProcessMemory(process, (LPVOID)0x405254, (LPVOID)&data, strlen(data), NULL) == 0)
            printf("[-] Error escribiendo memoria:%d\n", GetLastError());
      else
            printf("[+] Memoria Escrita.\n");

      CloseHandle(process);

      system("PAUSE");

      return 0;
}
« Última modificación: 29 Noviembre 2011, 00:12 por Destro- » En línea
Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 4.392


Clarin miente, TN opera y los giles regurgitan.


Ver Perfil WWW
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #9 en: 29 Noviembre 2011, 01:10 »

¿Te fijaste que devuelve VirtualProtectEx? En la MSDN dice expresamente:

lpflOldProtect [out]
    A pointer to a variable that receives the previous access protection of the first page in the specified region of pages. If this parameter is NULL or does not point to a valid variable, the function fails.

¿1|2? ¿Que intentabas hacer con esa mascara? ¿PAGE_NOACCESS y PAGE_READONLY? Deberias pasarle PAGE_READWRITE.
En línea



La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Destro-

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #10 en: 29 Noviembre 2011, 02:39 »

Ahora me fijo.Eso de 1|2 fue lo ultimo que probe xd,lo saque de un modulo de amxmodx que escribe/lee datos en la memoria del motor del juego.

@EDIT
Hay anda :),gracias idolo :P.
« Última modificación: 29 Noviembre 2011, 03:06 por Destro- » En línea
Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 4.392


Clarin miente, TN opera y los giles regurgitan.


Ver Perfil WWW
Re: problemas al intentar reemplazar string en la memoria.
« Respuesta #11 en: 29 Noviembre 2011, 08:59 »

De nadas  ::)
En línea



La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problemas al intentar formatear
Windows
CoSiTo 5 761 Último mensaje 18 Noviembre 2004, 02:20
por CoSiTo
Mas problemas al intentar formatear
Windows
CoSiTo 9 1,048 Último mensaje 23 Noviembre 2004, 07:29
por CoSiTo
Problemas al intentar abrir archivos CHM
Windows
charlie1963 0 446 Último mensaje 9 Mayo 2007, 01:57
por charlie1963
Problemas al intentar conectar con mysql_connect()
PHP
gragera 8 2,317 Último mensaje 20 Diciembre 2011, 23:16
por ERIKSON879
Problemas con String
Java
Shell Root 4 1,379 Último mensaje 15 Septiembre 2010, 16:04
por Xedrox
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines