使用 Proxyed Connections 追蹤
Windows 8和更新版本的 Windows 支援 Proxy 連線追蹤。
此「計畫」功能可協助追蹤從連線的初始重新導向到目的地最終連線的重新導向「記錄」。 其也允許圖說文字驅動程式重新導向連線。
Proxyed Connections Tracking
例如,隨著多個 Proxy 的存在 (,由不同的 ISV 所開發,) 一方用來與最終目的地通訊的連線可能會由第二方重新導向;以及原始合作物件可以再次重新導向新的連線。 如果沒有連線追蹤,原始連線可能永遠不會到達其最終目的地,因為它卡在無限 Proxy 迴圈中。
支援連線追蹤的資料欄位識別碼新增專案包括:
FWPS_FIELD_Xxx_ALE_ORIGINAL_APP_ID
Proxy 連線的原始應用程式完整路徑。 如果應用程式尚未進行 Proxy 處理,則此路徑與xxx_ALE_APP_ID相同。
FWPS_FIELD_Xxx_PACKAGE_ID
套件識別碼是 (SID) 的安全性識別碼,可識別相關聯的 AppContainer 進程。
重新導向連線
圖說文字驅動程式會呼叫 FwpsRedirectHandleCreate0 函式,以建立可用來重新導向 TCP 連線的控制碼。
本節包含下列主題:
使用重新導向控制碼
查詢重新導向狀態
使用重新導向控制碼
在 ALE 連線重新導向圖說文字可以將連線重新導向至本機進程之前,它必須先取得具有 FwpsRedirectHandleCreate0 函式的重新導向控制碼,並將控制碼放在 FWPS_CONNECT_REQUEST0 結構中。 圖說文字會修改 ALE 連接重新導向層之 classifyFn 中的 結構。
FWPS_CONNECT_REQUEST0 結構包含下列重新導向成員:
詞彙 | 描述 |
---|---|
localRedirectHandle |
呼叫 FwpsRedirectHandleCreate0 函式所建立之圖說文字驅動程式的重新導向控制碼。 |
localRedirectCoNtext |
呼叫 ExAllocatePoolWithTag 函式所配置的圖說文字驅動程式內容區域。 |
localRedirectCoNtextSize |
所提供圖說文字內容區域的大小,以位元組為單位。 |
在圖說驅動程式使用重新導向控制碼完成之後,它必須呼叫 FwpsRedirectHandleDestroy0 函式來終結控制碼。
查詢重新導向狀態
圖說文字驅動程式會呼叫 FwpsQueryConnectionRedirectState0 函式,以取得連線的重新導向狀態。 FWPS_CONNECTION_REDIRECT_STATE列舉是FwpsQueryConnectionRedirectState0函式呼叫的傳回型別。
如果重新導向狀態FWPS_CONNECTION_NOT_REDIRECTED,則ALE_CONNECT_REDIRECT圖說文字可以繼續 Proxy 連線。
如果重新導向狀態FWPS_CONNECTION_REDIRECTED_BY_SELF,則ALE_CONNECT_REDIRECT圖說文字應該會傳回FWP_ACTION_PERMIT/FWP_ACTION_CONTINUE。
如果重新導向狀態是FWPS_CONNECTION_REDIRECTED_BY_OTHER,如果ALE_CONNECT_REDIRECT圖說文字不信任其他偵測器的結果,就可以繼續 Proxy 連線。
如果重新導向狀態FWPS_CONNECTION_PREVIOUSLY_REDIRECTED_BY_SELF,即使無法接受其他偵測器的結果,ALE_CONNECT_REDIRECT圖說文字仍不能執行重新導向。 在此情況下,它必須允許或封鎖ALE_AUTH_CONNECT層 (連線) 。