如何進行基於UDP的自定義遊戲協議的逆向工程,而無需使用Wireshark?我可以記錄一堆流量,但那又怎麼樣?我的目標是爲Wireshark編寫一個解析器插件,最終能夠解碼遊戲命令。這看起來可行嗎?我可能面臨哪些挑戰?命令是否可以加密?我怎樣才能解決Wireshark之外的基於UDP的自定義遊戲協議的逆向工程?
4
A
回答
2
8
是的,這是可行的。但它的實用程度取決於所討論的遊戲。壓縮會使你的工作變得更加困難,並且加密將使它變得不可能(至少通過Wireshark - 你仍然可以獲得內存中的數據)。
也許最好的方法是有條不紊地做 - 不要記錄'一堆流量',而是在遊戲中執行一個單獨的動作或命令,並查看發送了哪些數據以進行通信。然後,您可以查看包並嘗試找出任何感興趣的東西。通常你不會從中學到很多東西,所以試試另一個命令並將新消息與第一條消息進行比較。哪些部分在同一個地方?哪部分移動了?哪些部分完全改變了?尤其要注意可能描述消息類型的數據包開始附近的固定位置的值。一般來說,數據包的開始將是類似於頭部的通用內容,後面的部分數據包將成爲特定於消息的部分。考慮到UDP協議通常有自己的手卷訂單或可靠性方案,並且您可能會在開頭附近找到序列號。
瞭解您的數據類型非常方便。例如,整數值可能以big-endian或little-endian格式存儲。許多遊戲都會將數據作爲浮點值發送,因此可以查看可能描述位置或速度的連續2或3個浮點數。
相關問題
- 1. 我怎樣才能解決這個自定義錯誤在ASP.NET
- 2. 通信協議的逆向工程
- 3. 我怎樣才能重定向到基於URL中的Grails
- 4. 我怎樣才能重定向基於選擇一個DropDownList的
- 5. 理解/逆向工程頂層網絡協議的好工具
- 6. 我怎樣才能解決我的.htaccess解決
- 7. 我怎樣才能加速我的基於事件的過程?
- 8. 休眠:我怎樣才能解決java.lang.IncompatibleClassChangeError:
- 9. 遊戲協議
- 10. 逆向工程黑盒串行協議
- 11. 我怎樣才能爲styleBar的UINavigationBar創建自定義樣式?
- 12. 我怎樣才能重定向Lighttpd的WebDAV搭載取決於用戶登錄
- 13. 我怎樣才能解決「語義問題」
- 14. 我怎樣才能創建一個自定義的Windows消息?
- 15. 我怎樣才能讓自定義導航欄透明的RNRF
- 16. 我怎樣才能解決這個問題等於在基本類型(INT)
- 17. 我怎樣才能解決這個當我嘗試從功能
- 18. 我怎樣才能寫出紙牌遊戲的功能,戰爭,更清潔?
- 19. 我怎樣才能解決這些Qt的錯誤
- 20. 我怎樣才能解決的意見是使用Silverlight
- 21. 我怎樣才能防止我的單人Flash遊戲作弊引擎?
- 22. 怎樣才能實現Java字節碼加密(防止逆向工程)
- 23. 除了empty()之外,我怎樣才能使用PHP的isset()?
- 24. 逆向工程C#解決方案
- 25. Glyphicons如何工作?我怎樣才能製作我自己的?
- 26. 我怎樣才能得到基於http的heroku域
- 27. 我怎樣才能獲得基於值的鍵在下劃線
- 28. iPhone遊戲中心iOS4支持我的遊戲?怎麼樣?
- 29. 我怎樣才能用匯編語言對tasm程序進行蛇遊戲?
- 30. 我怎樣才能讓我的提醒對話在Android的自定義提醒
當然,它可能... – 2009-09-15 18:37:11