我有Wireshark的数据,在C数组形式,现在我让麻烦解码标准形式

I have got data from Wireshark, in C array form, and now i m getting trouble to decode it in normal form

本文关键字:解码 标准 麻烦 数组 Wireshark 数据 我有      更新时间:2023-10-16

以下是我从wireshark获得的数据,无法破解。

char peer0_13[] = {
0x02, 0xb6, 0x8d, 0x7c, 0x7a, 0x56, 0x2f, 0x06, 
0xde, 0x6c, 0xd9, 0x55, 0x78, 0xd3, 0x12, 0xf9, 
0xe5, 0x4a, 0x57, 0x02, 0xdc, 0xb7, 0x1c, 0x75, 
0x5b, 0x9c, 0x51, 0x51, 0x3e, 0x2a, 0x3a, 0x9a, 
0xca, 0x50, 0xeb, 0x40, 0x28, 0x05, 0x00, 0xa0, 
0x14, 0x02, 0x80, 0x50, 0x0a, 0x01, 0x40, 0x28, 
0x05, 0x00, 0xa0, 0x14, 0x02, 0x80, 0x50, 0x0a, 
0x01, 0x40, 0x28, 0x05, 0x00, 0xa0, 0x14, 0x02, 
0x80, 0x50, 0x0a, 0x01, 0x40, 0x28, 0x05, 0x00, 
0xa0, 0x14, 0x02, 0x80, 0x50, 0x0a, 0x01, 0x40, 
0x28, 0x05, 0x00, 0xa0, 0x14, 0x02, 0x80, 0x50, 
0x0a, 0x01, 0x40, 0x28, 0x05, 0x00, 0xa0, 0x14, 
0x02, 0x80, 0x50, 0x0a, 0x01, 0x40, 0x28, 0x05, 
0x00, 0xa0, 0x14, 0x02, 0x80, 0x50, 0x0a, 0x01, 
0x40, 0x28, 0x05, 0x00, 0xa0, 0x14, 0x02, 0x80, 
0x50, 0x0a, 0x01, 0x40, 0x28, 0x05, 0x00, 0xa0, 
0x14, 0x02, 0x80, 0x50, 0x0a, 0x01, 0x40, 0x28, 
0x05, 0x00, 0xa0, 0x14, 0x02, 0x80, 0x50, 0x0a, 
0x01, 0x40, 0x28, 0x05, 0x00, 0xa0, 0x14, 0x02, 
0x80, 0x50, 0x0a, 0x01, 0x40, 0x28, 0x05, 0x00, 
0xa0, 0x3f, 0xff, 0xd9 };

我不知道如何将此数据转换为纯文本/字符串,以便于阅读。

这里有一些我用来获取纯文本的手工技巧。(第一个解决方案不能正常工作,因为它给了我垃圾值)。

#1.
    for (int i = 0; i <= sizeof (peer0_13); i++)
    {
        printf ("%c",peer0_13[i]);
    }
#2.
    cout << peer0_13 << endl ;
#3.
    printf ("%sn", peer0_13);

请帮忙将此数据转换为正常字符串。任何帮助我都将感激不尽。:)

您不能将上述字符向量转换为String,因为我在最后一行的末尾看到0x00。char[]String,但如果您需要将其数据复制到正常字符串中,则必须使用循环将所有字符一个接一个地复制到空字符串中,但是 0x00值将截断字符串。

注意,在第一个循环中,你需要将条件更改为i < sizeof (peer0_13),并消除引发索引超出边界错误的等号。

如果您打算将字符数组读取为人类可以理解的字符串,并且需要将其打印出来,则必须在将其复制到字符串时排除空字符(0x00),或者从数组中删除空字符,并简单地使用%s与printf。