Consulta

Iniciado por aprendiend0, 4 Junio 2021, 08:02 AM

0 Miembros y 1 Visitante están viendo este tema.

aprendiend0

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

Eternal Idol

¿Y cual es el error?

Cita de: MSDNIf 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.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

aprendiend0

Estoy utilizando un source de internet por eso queria saber como usarlo correctamente.
Gracias.

Eternal Idol

¿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
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

aprendiend0

#4
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.

Eternal Idol

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 (c++) [Seleccionar]
unsigned char data[] = { 0x0D, 0x05 };
iResult = send( ConnectSocket, (const char*)data, sizeof(data), 0 );
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

BloodSharp

#6
Cita de: aprendiend0 en  4 Junio 2021, 23:10 PMTe 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#



aprendiend0

Perfecto,ahora si funciona muchas gracias!

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón