Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: aprendiend0 en 4 Junio 2021, 08:02 am



Título: Consulta
Publicado por: aprendiend0 en 4 Junio 2021, 08:02 am
Hola estoy aprendiendo packetes en c++ y necesito enviar un packete cifrado en hexadecimal con esta funcion int WINAPI nuestro_send(SOCKET s, const char *buf, int len, int flags). Si bien llamo a llamo a la funcion nuestro_send(s,(aca donde deberia ir mi packete en hexadecimal),len,0) me genera error...
¿Alguien me podria ayudar?
Muchas gracias


Título: Re: Consulta
Publicado por: Eternal Idol en 4 Junio 2021, 08:05 am
¿Y cual es el error?

Cita de: MSDN
If no error occurs, send returns the total number of bytes sent, which can be less than the number requested to be sent in the len parameter. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError.

PD. No se donde sale el prefijo "nuestro" en la API de Windows.


Título: Re: Consulta
Publicado por: aprendiend0 en 4 Junio 2021, 08:12 am
Estoy utilizando un source de internet por eso queria saber como usarlo correctamente.
Gracias.


Título: Re: Consulta
Publicado por: Eternal Idol en 4 Junio 2021, 08:33 am
¿Si? ¿Y donde esta para verlo? Seguis sin especificar cual es el error, no somos adivinos. ¿Usaste connect con exito? ¿Inicializaste Winsock? ¿Que es eso de "nuestro"? Obviamente no es parte de la API de Windows.

Aca en la MSDN tenes ejemplos funcionales:
https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-send


Título: Re: Consulta
Publicado por: aprendiend0 en 4 Junio 2021, 23:10 pm
Te comparto
y esto es lo que yo tengo:
int nuestro_send(SOCKET s, const char *buf, int len, int flags)
Gracias por tu ayuda.


Título: Re: Consulta
Publicado por: Eternal Idol en 5 Junio 2021, 00:28 am
Si estas aprendiendo ese codigo esta lejisimo de ser una base por donde comenzar (usa inline assembly, usa detouring, usa templates), usa el ejemplo de la MSDN.

Siguiendolo:
Código
  1. unsigned char data[] = { 0x0D, 0x05 };
  2. iResult = send( ConnectSocket, (const char*)data, sizeof(data), 0 );


Título: Re: Consulta
Publicado por: BloodSharp en 5 Junio 2021, 00:58 am
Te comparto el source (...)
https://github.com/gpascualg/xHacking/blob/master/examples/DLL_detours.cpp
(...)
Lo que yo necesito es por ejemplo en mi caso es enviar por medio de esto un packete cifrado en hexadecimal (0D 05),intente enviarlo por ascii pero me tira error.
Gracias por tu ayuda.

Me intriga saber a que proceso inyectado está la dll, sobretodo si depuraste bien la dll en el proceso en tiempo de ejecución para ver si está bien hecho la función hookeada y el puntero a la función original...

EDIT: Viendo el código un poco más detalladamente me dí cuenta de algunos potenciales errores, quizás hechos a propósito para evitar el copiado y pegado pero la verdad ni idea porque están esos errores... :silbar:


B#


Título: Re: Consulta
Publicado por: aprendiend0 en 5 Junio 2021, 05:46 am
Perfecto,ahora si funciona muchas gracias!


Título: Re: Consulta
Publicado por: Eternal Idol en 5 Junio 2021, 07:26 am
De nada.