This is still being worked on semi-actively, progress updates are posted in the roadmap
Collection of protocol, memory, and other hacky information for the browser game diep.io.
What started off as an attempt to parse game leaderboards out of packets is now a collection of information about the insides of diep.io. Includes information such as packet encoding/decoding, packet protocol, memory structures, a bit of physics, wasm parsing, game code reversal, and much more.
There are 7 sections that divide up the information collected.
- Game Protocol (
protocol/
)
Including incoming and outgoing packets, encoding/decoding, m28 server list api, and websocket connections - WebAssembly Reversal (
wasm/
)
Including any means necessary, asm.js conversion, specific functions, automation of reversing constants and pointers, understanding of emscripten - Canvas Reversal (
canvas/
)
Including shape sizes, draw sequences, scaling, and color constants - Memory Management (
memory/
)
Including storage of entities, tanks, the gui, and the structure and way things are stored - Extras (
extras/
)
Including any extra information, fun facts, misc algorithms, and any physics not provided in Spade Squad - Media (
media/
)
Including screenshots and other forms of media relating to our research in diep - Physics (
physics/
)
Including information regarding the properties and nature of entities, such as movement, collisions, and sizes
Before going too in depth into entity-related memory and protocol, it is highly recommended you read entities.md
to understand how entities work.
This repository was made possible with the help of the Diep In Depth team. Thank you to ABC, ALPH2H, Excigma, HueHanaejistla, Diep7444, Cazka, shlong, Pola, Altanis, Binary, Shädam, Nulled, Crabby, 0x1412, and CX 🙏 for their work. For discussion via discord, join the Spike Squad Discord Server where some of us are active.
If you have additional information you can / want to share, please, pull requests are welcome!