2013-04-15 70 views
0

我已經讀了一個代碼的地方,承諾它可以保護包編輯器的應用程序Winsock功能。防止winsock注入MS走彎

我運行遊戲服務器,這對我來說真是個好消息。但這真的有可能嗎? 就像添加一個使用繞過我的遊戲的可執行文件的DLL來保護我的winsock函數不被劫持?

就像他們將數據包編輯器掛鉤到我的應用程序一樣,他們不會看到有關數據包日誌記錄的任何內容?

或者是隱藏我的應用程序從這種工具更好的方法?

謝謝。請討論。

我發現的代碼:http://pastebin.com/XtfSHxBL

回答

3

如果你想這樣的代碼添加到您的遊戲,我只想NOP它;)

克服它。
客戶端不安全,並且不能被信任。

而且,我可以切換Linux的路由器之間,並捕獲數據包有..

如果你不想讓你的winsock的數據將被捕獲,你需要將它與一個好的加密非對稱加密算法,比如PGP,並且在數據發送到winsock之前。

如果情況屬實,更好的辦法是使用isdebuggerpresent關閉程序。 但是之後你需要加密可執行文件,否則我只是用IDA反彙編它,或者修補程序isdebuggerpresent爲NOP,或者0xe9它在運行時通過createremotethread返回false,這在文件校驗和中通常不會被檢測到檢查。

但是,如果我劫持了isdebuggerpresent的WinAPI函數並將其刪除,那麼這種方式仍然很脆弱。這也許可以用MS走彎路來實現;)

+0

+1永遠不會相信它。但你可以讓它更難;) –

+0

是的,我想這是真的。但是,我的數據包是加密的。我只想讓新手想成爲黑客。至少它不會像1,2,3一樣簡單。 – madziikoy

+0

這是我發現的http://pastebin.com/XtfSHxBL – madziikoy

1

這是可能的,在一定程度上。但是,沒有什麼會阻止持續的黑客。 (因爲我調查了對這個「安全」函數導入的攻擊)被.NET運行時使用,以防止劫持註冊表讀/開函數(出於與CAS有關的安全原因)。
基本上,他們決定硬連線功能地址,指定多個Windows變體(幾個服務包)的直接地址。顯然,只有當你是MS時,你纔可以熟練地使用這些東西(你補丁advapi32,更改Reg *函數的地址?你也提交了一個mscoree補丁)。

這使得它很難趕上並攔截那些功能(至少比只使用IAT比較困難),但正如我所說,我發現它是怎麼做檢查的攻擊等等....

使用Detour時,您仍然使用IAT,但您可以檢查是否有人擺弄它,並「恢復」(重寫)原始地址。或者至少檢查一下。這就是Punkbuster曾經做過的,IIRC。請注意,這證明沒有什麼像一個安全的客戶(人們瞭解PB在做什麼 - >他們繞過了它)。

2

任何這樣的事情都是微不足道的。專注於確保實際的協議,使用加密,驗證服務器端的所有內容。

我會在評論中發佈這個,但顯然你需要聲望來做到這一點。

+0

的代碼,它既注重保護實際的協議,也讓您可以在下次發表評論 –