Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RakNet Decryption

This project is a proof of concept on decrypting and inspecting Roblox's customized RakNet protocol packets for educational purposes.

Warning

Users must provide their own session keys to use this tool. I will not provide instructions or methods on how to obtain these session keys, as doing so violates the Roblox Terms of Service.

Packet Types

The tool recognizes the following top-level packet IDs.

ID Name Description
0x00 ID_CONNECTED_PING RakNet connected ping packet carrying a ping timestamp.
0x03 ID_CONNECTED_PONG RakNet connected pong reply carrying ping and pong timestamps.
0x09 ID_CONNECTION_REQUEST RakNet connection handshake request packet.
0x10 ID_CONNECTION_ACCEPTED RakNet handshake acceptance packet sent after connection setup succeeds.
0x13 ID_NEW_INCOMING_CONNECTION RakNet notification that a new incoming connection has been established.
0x15 ID_DISCONNECT Disconnect/connection teardown packet.
0x1B ID_TIMESTAMP Timestamp wrapper packet that prepends one or two timestamps and may wrap another packet.
0x51 ID_MTU_PING_1 MTU probe ping packet used during path/MTU discovery.
0x52 ID_MTU_PING_2 Second MTU probe ping variant used during connection setup.
0x53 ID_MTU_PING_3 Third MTU probe ping variant used during connection setup.
0x54 ID_MTU_PONG_1 MTU probe pong reply carrying timing data.
0x55 ID_MTU_PONG_2 Second MTU probe pong variant carrying timing data.
0x56 ID_MTU_PONG_3 Third MTU probe pong variant carrying timing data.
0x81 ID_SET_GLOBALS Replication/session setup packet containing global flags, peer ID, script keys, and service references.
0x82 ID_TEACH_DESCRIPTOR_DICTIONARIES Descriptor/dictionary teaching packet referenced by name but not currently decoded in detail.
0x83 ID_DATA Main Roblox replication container that carries one or more subpackets such as property, event, and instance updates.
0x84 ID_MARKER Marker/control packet referenced by name but not currently decoded as a top-level packet.
0x85 ID_PHYSICS Physics replication packet carrying transforms, velocities, motors, and optional child-body data.
0x86 ID_TOUCHES Touch/contact replication packet describing begin/end touch relationships between instances.
0x87 ID_CHAT_ALL Global chat packet referenced by name only.
0x88 ID_CHAT_TEAM Team chat packet referenced by name only.
0x89 ID_REPORT_ABUSE Abuse report packet referenced by name only.
0x8A ID_SUBMIT_TICKET Support/ticket submission packet referenced by name only.
0x8B ID_CHAT_GAME Game/system chat packet referenced by name only.
0x8C ID_CHAT_PLAYER Direct player chat packet referenced by name only.
0x8D ID_CLUSTER Cluster/control packet referenced by name only.
0x8E ID_PROTOCOL_MISMATCH Protocol version mismatch/error packet.
0x8F ID_PREFERRED_SPAWN_NAME Preferred spawn selection packet referenced by name only.
0x90 ID_PROTOCOL_SYNC Protocol synchronization packet referenced by name only.
0x91 ID_SCHEMA_SYNC Schema synchronization packet referenced by name only.
0x92 ID_PLACEID_VERIFICATION Packet carrying the Roblox place ID used to verify the connected experience.
0x93 ID_DICTIONARY_FORMAT Dictionary-format negotiation packet referenced by name only.
0x94 ID_HASH_MISMATCH Hash mismatch/error packet referenced by name only.
0x95 ID_SECURITYKEY_MISMATCH Security key mismatch/error packet referenced by name only.
0x96 ID_REQUEST_STATS Statistics request packet referenced by name only.
0x97 ID_NEW_SCHEMA Compressed schema-definition packet describing enums, classes, properties, events, and string dictionaries.
0x98 ID_KICK_MESSAGE Kick/disconnect reason packet containing a UTF-8 message string.
0x9B ID_LUAU_CHALLENGE Luau challenge/response packet used during security or script validation.
0xA2 ID_DATA_PING Segmented data ping packet used to measure latency for data transport.
0xA3 ID_DATA_PING_BACK Reply packet for ID_DATA_PING.
0xA4 ID_UNRELIABLE_DATA_PING Unreliable-channel variant of the data ping packet.
0xA7 ID_EARLY_DATA_PING Early-session data ping packet sent before normal steady-state replication.

ID_DATA Subpacket Types

ID_DATA (0x83) is a container packet. It can hold the following Roblox replication subpacket types:

Sub ID Name Description
0x01 DELETE_INST Deletes or dereferences an existing replicated instance.
0x02 NEW_INST Creates a new replicated instance, including schema/class information, selected properties, and parent linkage.
0x03 PROP Updates a single property on an existing instance, optionally with a version field.
0x04 MARKER Carries a marker ID used for sequencing or control flow.
0x05 PING Roblox data-channel ping packet carrying timing and send-stat fields.
0x06 PING_BACK Reply packet for PING, echoing timing and send-stat fields.
0x07 EVENT Fires a replicated event on an instance and carries typed event arguments.
0x08 REQ_CHAR Character-request packet referenced by name only.
0x09 ROCKY Packet type referenced by name only; exact purpose is not yet decoded.
0x0A CFRAME_ACK Acknowledges transform/CFrame-related replication data.
0x0B JOIN_DATA Compressed initial replication snapshot used to send many instances and their properties during join.
0x0C CLIENT_QUOTA Streaming/client-budget packet containing quota delta and max region radius.
0x0D STREAM_DATA Streamed replication payload referenced by name only.
0x0E REGION_REMOVAL Signals streamed region removal/unload.
0x0F INST_REMOVAL Removes streamed instances from the client's replicated state.
0x10 TAG Tag/metadata replication packet referenced by name only.
0x11 STATS Statistics/telemetry packet referenced by name only.
0x12 HASH Hash/security packet containing a nonce, hash values, and optional security tokens.
0x13 ATOMIC Grouped atomic replication update referenced by name only.
0x14 STREAM_DATA_INFO Metadata packet for streamed replication data.
0x16 SCHEMA_DATA Compressed follow-up schema/game-state data sent after ID_NEW_SCHEMA.

RakNet Decryption

Acknowledgments

Credit to Arisstath/raknet-dissector for some of the packet decoding implementations that I've ported to Python.

About

An interface for decrypting Roblox Raknet packets.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages