Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Riki_89D en 24 Mayo 2010, 21:31 PM

Título: ASCII c++
Publicado por: Riki_89D en 24 Mayo 2010, 21:31 PM
Hola que tal andan?

veran tengo este code:
Código (cpp) [Seleccionar]

#include <C:\Dev-Cpp\All.h>
using namespace std;

int main(void)
{

int String = 82;
HANDLE Fil = CreateFile("f.dll",GENERIC_READ+GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
int SizeMax = GetFileSize(Fil,0);
SizeMax <<1;
HANDLE Map = CreateFileMapping(Fil,0,PAGE_READWRITE,0,SizeMax,0);
void *ptr = MapViewOfFile(Map,FILE_MAP_ALL_ACCESS,0,0,0);
char *ptr2 = (char*)ptr+0x54234;
memcpy(ptr2,&String,sizeof(String));




return 0;
}



ese code escribe en la direccion de memoria especificada un caracter,escribe la letra R que es 82 en ascii,pero necesito escribir mas de un caracter i nose como hacerlo ,los espacio etc etc como escribo mas de un caracter en ASCII,la variable String es  = 82,no puedo poner String =82105 etc...es decir no puedo poner todos los caracteres juntos en ASCII,tengo k hacerlo asi por k es unicode por desgracia mia


un saludo
Título: Re: ASCII c++
Publicado por: [Zero] en 24 Mayo 2010, 21:40 PM
Ahí no estás escribiendo un 82, estás escribiendo un 00000082, que no es lo mismo. Utiliza 'char caracter=82'.

Para copiar más de una letra no tienes más que usar un bucle:

Código (cpp) [Seleccionar]
char *String="asdf";
(...)

char *ptr2=(char*)ptr+0x54234;
for(int i=0;i<lstrlenA(String);i++)
{
     ptr2[i]=String[i];
}


Saludos
Título: Re: ASCII c++
Publicado por: Riki_89D en 24 Mayo 2010, 21:55 PM
Heii k tal?

lo k pasa es que no quiero escribir un 82 sino el caracter R,es que lo k quiero modificar esta en UNICODE i klaro no puedo escribir Directamente una cadena normal...menudo un problemo k me ronda...i claro es facil decir Busca en Google si yo lo entiendo...pero yo YA BUSCQUE!! xD i no encontre nada! por eso estoy aki ando ya desesperado

gracias por tu respuesta
Título: Re: ASCII c++
Publicado por: [Zero] en 24 Mayo 2010, 22:16 PM
Para unicode es casi lo mismo, en unicode las letas se alternan con ceros, y el caracter nulo es un doble cero: {'a',0,'s',0,'d',0,'f',0,0}

Puedes usar el mismo code de antes utilizando lstrlenW en vez de lstrelenA y (wchar*) en vez de (char*).

Saludos
Título: Re: ASCII c++
Publicado por: Riki_89D en 24 Mayo 2010, 22:28 PM
Ok thanks peor una ultima kosa,no me reconoce WCHAR el Dev-C++:S esta en alguna libreia esecial o algo?
Título: Re: ASCII c++
Publicado por: [Zero] en 25 Mayo 2010, 14:43 PM
http://msdn.microsoft.com/en-us/library/ms684497(EXCHG.10).aspx

Saludos
Título: Re: ASCII c++
Publicado por: atamd en 29 Mayo 2010, 04:58 AM
Cita de: Hacker_Zero en 24 Mayo 2010, 22:16 PM
Para unicode es casi lo mismo, en unicode las letas se alternan con ceros, y el caracter nulo es un doble cero: {'a',0,'s',0,'d',0,'f',0,0}

Puedes usar el mismo code de antes utilizando lstrlenW en vez de lstrelenA y (wchar*) en vez de (char*).

Saludos