[英]Changing tcp/ip packets c++ or java
這是情況。 網絡中有服務器和客戶端。 他們這樣交流:
但是有時客戶端無法執行功能並發送錯誤。 我想捕獲第2步中的所有數據包(分析它們(我已經有相應的工具),阻止其中的某些數據包到達客戶端,用我的程序處理它們並像第3步一樣形成數據包。這必須在客戶端上完成側。 我無權訪問服務器或客戶端。
因此,問題是:是否存在用於在c ++或java中更改,注入和刪除tcp / ip數據包的庫? 該解決方案應該在Win和Linux系統上都可以使用。 另外,您是否有更好的想法來擴展客戶端功能?
謝謝你的幫助! 我試圖用谷歌搜索如何更改數據包,但我得到的只是未解決的問題和嗅探器=(
編輯:實際上,我真的不需要注入和刪除數據包,只需更改數據包數據就可以對其進行管理。 同樣,在同一數據包中沒有多個請求,並且跨多個數據包的單個請求也不是問題。
您必須為服務器構建一個代理。 客戶端連接到代理,而代理本身連接到服務器。 它只是在客戶端和服務器之間路由所有軟件包。
但是,現在它可以攔截特定消息並進行修改。 想象一下過濾HTTP代理,它的工作方式相同。
我在linux和freeBSD上有libpcap的經驗,這是一種有助於捕獲或注入數據包的低級庫。 我確實在IPV6網絡橋項目中使用了它……但是我知道有一個Windows端口。 http://sourceforge.net/projects/libpcap/您可以讓該庫執行以下操作:
但是,您將不得不完全處理內部數據。 該庫的最佳文檔是其頭文件中的注釋,這是最新信息。 也許有一些更舒適的高級庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.