Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2011, 22:15   #1
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию перехват TCP порта

Имеем:
Сервер-программа, слушающая 13001 порт
Клиент-программа, вещающая инфу в 13001 порт

Нужно:
Необходимо сделать 2 программы. Одна будет стоять на машине с сервером, перехватывать всё с 13001 порта и пересылать на 13002 порт. Другая будет стоять на клиенте и все запросы которые будут уходить на 13001, брать и переправлять на 13002.
По сути это 2 маханьких фаервола. Ничего заумного, просто взять и переложить пакеты с одного порта на другой.

Вопрос:
Кто-нибудь такое уже реализовывал? Есть примеры? Или идеи, как такое сделать?
_KUL вне форума Ответить с цитированием
Старый 17.04.2011, 02:52   #2
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Или идеи, как такое сделать?
Тут требуются знания ассемблера.
Пример для клиент программы:
Создаем программу которая будет патчить память client.exe, что именно патчить: функцию wsasendto (это winapi функция (если же данные передаются через wsasend -> то патчить надо будет функцию connect)) которая передает эти данные.(что представляет из себя патч: изменение порта сервера из аргументов функции wsasendto (причем изменение аргумента в самом начале функции wsasendto))
Что-то подобное реализовано тут:
wasm.ru/article.php?article=apihook_1 (раздел "Внедрение кода и создание удаленных потоков")
zotox вне форума Ответить с цитированием
Старый 17.04.2011, 02:55   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

перехват функции не есть единственный выход.
можно написать драйвер режима ядра, а там приатачится к нужному стеку дров.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.04.2011, 06:03   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Или идеи, как такое сделать?

raw сокеты, если прав хватит
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 17.04.2011, 10:38   #5
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию

Хм ... думал может проще получилось бы сделать. Жалко что нет "чудо компонента", который бы это всё упростил
_KUL вне форума Ответить с цитированием
Старый 17.04.2011, 11:10   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

TidMappedPortTCP, но только если все в своем приложении/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 17.04.2011, 11:34   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Жалко что нет "чудо компонента", который бы это всё упростил
советую отвыкать сразу от слепой веры в компоненты.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как создать TCP клиент, TCP сервер ? DreamMaster911 C/C++ Сетевое программирование 1 26.10.2010 15:05
выбор TCP/IP порта Артэс C/C++ Сетевое программирование 2 07.10.2010 10:18
перехват TCP и UDP пакетов prog.delphin Работа с сетью в Delphi 4 31.03.2010 13:21
"2540:TCP"= 2540:TCP:oeiuq AlexSh Безопасность, Шифрование 0 06.07.2009 10:28
Как получить данные с COM-порта или другого любого порта? DeLure Общие вопросы C/C++ 5 20.09.2007 00:50