2010-08-05 53 views
3

由avira的防病毒檢測爲後門模型查殺病毒檢測聽功能後門模型

listen(ListenSocket, SOMAXCONN)

的功能。

如何在沒有監聽功能的情況下編寫小型客戶端/服務器應用程序?

有沒有辦法做到這一點?

回答

2

如果你需要接受連接然後不,你不能這樣做,沒有調用listen。

如果你可以讓你的應用程序只是一個客戶端,並有一個服務器上運行其他地方,那麼你的客戶端可以連接到服務器,該服務器可以作爲一個經紀人的其他客戶端連接到行動...

我無論如何不會擔心這一點。如果你正在運行一臺服務器,你希望能夠從一臺服務器上運行,那麼你的文檔將不得不解釋如何打開防火牆端口,只要添加如何排除應用程序來自它所迷惑的防病毒應用程序。

此外,您的應用程序正在接受來自外部來源的連接,因此防病毒應用程序是正確的以警告用戶。你需要教育用戶,你的應用程序可以這樣做,因爲無論你有什麼合理的理由,它都會這樣做。如果你不想解釋給用戶的話,恕我直言,你正在寫一個後門程序,通過定義)

+0

我不太好,我不能寫一個後門:)我正在研究tanenbaum的聖經,我試着寫一個小應用程序,指代解釋的代碼,但avira不喜歡它......不過,您是對的,應用程序會阻止接受連接以解決安全問題。謝謝Len! – Phill 2010-08-05 07:44:23

0

卸載查殺病毒;-)

服務器,偵聽傳入連接,用戶開始連接到服務器。在TCP/IP網絡中,服務器通過bind() ing和listen()來實現這一點。

0

Avira中​​充斥着各種各樣的容易出錯的誤報。嘗試將監聽存儲到函數指針並調用它。它可能會工作。

+0

我會盡力,謝謝;) – Phill 2010-08-05 07:46:11

0

如果你正在處理TCP連接,並且你知道誰來自哪裏,並且有第三方可以告訴你什麼時候連接將被嘗試,那麼對於雙方都有效,對於connect到彼此在同一時間。這樣做可以在沒有任何一方傾聽的情況下協商連接。這不是一個好的解決方案,如果涉及到NAT,則需要更復雜的實現,但如果客戶端和服務器位於局域網上,則可能會出現這種情況。