2013-07-18 20 views
1

問題如下: 我需要proxyify(sniff和修改數據包)不支持Windows上的代理服務器的應用程序。它連接的IP地址在應用程序本身中是硬編碼的。我只需要修改數據,我不關心IP頭。Proxifying應用程序不執行該功能

這將是一個相當簡單的任務,如果不是因爲我完全無法修改原始應用程序或向其中注入任何代碼。

我需要原始應用程序來連接我的程序,並將我的程序連接到orignal服務器,所以我認爲簡單地將服務器的IP重新路由到localhost(因爲desjebed here)將不起作用,因爲那樣我的應用程序無法連接到orignal服務器。

像winpcap這樣的東西也是禁止的,因爲從我收集的那裏沒有選擇修改數據包,因爲他們經過。

如果可能的話,我想放棄使用NDIS驅動程序,因爲我需要這個安裝程序在多個版本的Windows上工作,而且我沒有辦法爲所有驅動程序編寫驅動程序。

我主要是在delphi編碼,但我不害怕C++,只是爲了澄清爲什麼沒有在標籤中指定的語言。

任何建議,歡迎,我希望你有一個愉快的一天:)

大衛

回答

2

你可以用我WinDivert項目做到這一點。與WinPCAP不同,WinDivert 可以通過修改數據包,這正是你想要的。主要缺點是沒有WinXP支持。

有關使用WinDivert將流量重定向到代理服務器的示例,請參見here。這會透明地將Web流量重定向到代理服務器,在這種情況下爲Privoxy + Tor。這樣做不需要修改Web瀏覽器的代碼或配置。也就是說,網頁瀏覽器會看到一個普通的互聯網連接(儘管由於Tor而稍慢)。

+0

這看起來不錯,我會玩。然而,如果有一種方法可以在winxp上實現,那麼我會把問題留給開放:) –

+0

對於WinXP,你可以試試WinPkFilter。 – Basil