问题是我不了解这些帧是如何编码的,或者甚至是AVI框架。谁能帮我,这是来自2个数据包的数据有效载荷:
http://pastebin.com/2VDu2Tc2
http://pastebin.com/L3Zi3VqU
#1 楼
您可以尝试使用Netzob工具。这是专用于逆向工程协议的工具。您可以在这里下载:http://www.netzob.org/
一个很好的例子/ ZeroAccess C&C协议:http://www.netzob.org/documentations/presentations/netzob_29C3_2012.pdf
您也可以看看CANAPE:http://www.contextis .com / research / tools / canape /
#2 楼
尽管可以告诉您一个使逆向工程协议更容易的工具,但我无法提供具体的解决方案。Scapy是python数据包处理工具。您遇到的问题之一是,wireshark不知道这些数据包。使用Scapy,可以很容易地构建和解析奇怪/自己的数据包。当您开始使用IDA进行逆向工程如何构建数据包时,这无疑会有所帮助。
这是UDP层定义的示例:
class UDP(Packet):
name = "UDP"
fields_desc = [ ShortEnumField("sport", 53, UDP_SERVICES),
ShortEnumField("dport", 53, UDP_SERVICES),
ShortField("len", None),
XShortField("chksum", None), ]
您现在可以创建自己的层并尝试理解数据包通过使用IDA对数据包构建过程进行反向工程来获取数据,并使用scapy重建协议。
#3 楼
从我最近收集的数据来看,DxClient被设计为DVR Netview技术的客户端。仅通过查看DxClient的功能,很明显,它不仅仅是AVI格式流的二进制传输。我认为可以肯定地说,使用的是专有的传输和控制协议。您提供的2幅相框不足以为您提供帮助。我认为您应该尝试着重于反转客户。花费足够的时间,您应该能够深入了解如何构造每个框架。我建议您熟悉网络协议反向工程的一般原理。文章博客“协议逆向工程概述”是一个很好的起点。
评论
我对此没有任何经验,仅是因为可执行文件导入了诸如AVIFileInit,AVIFileOpenA,AVIMakeCompressedStream之类的函数,我相信它使用的是AVI文件。尽管您说了什么,但该协议可能会更高级,因为它允许诸如Pan Tilt Zoom和更改摄像机视图之类的操作。
–杰米
13年7月15日在16:29
究竟。该协议很可能将包括多个流以及各种控件。据我所知,客户端的功能非常广泛。最好的办法是在send()和recv()上设置断点,并查看其对消息数据的作用:如何将其组合在一起并分解。这样,您将能够识别自定义框架的关键组件。
– PSS
13年7月15日在16:34
评论
您能否提供包含握手在内的小型pcap捕获文件?dropbox.com/s/dbtj3jy7d4s4z6p/cctv%201.pcapng dropbox.com/s/1zf1ssoyo7ur4sk/DxClient2.7.1-ENG.exe和DxClient可执行文件。在我看来,使用TCP而不是UDP进行流媒体协议的设计似乎很糟糕,这是一个糟糕的决定。我认为Wireshark只是将其作为HTTP流量,因为我正在使用端口8080