
//网络数据包结构头
struct NetMessageHead
{
UINT uMessageSize; ///数据包大小
UINT uMainID; ///处理主类型
UINT uAssistantID; ///辅助处理类型 ID
UINT uHandleCode; ///数据包处理代码
UINT uReserve; ///保留字段
NetMessageHead()
{
memset(this, 0, sizeof(NetMessageHead));
}
};
// 回应注册
struct LogonResponseRegister
{
int userID; //用户ID
char szToken[64]; //用户Token(sessioncode)
char szAccountInfo[64]; //唯一标识
BYTE byFastRegister; //1-普通注册,2-微信注册,3-QQ注册
LogonResponseRegister()
{
memset(this, 0, sizeof(LogonResponseRegister));
}
};
抓的这两个结构体拼接包,大小为153字节。

来尝试解析uMessageSize和uMainID两个字段
这两个都是四个字节(int)
十六进制标识方式:
uMessageSize=00000099
uMainID=00000064
换成十进制:
uMessageSize=00000099=153
uMainID=00000064=100
再来解析一个复杂的userID
跳到20个字节后面

十六进制形式:
userID=0001d02c
十进制
userID=0001d02c=118828
注意:比如四个字节的十六进制显示是从低位到高位,所以换算要从高位到低位
过滤一台计算机发出跟接收的数据

本文介绍了如何使用Wireshark抓包工具分析网络数据包,特别是关注NetMessageHead和LogonResponseRegister结构体的解析,如uMessageSize、uMainID和userID字段。通过实例展示了数据包的十六进制与十进制转换,并讲解了如何过滤特定计算机的通信数据。
3万+

被折叠的 条评论
为什么被折叠?



