[C#][Crack] 我們來看看能不能試著去操控監控設備,第一次破解監控設備就上手?
這一陣子因為有個一歪的朋友(Cuber?) ,他最近想研究些有關於監控設備的控制,所以本篇目的在於操控一台speed dome 的上下左右移動,基於我強者朋友11弄到一半,因為遇到些小問題,所以我就繼續抽絲剝繭繼續研究下去,畢竟我得靠11幫我弄其他東西? 來聊聊主題吧 !
首先,因為手上只有一台大陸淘寶買的,台灣也買得到的一台speed dome 應該是蠻便宜的吧長相長這樣
好,首先,你一定會說官網可以找SDK,找了,沒有 ! 第二招,找官方技術人員,官方技術人員也是沒有,不過他給了它們的電腦版CMS ,他們官方的電腦版下載的竟然不能用,好啦這邊跌坑也是跌很大,接下來我就開啟了它們的CMS
好接下來我們要怎麼做呢,基本上,這一篇是一些心得文,第一步,我們得先找到那一台的IP,我們可以用掃描區域網路的工具,我是用這一套 http://www.download25.com/install/free-ip-scanner.html
之後,我就抓到那一台的IP 為 192.168.6.218
再來,我們必須要知道他在操控上下左右的時候,發生了什麼事情,這時候我們必須要一套監控自己封包的軟體,因為我們完全沒有SDK,所以我必須要知道我網路封包,到底下了什麼指令,我是網路上隨便找一套軟體,http://www.nirsoft.net/utils/smsniff.html 我是用這一套SmartSniff,當然你要用啥都可以,這時候我監看封包並且 啟動CMS玩一下,然後我發現了
很好,發現了他是用rtsp 的通訊息協定,選項是 SET_PARAMETER 並且指令為 ptzcmd:UP 、 ptzcmd:DWON (不要懷疑,它們可能真的就是打錯字,哈哈哈,想不到這就是一步錯步步錯的指令) 、ptzcmd:LEFT 、ptzcmd:RIGHT
接下來,我們要去來模擬下封包了,我找到一個github上面的專案叫做SharpRTSP : https://github.com/ngraziano/SharpRTSP ,在這邊依然感謝各位網路上開源大大的分享,讓我們少跌很多路,但是好死不死因為他沒有實作SET_PARAMETER的選項,所以我這邊就在擴充寫了一個 我也分享出來 https://github.com/donma/SharpRTSP ,然後接下來就是呼叫的部分,我是用C# 寫的,這案例我只有讓他左轉,其他,就只是參數改一改
C# code :
//啟動連線 var tcp_socket = new Rtsp.RtspTcpTransport("192.168.6.218", 554); var rtsp_client = new Rtsp.RtspListener(tcp_socket); rtsp_client.Start(); //準備指令 var options_message = new Rtsp.Messages.RtspRequestSetParameter(); options_message.RtspUri = new Uri("rtsp://192.168.6.218" + "/" + "onvif1"); //左轉 options_message.AddHeader("Content-type:ptzCmd:LEFT"); //送出 rtsp_client.SendMessage(options_message);
接下來就可以成功讓他左轉,oh yeah..打完收功 ! !
特別說明: 這邊分享的目的並不是教你去破解各家的監視系統,而是有時候如果你遇到沒有SDK的時候該如何去思考跟解決問題,基本上我公司也不是做這個的,這只是我個人對於一個有挑戰性的事物覺得好奇去玩玩,如果你有遇到相關問題可以一起交流交流,但是當然前提是你不是要做壞事,我們會這樣只是因為我們想要包裝一層API ,讓手機比較簡易去呼叫。