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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


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


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Pasar de const u_char* a char* en c++
« Respuesta #10 en: 6 Julio 2015, 10:52 am »

Simplemente la duda era esa que no sabía como pasar ese const u_char* a char*, pero no me di cuenta que con un simple if se hacía fácilmente:

Código:
c = data[i]; // u_char
a = (c >= 32 && c <= 128) ? (unsigned char)c : '.';

Y para poder hacer esto había que hacer antes una conversión de const u_char* a u_char* con (u_char*) o un const_cast. Aquí la llamada a la función:

Código:
PrintData((u_char*)pkt_data, header->len);

Ahora estoy trasteando con el HTTPS, el contenido del paquete HTTPS al igual que el de HTTP comienza desde el byte 52, la diferencia que en HTTP estaba en texto plano y se podía ver todo con mostrar los caracteres alfanuméricos como hacía con el if, sin embargo en el HTTPS aparecen caracteres fuera de ese rango porque está cifrado, ahora tendré que intentar romperlo, haciendo de proxy, implementar un sslstrip vaya.

Edito: Y ya si es con DNS2PROXY ni te cuento, una máquina de hacking en la red.

Saludos.

Edito:

Código:
void lista_usuarios::insertar_host(u_char* ip, u_char* mac)
{
int salida;
printf("CONTENIDO LISTA************\n");
for (int i = 0; i < usuarios.size(); i++)
{
for (int j = 0; j < 4; j++)
{
printf("%x", usuarios[i].ip[j]);
}
printf("     ");
for (int j = 0; j < 6; j++)
{
printf("%x", usuarios[i].mac[j]);
}
printf("\n");
}
printf("CONTENIDO IPS Y MAC***********\n");
for (int j = 0; j < 4; j++)
{
printf("%x", ip[j]);
}
printf("     ");
for (int j = 0; j < 6; j++)
{
printf("%x", mac[j]);
}
printf("\n");
for (int i = 0; i < usuarios.size(); i++)
{
salida = 0;
for (int j = 0; j < 4; j++)
{
if (ip[j] != usuarios[i].ip[j])
{
salida++;
break;
}
}

for (int j = 0; j < 6; j++)
{
if (mac[j] != usuarios[i].mac[j])
{
salida++;
break;
}
}

//printf("cont %d cant %d\n", cont, cant);

if (salida >= 2)
{
printf(" ENTRA \n");
host usuario;
for (int j = 0; j < 4; j++)
{
usuario.ip[j] = ip[j];
}
for (int j = 0; j < 6; j++)
{
usuario.mac[j] = mac[j];
}
usuarios.push_back(usuario);
break;
}
}

if (usuarios.size() == 0)
{
host usuario;
for (int j = 0; j < 4; j++)
{
usuario.ip[j] = ip[j];
}
for (int j = 0; j < 6; j++)
{
usuario.mac[j] = mac[j];
}
usuarios.push_back(usuario);
}

¿Alguien sabe que falla en este código que hace que se almacenen mismos ip/mac en la lista de hosts (usuarios)?

Salida:

Código:
CONTENIDO IPS Y MAC***********
ac1a063     0f664d3eec
CONTENIDO LISTA************
ac1a063     0f664d3eec
CONTENIDO IPS Y MAC***********
ac1a066     1867b08d6fb6
 ENTRA
CONTENIDO LISTA************
ac1a063     0f664d3eec
ac1a066     1867b08d6fb6
CONTENIDO IPS Y MAC***********
ac1a072     8086f299043
 ENTRA
CONTENIDO LISTA************
ac1a063     0f664d3eec
ac1a066     1867b08d6fb6
ac1a072     8086f299043
CONTENIDO IPS Y MAC***********
ac1a0ab     026733da20
 ENTRA
CONTENIDO LISTA************
ac1a063     0f664d3eec
ac1a066     1867b08d6fb6
ac1a072     8086f299043
ac1a0ab     026733da20
CONTENIDO IPS Y MAC***********
ac1a063     0f664d3eec
 ENTRA
CONTENIDO LISTA************
ac1a063     0f664d3eec
ac1a066     1867b08d6fb6
ac1a072     8086f299043
ac1a0ab     026733da20
ac1a063     0f664d3eec
CONTENIDO IPS Y MAC***********
ac1a066     1867b08d6fb6
 ENTRA

Como se puede observar a pesar de que las cadenas de ip/mac son iguales entra en la lista.

Saludos.


« Última modificación: 7 Julio 2015, 01:32 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] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[?] cambiar una comparacion de const char * a metodo string.compare
Programación C/C++
Drakomorh 2 2,599 Último mensaje 25 Mayo 2011, 18:58 pm
por Littlehorse
Pasar de const char* a int
Programación C/C++
eleon 4 3,901 Último mensaje 15 Junio 2012, 16:09 pm
por durasno
Pasar tipo const char* a char « 1 2 »
Programación C/C++
jorge_hura 15 8,486 Último mensaje 25 Julio 2013, 09:50 am
por Eternal Idol
Error const char no es compatible con LPCWSTR. « 1 2 »
Programación C/C++
NikNitro! 12 10,224 Último mensaje 30 Abril 2014, 22:43 pm
por Eternal Idol
(Ayuda) Error al modificar el valor de un char en una cadena const char *
Programación C/C++
Seyro97 4 5,286 Último mensaje 2 Julio 2015, 15:17 pm
por Seyro97
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines