elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda paso de byte* a char*
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: ayuda paso de byte* a char*  (Leído 5,311 veces)
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: ayuda paso de byte* a char*
« Respuesta #10 en: 26 Junio 2015, 23:17 pm »

Dudo que la basura contenga los bytes de la MAC, puesto que "WinSock 2.0" no creo que tenga mucho que ver en ello.

printf() lee hasta un un byte nulo.bMacAddr no tiene byte nulo, así que sigue leyendo en memoria hasta un byte nulo.


En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: ayuda paso de byte* a char*
« Respuesta #11 en: 26 Junio 2015, 23:19 pm »

Pero imprimir ints por pantalla no me hará conseguir la cadena char*.


En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: ayuda paso de byte* a char*
« Respuesta #12 en: 26 Junio 2015, 23:20 pm »

En ese caso, utiliza sprintf().
En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: ayuda paso de byte* a char*
« Respuesta #13 en: 27 Junio 2015, 02:35 am »

Imposible:

Código
  1. BYTE *bMacAddr = (BYTE*)&MacAddr;
  2. for (int i = 0; i < (int)PhyAddrLen; i++)
  3. printf("%x", bMacAddr[i]);
  4. //*(mac) = (char*)bMacAddr;
  5. //printf("\n%s\n", (int)*(mac));
  6.  
  7. //const int n = sprintf(NULL, 0, "%lu", MacAddr);
  8. char buf[30];
  9. sprintf(buf, "\n%s", MacAddr);
  10. printf("\n%s\n", buf);

Ya lo probé antes y tampoco funciona, no hay manera he buscado ningún código funciona, al final lo acabaré pasando a u_char* y que lo **.

Edito: Produce error en el sprintf, "stack around the variable buff was corrupted".

Saludos.
« Última modificación: 27 Junio 2015, 02:38 am por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: ayuda paso de byte* a char*
« Respuesta #14 en: 27 Junio 2015, 02:38 am »

MacAddr no. Tendrás que interpretar como enteros cada uno de los bytes de MacAddr.
En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: ayuda paso de byte* a char*
« Respuesta #15 en: 27 Junio 2015, 02:42 am »

Código
  1. BYTE *bMacAddr = (BYTE*)&MacAddr;
  2. //for (int i = 0; i < (int)PhyAddrLen; i++)
  3. // printf("%x", bMacAddr[i]);
  4. //*(mac) = (char*)bMacAddr;
  5. //printf("\n%s\n", (int)*(mac));
  6. char buf[30];
  7. char ok[40]="";
  8.  
  9.  
  10. for (int i = 0; i < (int)PhyAddrLen; i++)
  11. printf("%c", (char)(int)bMacAddr[i]);
  12.  
  13. printf("\n");
  14. for (int i = 0; i < (int)PhyAddrLen; i++)
  15. {
  16. sprintf(buf, "%c", (int)bMacAddr[i]);
  17. printf("%c", buf);
  18. strcat(ok, buf);
  19. }
  20.  
  21. //sprintf(buf, "%s", MacAddr);
  22. printf("\n%s\n", ok);

No hay manera. 3 intentos 3 veces muestra basura.

Edito: Acabo de probar con _itoa y tampoco funciona, no hay manera.

Saludos.
« Última modificación: 27 Junio 2015, 02:52 am por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: ayuda paso de byte* a char*
« Respuesta #16 en: 27 Junio 2015, 02:57 am »

Código:
printf("%c", (char)(int)bMacAddr[i]);
para qué ese (char)? Estás haciendo 2 conversiones, una de ellas no sirve de nada.

Prueba con
Código
  1. printf("%i", (int)bMacAddr[i]);
En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: ayuda paso de byte* a char*
« Respuesta #17 en: 27 Junio 2015, 02:59 am »

Nada:

Código
  1. BYTE *bMacAddr = (BYTE*)&MacAddr;
  2. for (int i = 0; i < (int)PhyAddrLen; i++)
  3. {
  4. printf("%i", (int)bMacAddr[i]);
  5. }

Salida:

Código:
6071175415229

Lejos de la cadena, mostrando enteros no obtendré un char*. Y para meterlo en sprintf..

Código
  1. for (int i = 0; i < (int)PhyAddrLen; i++)
  2. {
  3. printf("%i", (int)bMacAddr[i]);
  4. sprintf(buf, "%c", (int)bMacAddr[i]);
  5. printf("%c", buf[0]);
  6. }

Probaré otros métodos.

Gracias de todas formas.
« Última modificación: 27 Junio 2015, 03:05 am por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: ayuda paso de byte* a char*
« Respuesta #18 en: 27 Junio 2015, 03:03 am »

Esos son 6 números sin espacios. ¿No es la MAC que buscas?

Citar
60:71:175:41:52:29
Claramente, en decimal.
« Última modificación: 27 Junio 2015, 03:05 am por ivancea96 » En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: ayuda paso de byte* a char*
« Respuesta #19 en: 27 Junio 2015, 03:07 am »

Con espacios:

Código:
60 71 17 54 152 29

La Mac empezaba por 3C. Así hemos pasado los 6 bloques hexadecimales de la Mac a enteros. Si ahora lo que buscabas era pasarlos a chars no creo que funcione.

Esto sí muestra la Mac, pero no obtengo la cadena, no se como llegar a ella:

Código:
BYTE *bMacAddr = (BYTE*)&MacAddr;
for (int i = 0; i < (int)PhyAddrLen; i++)
printf("%x", bMacAddr[i]);

Saludos.
« Última modificación: 27 Junio 2015, 03:13 am por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Motore paso a paso, ayuda...
Electrónica
Thaorius 3 3,978 Último mensaje 10 Febrero 2006, 17:26 pm
por saa423
[Sources Code] RotBits [Byte TO Byte ]
Programación Visual Basic
x64core 8 4,424 Último mensaje 22 Octubre 2011, 00:46 am
por BlackZeroX
Ayuda en C. Unir char a char[] SOLUCIONADO
Programación C/C++
NeoB 5 4,420 Último mensaje 10 Abril 2012, 23:07 pm
por NeoB
Variable Char a BYTE « 1 2 »
Programación C/C++
bwsr 12 4,952 Último mensaje 23 Febrero 2013, 20:04 pm
por bwsr
Filestream . Byte a Byte
.NET (C#, VB.NET, ASP)
blaron 3 2,152 Último mensaje 5 Abril 2014, 02:01 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines