Tengo un pequeño proyecto en el que he estado trabajando en C++, y debido a la naturaleza de lo que hace, necesito insertar paquetes en una transmisión TCP en vivo. (El propósito es lo suficientemente inocente, http://ee.forumify.com/viewtopic.php?id=3299 si DEBE saber) Estoy creando un editor de niveles para un juego, y debido a la naturaleza de los apretones de manos, no puedo simplemente establecer una nueva conexión con una biblioteca de alto nivel como WinSock. Hasta ahora, confió en Winsock Packet Editor para hacer el trabajo sucio, pero si dejara que la aplicación lo manejara todo, haría felices a todos.Secuestro de conexión TCP
Así que mi pregunta es esta: ¿Hay alguna API en alguna parte que me permita tomar el control de una transmisión TCP en vivo, y preferiblemente una que la mantenga válida después de que termine? Y preferiría no tener que inyectar ninguna DLL. Además, Detours es un no-no ya que estoy usando GCC/Mingw.
He jugado con WinPCap y tengo un código de trabajo (puedo recoger un paquete, y de eso generar un paquete apropiado para enviar) pero como funciona a un nivel tan bajo, no puedo anticipar todo el protocolos potenciales que el usuario final podría usar. Sí, es probable que utilicen IPv4 a través de Ethernet, pero ¿qué ocurre con las personas que todavía usan PPP o algún otro protocolo oscuro? Además, la aplicación del cliente deja de conectarse después de que la mía finaliza, ya que los últimos valores de ID en los paquetes han cambiado y el cliente asume que se ha desconectado.
Por lo tanto, si alguien pudiera proporcionar un manipulador de flujo TCP de alto nivel, estaría muy feliz. Si no, continuaré jugando con WinPCap y les diré a todos los usuarios de acceso telefónico que obtengan una mejor conexión a Internet.
Plataforma de destino: Microsoft Windows XP a través de Windows 7
Debería leer [Hackish C++: Bromas y trucos] (http://www.amazon.com/Hackish-Pranks-Tricks-Michael-Flenov/dp/1931769389) de Michael Flenov. Suena como un libro de bromas pero orientado a la computadora, pero tiene muchos buenos ejemplos de redes que se aplicarían a este proyecto. –
¿Hay algún lugar donde pueda leer en línea de forma gratuita? Mi sistema de biblioteca local no tiene una copia de eso, lamentablemente. – Kaslai
no lo sé ... tal vez podrías encontrar algo con google. He escrito algo de ese código en alguna parte, si encuentro el archivo relevante publicaré algún código –