Algorithm 数据协议的逆向工程

Algorithm 数据协议的逆向工程,algorithm,serial-port,packet,decoding,Algorithm,Serial Port,Packet,Decoding,我有一个通过串行端口连接到电脑的设备,我正试图弄清楚它是如何发送数据的。(长话短说)我有一个应用程序,可以指示它通过串口向我发送文本,我正试图弄清楚设备如何格式化数据。到目前为止,我已经研究出了,例如: 如果我发送“回文”,我将看到: A1 87 66 9D D9 39 6F DB 97 98 00 “回文”的ASCII数据为 P a l i n d r o m e s 50 61 6C 69 6E 64 72 6F 6D 65 73 如果我在流中按位置(+1)移

我有一个通过串行端口连接到电脑的设备,我正试图弄清楚它是如何发送数据的。(长话短说)我有一个应用程序,可以指示它通过串口向我发送文本,我正试图弄清楚设备如何格式化数据。到目前为止,我已经研究出了,例如:

如果我发送“回文”,我将看到:

A1 87 66 9D D9 39 6F DB 97 98 00    
“回文”的ASCII数据为

P  a  l  i  n  d  r  o  m  e  s
50 61 6C 69 6E 64 72 6F 6D 65 73
如果我在流中按位置(+1)移动每个字节,我得到

P  a  l  i  n  d  r  o  m  e  s
50 61 6C 69 6E 64 72 6F 6D 65 73  <-- ASCII
01 02 03 04 05 06 07 08 09 0A 0B  <-- shift
--------------------------------
                        03 98 00  <-- 73 << 0B = 039800
                     01 94 00     <-- 65 << 0A = 019400
                     DA 00        <-- 6D << 09 = DA00
                  6F 00           <-- 6F << 08 = 6F00
               39 00              <-- 72 << 07 = 3900
            19 00                 <-- 64 << 06 = 1900
         0D C0                    <-- 6E << 05 = 0DC0
      06 90                       <-- 69 << 04 = 0690
   03 60                          <-- 6C << 03 = 0360
01 84                             <-- 61 << 02 = 0184
A0                                <-- 50 << 01 = A0
--------------------------------
A1 87 66 9D D9 39 6F DB 97 98 00
pal in d r o m s

50616C696E64726F6D6573看起来它每字节发送7位,而您已设置为接收8位。检查串行端口设置。

流中的数据是位压缩的,这意味着每个字节的MSBit都被删除。

当我尝试解码生成的数据时,我突然想到了这一点。然而,为了解决您的问题,此数据是更大数据包的一部分,该数据包通过9600波特无奇偶校验、8个数据、1个停止、无流量发送。我认为他们只是在为数据部分使用位打包。