Данная программа — некое подобие прокси. Она делится на 2 части: клиент и сервер,
к клиенту прилагается небольшой конфигуратор (конфигурация на этапе
компиляции, т.к. часть настроек нужна для компиляции, часть — для
работы программы [файл client.conf]).

Он (клиент) открывает заданный порт и ждёт подключения других клиентов 🙂 [пока поддерживается
http/1.0 🙁 ]. Далее клиент обрабатывает запрос и шлёт его серверу.
Тот, установив соединение, высылает подтверждение клиенту и начинается
пересылка данных. Данные шлются небольшими пакетами по 1056 байт (в
*nix — 1052. странно даже…) Есть идея обрабатывать запрос на
подключения сразу сервером, чтобы исключить необходимость «вшивания»
поддержки новых протоколов в клиента. 

На кой чёрт я разделил прокси на клиент\сервер, спросите вы? Отвечу -)

1) используются свой протокол (не plain-text), который легко дорабатывается и имеет возможность включения всяких там шифрований и проч.

2) для связи клиент-сервер не используется TCP вообще 🙂 все пакеты отсылаются по протоколу ICMP с кодом 0 (echo_reply) 😉 

Зачем всё это нужно? А вдруг найдётся такой провайдер, который
предоставляет guest-доступ на свой сервер и который не запретил
возможность пинга любого ip? 🙂 Если таковой не найдётся — можно
вполне использовать данную идею для попытки скрытия факта установки
соединения с удалённым компьютером 🙂 

Есть идея «обернуть» это всё не в icmp, а в DNS. 

souces.zip:

client-beta4 — исходники клиента и конфигуратора 
icmpd-0.2 — исходники сервера 
exe — бинарники 

Да, чуть не забыл — программа консольная, т.к. по-моему в гуи
просто нету смысла.

Оставить мнение

Check Also

Господин Самоуничтожение. Как в домашних условиях смастерить Rubber Ducky со встроенной пиротехникой

Представь: ты втыкаешь в USB какую-то флешку, и вдруг в браузере открывается окно, где гру…