我目前正在反向生成mmorpg的二进制网络协议。 我正在java中实现协议。
对于每种数据包类型, 我将创建一个表示二进制数据的类。
例如,Chat-Packet(" asd")
header = 0c75
03 00 61 73 64 00 . . a s d .
java代码:
public class Chat {
private short length;
private String msg;
}
是否有一个库将字节数组直接反序列化到对象中。基本上像Jackson或OrmLite这样的二进制数据。
任何人都知道是否有可以使用的库? 我已经在这里和谷歌搜索,但没有找到我想要的东西。 我甚至开始编写自己的Serializer。
答案 0 :(得分:0)
每个序列化库(我所知道的?)都定义了自己的二进制格式 - 因此二进制表示完全由类/ idl文件决定,不能定制以匹配自定义协议。常见的二进制格式:
如果您正在进行逆向工程的协议不是一个常见的协议(也许他们在内部使用proto?)那么您唯一的选择就是自己实现Serializable / Externalizable,或者可以引入{ {3}}并定义自己的自定义(de)序列化程序 - 无论哪种方式,您都将编写Object< - > byte [] / stream / buffer转换逻辑自己。