Strings en C++

Iniciado por Fixxed, 10 Agosto 2015, 01:56 AM

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

Fixxed

Bueno, estaba tratando de hacer una .dll para modificar la memoria de un programa. Hasta que me tope con la siguiente duda.

Como hago para modificar una dirección de memoria que aloja un string? Para modificar enteros usaba esto:

*(DWORD*)(0x4D2E17) = 2;

Pero no encuentro que poner para un string. Probé de mil formas y me arroja error al compilar.

Como sería?

ivancea96

Un entero tiene un tamaño fijo (4 bytes, por ejemplo). Pero una string, una de dos: o acaba con el caracter nulo '\0', o guarda su tamaño en otro lugar. Eso para saber el tamaño.

Si ya sabes el tamaño, pues:

Código (cpp) [Seleccionar]
char *cadena = (char*)(0x4D2E17);
cadena[0] = 'a';

Bueno, y a partir de la segunda línea ya haces lo que quieras.