gpt4 book ai didi

java - 反/序列化二进制数据

转载 作者:行者123 更新时间:2023-12-03 23:08:07 25 4
gpt4 key购买 nike

我目前正在对一个 mmorpg 的二进制网络协议(protocol)进行逆向工程。我正在用 java 实现该协议(protocol)。

对于每个数据包类型,我将创建一个表示二进制数据的类。

例如,聊天数据包(“asd”)

header = 0c75
03 00 61 73 64 00 . . a s d .

java代码:

public class Chat {
private short length;
private String msg;
}

是否有一个库可以将字节数组直接反序列化为对象。基本上类似于 Jackson 或 OrmLite 的二进制数据。

谁知道有没有可以使用的库?我已经在这里和谷歌上搜索过,但没有找到我要找的东西。我什至开始编写自己的序列化程序。

最佳答案

每个序列化库(据我所知?)都定义了自己的二进制格式 - 因此二进制表示完全由类/idl 文件确定,不能进行定制以匹配自定义协议(protocol)。常见的二进制格式:

如果您进行逆向工程的协议(protocol)碰巧不是一个常见的协议(protocol)(也许他们在内部使用 proto?)那么您唯一的选择是实现 Serializable/Externalizable你自己,或者带进来 kryo并定义您自己的自定义(反)序列化器 - 无论哪种方式,您都将自己编写 Object <--> byte[]/stream/buffer 转换逻辑。

关于java - 反/序列化二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37310089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com