PDA

Просмотр полной версии : Перехват сквозных соединений


clyr
22.11.2008, 01:36
Вопрос к специалистам.

Имеется компьютер А, который работает с сервером. Весь траффик проходит через компьютер Б.

На компьютере Б (не на том, на котором линейка, а на следующем в цепочке) хочется сделать программу, которая отловит соединения на сервер, расшифрует, модифицирует и т.п.

ВОПРОС. Как это можно сделать с точки зрения программирования? Как можно перехватывать не генерируемый приложением, а ПРОХОДЯЩИЙ траффик.

P.S. Также буду благодарен ссылкам на соотв. литературу.

fаust
22.11.2008, 05:15
Вопрос к специалистам.

Имеется компьютер А, который работает с сервером. Весь траффик проходит через компьютер Б.

На компьютере Б (не на том, на котором линейка, а на следующем в цепочке) хочется сделать программу, которая отловит соединения на сервер, расшифрует, модифицирует и т.п.

ВОПРОС. Как это можно сделать с точки зрения программирования? Как можно перехватывать не генерируемый приложением, а ПРОХОДЯЩИЙ траффик.

P.S. Также буду благодарен ссылкам на соотв. литературу.

WP саурона ставь на второй комп и на первом клиент.
Трафик клиента отправляй через второй комп с WP как через внешний прокси указав адрес и порт второго компа с wpf
Для первого компа будет как будто трафик идет через обычный внешний прокси.

clyr
22.11.2008, 15:28
faust, не годится.

По условиям задачи, я НЕ МОГУ менять клиент. Вообще. Ни патчить проксифаером, ни указывать прокси, ничего. Клиент должен думать, что он честно работает со своим "родным" сервером.

dmitry501
22.11.2008, 17:54
Такое можно сделать на linux с помощью ip-tables
Где-то я читал подобное, что трафик на машинке с линуксом филтруется и сокцифицируется, затем заворачивается на 3 машину уже под виндовс на которой стоит WP. Клиент абсолютно ниочем не догадывается, его трафик передается на шлюз по-умолчани, тот самый линукс сервер.
Причем вроде линукс этот был поднят на виртуальной машине а физически все работало на одной машине.

clyr
22.11.2008, 19:47
Проблема частично решена, но появилась другая.

1. Я поднял виртуальную машину, которая для моего компьютера является основным шлюзом.
2. На этой машине стоит сервер, который слушает 2106 и 7778 порты (логин и гейм) и "переправляет" траффик на настоящий сервер. (писан мною, на QT)
3. Клиент, стало быть, работает "сквозь" этот набор программ.

Теперь я запускаю l2phx на виртуальной машине и патчу этот мой "сервер". Он ведь, как легко догадаться, сам коннектится к истинному серверу.

l2phx пишет, что он "надежно пропатчил" сервер и... ничего не происходит. Сообщения о том, что перехвачено соединеие, не приходит.

Я себе не враг, я не защищал свой "тонкий сервер" от перехвата.

В чем дело?

xkor
22.11.2008, 21:25
clyr, а посмотреть как работает inject.dll пакетхака и сделать чтобы твой1 сервак сам на пакетхак перенаправлял трафик слабо?)

clyr
22.11.2008, 22:12
xkor, я уже попробовал это сделать. Ведь l2phx -- это SOCKS5 прокси, я правильно понимаю?

Так вот, не работает: http://coderx.ru/showthread.php?t=993

xkor
23.11.2008, 00:17
clyr, ничего общего с socks5 не имеет...

Добавлено через 4 минуты
l2phx это скорее PortMapper тоесть он просто пропускает через себя трафик на сервер по большей части ну и по желанию пользователя его может менять и отображать, а socks5 сначало требует авторизации после чего необходимо подключаться к новому адресу который уже и перенаправляет трафик куда надо...

clyr
23.11.2008, 00:30
xkor, Спасибо.

Тогда проще перенаправить траффик логин-сервера на l2phx напрямую, а также пропатчить l2phx для того, чтобы можно было явно указать "истинный" IP сервера.

Кстати, можно ли получить commit-access?

xkor
23.11.2008, 01:14
Кстати, можно ли получить commit-access?если ты о возможности вносить изменения в репозитории пакетхака то можно, жди ПМ...