Proxifier 指定應用程式通過代理伺服器
前陣子在玩Burp
的時候發現一個困難
因為並非所有程式都是通過系統設定的Proxy來連線
像是用Indy的HTTP寫的程式,就不會遵守系統設定
雖然可以透過直接指定ProxyServer
來連線
但是如要發行Release版本又得將設定取消再編譯一次
由於Indy不是用WinINet
所以在使用Fiddler
這類基於代理伺服器的Packet analyzer時
會發現並不是所有程式都那麼「聽話」的把資訊出來
After you start Fiddler, the program registers itself as the system proxy for Microsoft Windows Internet Services (WinInet), the HTTP layer used by Internet Explorer, Microsoft Office, and many otherproducts.
Indy還好,如果是自己寫的還可以自己修改設定
但別人的程式呢?就會遇到麻煩了
除了最終手段用Wireshark
來分析之外,Proxifier
會是一個解決方案
Proxifier
讓你可以透過自訂規則,決定哪些程式要使用代理或者直接連線
還可以指定目的地是哪些網址或埠口時才作用
也能為不同的規則設定不同的Proxy Servers
甚至還有Proxy Chain
功能,透過設定多個代理伺服器來實現Tor
的運作
底下就拿之前寫的RCLottery
來做示範
首先先確定Burp的Proxy Listeners
設定正確
接著到Proxifier的Proxy Servers
中Add
剛才的Proxy
再到Proxification Rules
中Add
我們要測試的程式規則
並確定為Enable狀態
接著就是開啟被測試的程式,並且執行網路操作
成功擷取到了!
Proxifier的另一個應用,就是指定程式通過Tor代理
一般會去網路連線設定中修改Proxy,指定Socks代理伺服器
不過基於上面相同的原因,並不是所有程式都會遵照系統設定
此時Proxifier可以讓我們更彈性的指定要使用Tor的程式
在電腦中安裝好Tor Browser並執行後,會監聽9150 port
在Proxy Servers
中加入這個設定
並在Proxification Rules
中指定程式通過使用Proxy SOCKS5 127.0.0.1
來連線
如此一來,Tor網路就不侷限於在Tor Browser使用了!
最後,其實有一套軟體可以解決非WinINet的分析問題HTTP Analyzer v7
有著強大的分析工具但無法修改request和response
它是在TCP層運作、藉由Driver實作R0 Hook(感謝Inndy Lin)
如此一來所有程式的連線只要是標準HTTP都能被記錄下再做分析
Ref:
Burp: http://portswigger.net/index.html
Fiddler: http://www.telerik.com/fiddler
The Fiddler Proxy: http://docs.telerik.com/fiddler/knowledgebase/proxy#the-fiddler-proxy
Wireshark: https://www.wireshark.org/
Proxifier: http://www.proxifier.com/
Tor Project: https://www.torproject.org/
HTTP Analyzer v7: http://www.ieinspector.com/httpanalyzer/index.html