Generate basic information about new protocol versions from BDS using Python and GNU objdump
sudo apt install binutils
python2
- A local clone of BedrockProtocol
- An x86_64 Linux binary of Bedrock Dedicated Server
python2 protocol_info_generator_objdump.py <path to bedrock_server_symbols.debug> <path to BedrockProtocol src>
protocol_info_generator_objdump
uses GNU objdump to extract basic protocol information about a new version of Minecraft from Bedrock Dedicated Server, including the following:
- Current version (major.minor.patch)
- Whether or not this version is a beta
- Current protocol version
- List of packet IDs
The script currently patches the following files:
It will also generate stub classes for any new packets found.
No. It can only find some basic information like packet IDs and their associated names. Unfortunately, the compiled server doesn't retain any information about the names of struct fields, so the fields still have to be reverse-engineered manually.
In theory, yes. Since this tool essentially just requires a list of known packet names, their IDs, and some version info, it should be easily possible to alter the scripts to generate similar code for another project.