2011-07-07 64 views
0

我有一個設備,當某個應用程序正在向該應用程序發送數據時。我需要嗅探那些數據並檢索某些未顯示的信息。該設備是自定義的,由於某種原因沒有數據表。因此,必須嗅探通信並重建從應用程序發送到此設備的命令。所以我想用C#或C++來完成。現在我已經嘗試了每一個嗅探軟件,是的,他們嗅探它,但我希望能夠這樣生活和檢索數據並現場展示。反向工程師串行通信

謝謝

+4

這是什麼類型的設備?打印機,讀卡器,航天飛機?你能詳細介紹一下你已經開發的一些代碼片段嗎? –

+2

需要說明的是,您對反向工程不感興趣,但是正在創建附加軟件,將從其他軟件和端口發送的現有數據流中提取信息。 – Brad

+0

是的,你是完全正確的! – NoobRS232

回答

5

要做到這一點是把你的軟件在設備和其它軟件之間的最簡單方法。然後,傳遞所有數據,捕獲你需要的任何東西。

要做到這一點,您需要使用串行端口環回軟件。那裏有很多。見http://www.virtual-serial-port.com/virtual-serial-port-kit.html。我個人使用過GPSGate的產品,但我相信有free loopback drivers available

更復雜(但更加被動!)的方法是監視IOCTL。我不能指導你如何做到這一點,因爲我不知道,但這是需要研究的。 http://www.serial-port-monitor.com/的軟件使用此方法。

+0

我正在尋找的是一些鏈接或actricle解釋如何使用C++或C#進行嗅探。所以我可以在串口處於活動狀態時進行嗅探,以及發送和響應的內容。 – NoobRS232

+0

@ NoobRS232,請參閱本文的「如何工作」一節:http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx – Brad

+0

@ NoobRS232,如果這是你的頭,那麼你應該去與迴環方法。它更簡單。 – Brad

0

給你虛擬串口的另一種軟件是com0com(http://com0com.sourceforge.net/)。但是,它也具有集線器功能,可將設備的輸出發送到許多應用程序,這對您而言可能有用或可能沒有用,具體取決於您是否需要監視設備的輸出或雙向。

如果沒有其他的東西,它可能會給你一些開源的代碼,以便你自己的嗅探器,如果你沿着設備過濾器路由。但是如果你沿着這條路線走,你可能需要看看驅動程序簽名,如果你需要它在64位版本的Windows 7上工作。