Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Belial & Grimoire en 28 Enero 2014, 20:25 pm



Título: como pasar la funcion BitConverter de VB.NEt a C?
Publicado por: Belial & Grimoire en 28 Enero 2014, 20:25 pm
hola

tengo un array byte donde guardo informacion guardada por ReadFile, por ejemplo

BYTE buffer[1024]

ReadFile(HFile, buffer, sizeof(buffer), 0);

en VB.net hay una funcion que te convierte bytes en enteros se llama Bitconverter.ToInt16, lo que supuestamente hace es buscar un offset y lo que haya en ese offset lo convierte en decimal

por ejemplo

offset = &HD

BitConverter.ToInt16(buffer, offset)

alli, hasta donde yo se, es que busca en el array BYTE buffer el offset o hexadecimal que en este caso seria 0x0D, y el contenido alli lo cambia a decimal

por ejemplo

primero busca en el array 0x0D, cuando lo encuentra hay un valor que es 0x08 y lo convierte a decimal que igual seria 8, pero puede cambiar el valor, podria ser 0xAF, 0x13, etc...

Entonces quisiera saber como podria leer el array BYTE para encontrar el offset y hacer la conversion de hexadecimal a decimal de lo que haya en cierto offset pero en codigo C

porque Bitconverter convierte dependiendo la base, por ejemplo Int16 convierte los dos primeros bytes, int32 convierte los 4 primeros bytes y int64 convierte los 8 primeros bytes

entonces si por ejemplo en el offset 0x0B hay un valor 0x0102, como encontraria el offset 0x0B para cambiar el valor 0x0102 de hexadecimal a decimal?

me podrian poner algun ejemplo porfavor


Título: Re: como pasar la funcion BitConverter de VB.NEt a C?
Publicado por: x64core en 30 Enero 2014, 20:47 pm
Pues talvez en NET los array son almacenados en forma diferente ya que si dices que tienes un array de bytes entonces la representación
de la base numerica es aparte a menos a que te refieras que tienes un array de characteres y no de bytes.