API для проксификации конкретного приложения - PullRequest
2 голосов
/ 30 ноября 2009

Мне нужно написать приложение, которое будет проксировать какое-то другое приложение (перенаправить весь сетевой трафик на другой прокси-сервер). Так же, как FreeCap, ProxyCap и т. Д. Может кто-нибудь здесь указывает мне на API, который я должен использовать? Желательно API, который будет работать под 2k, XP, Vista и W7.

Ответы [ 2 ]

1 голос
/ 18 декабря 2009

Есть несколько API, которые вы можете использовать для этой задачи.

Одним из них является LSP (многоуровневые поставщики услуг), который представляет собой Winsock2 API для написания библиотек DLL поставщиков услуг, которые могут перехватывать все вызовы Winsock, например connect () или WSAConnect (). Подробнее об этом здесь: www.komodia.com

Еще один «обходной путь» - библиотека Microsoft для перехвата любого вызова API. Подробнее об этом здесь: research.microsoft.com/en-us/projects/detours/

Еще одним является так называемое исправление IAT (Import Address Table). У меня нет ссылки для этого.

Другой подход - написать DLL, назвать ее «wsock32.dll», реализовать все вызовы Winsock2, используемые вашим целевым приложением, и просто поместить ее в папку с целевым приложением. Когда приложение запустится, оно будет использовать локальный «wsock32.dll» вместо системного.

Как правило, вы хотите использовать некоторые из этих API для перехвата вызовов Winsock connect () или WSAConnect (), установить соединение через прокси-сервер в вашем коде и вернуть подключенное соединение в вызывающую сторону.

Возможно, вы также хотите прочитать о внедрении DLL.

0 голосов
/ 30 ноября 2009

Разве вы не можете использовать некоторые правила маршрутизации для этого? Если нет, напишите какое-нибудь простое серверное приложение в технологии, которой вы пользуетесь. Я уверен, что вы найдете много примеров в сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...