解码H.245请求。

时间:2016-02-12 16:41:07

标签: asn.1 h.323

虽然我有很多话要说谁发明了这个系统* @%......我会保持简短。 我正在调试一个简单的ALG,它试图打开端口并在H323 / H245流程中需要时替换IP。

我试图理解H.245 PDU的含义,但老实说,与ITU-T相比,RFC很容易理解...

所以我有以下H.245请求: 038000012040212000400960864801650304010250c0116000060007b83 ...

在二进制文件中,它变为:

字节1

0 ... extended = no

0.00。请求

... 0 extended = no ???

.... 0011 Type 3

字节2

.... .... 1000 0000 extended = yes ???

字节3& 4

.... .... .... 0000 0000 0000 0001频道ID = 2(1 + 1)

字节5& 6

.... .... .... .... .... .... .... 0010 0000 0100 0000 ???

首先:我不明白为什么不使用字节2,或者如果不使用字节2,我不知道它意味着什么。此外,PER表示如果大于2个字节,则编号必须是字节对齐的,因此通道ID不需要字节对齐...

其次,Wireshark解码它有一个H235Media(DataType 7)。 我真的不知道那里隐藏着七个人!

我用Colaso​​ft伪造了一些数据包并在Wireshark中打开它们,看起来数据类型应该存储在字节5的第0位和字节6的第7,6,5位(有12个选项,所以它应该编码为4位)。然后7将是0111.这种模式无处可见!

我发现字节5的第6位表示端口号是否存在(根据WS),好像我设置了该位,字节6和7被解释为端口号,其余的似乎是转移但不是8的倍数,当然......

这个编码可能是在计算机存在之前进行的,这就是为什么它真的不是计算友好的......玩偏移真是一种痛苦......

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

My first bit of advice would be not to try to decode ASN.1 PER by hand. Decoding PER is even harder than BER. You should let a computer do the decoding to remain sane. Trust Wireshark - it does a very good job with the decoding.

If you really want to dig into the ASN.1, there is a free ASN.1 reference book.