Каким образом можно «внедриться» в существующее TCP/IP соединение существующего процесса и посылать свои пакеты?
Вопрос сложный, если бы мог разобраться сам, не спрашивал бы.
Задача следующая. У стороннего процесса открыто подключение по протоколу TCP/IP. Он посылает определенные пакеты, он получает определенные пакеты - это неважно. Необходимо сделать так, чтобы моя программа посылала свои дополнительные пакеты этому же сокету, не создавая второе подключение, т. е. как бы внедрялась в существующее соединение и посылала свои пакеты вдогонку к существующим.
В гугле я вычитал, что это возможно, но достаточно трудоемко, т. к. нужно делать хуки на ws2_32.dll и получать handle сокета, но как именно это сделать, не сказано. Сам в C++ и WinAPI не силен, поэтому если можно, ответ в стиле для "чайника" приветствуется.
Возможно, как-то еще можно через DLL-инъекцию, но не уверен.
А возможно встать посередине? Чтобы процесс изначально подключался через "вас", и сначала вы будете просто пробрасывать запросы, а потом уже добавлятб свои
TCP пакет содержит идентификатор, который последовательно увеличивается обеими участниками. Если ты пошлешь пакет с неверным идентификатором, получатель отбросит его. Если ты угадаешь идентификатор, то следующие пакеты от "легального" отправителя будут отброшены, ибо идентификаторы в них будут не те, которые ожидаются. Модифицировать пакеты на лету, сохраняя эту последовательность, а так же не забывая о контрольной сумме тебе не позволит вычислительная мощность твоего компа и уровень твоей теоретической подготовки. Dll-инжект и C++ - забудь об этом, твои вопросы не оставляют тебе шанса. Пакеты вдогонку ему посылать бгггг.