.vscode | ||
demboyz | ||
docs | ||
external | ||
premake | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
vagrant.sh | ||
Vagrantfile |
demboyz
we dem boyz
Build Status
System | Compiler | Status |
---|---|---|
Linux 64-bit | G++-4.8.4 | |
Windows | VS2017 | |
OSX | Apple LLVM version 7.3.0 (clang-703.0.31) |
What is it?
Demboyz is a command line tool to convert TF2 STV demos into a human readable json format. Demboyz runs on Linux, Windows, and OSX. It supports the following conversions:
.dem/.json <-> .dem/.json
.dem/.json -> .con
The .dem format is the TF2 STV demo format.
The .json format is the demboyz streaming json demo format.
The .con format is a log equal to what would be produced by TF2
with netmessage/demmessage logs enabled.
Potential Uses
- Exporting Stats: Parsing for player stats and motion throughout maps.
- Anticheat: Interpreting player net data for malicious behavior and cheating
- Anti-Anticheat: Modifying player net data to hide your malicious behaviour and cheating
- Censoring: Cover up rude communication by removing player voice and chat messages
- Social engineering: Make your friends seem rude by adding phony player voice and chat messages
- ConeBone69 revival: Change the names of all players to ConeBone69
Usage
./demboyz mystvdemo.dem mystvdemo.json
./demboyz mystvdemo.dem mystvdemo.con
./demboyz mystvdemo.json mystvdemo.dem
./demboyz mystvdemo.json mystvdemo.con
In the first example, mystvdemo.dem will be read from the current working directory, while mystvdemo.json will be written to the current working directory.
Contributing
For Developers
If you would like to contribute to demboyz, here are a few tasks up for grabs:
General programming experience:
- Add automated tests to demboyz.
- Using the Catch C++ testing framework.
- Unit test the serialization of network messages.
- System test exact binary matches of dem -> json -> dem transformations.
- Document the .dem format.
- Turn the working demboyz serialization code into a reference manual for the .dem fomat.
- Any amount of work on this helps. Document one struct!
- Develop an app that uses demboyz.
- Provide feedback on the usefulness of the json demo format.
- Create new tools previously impossible to make.
C++ and asm experience:
- Continue reverse engineering the STV demo structs and serialization (svc_ messages).
- Many of the reversed svc_ messages still have unknown binary chunks of data.
- Reverse them for addition to the demboyz source.
- Reverse engineer the POV demo structs and serialization (clc_ messages).
- Currently, demboyz only supports STV demos due to POV demo messages being separate and unknown.
- Work on reverse engineering the clc_ messages just like the svc_ messages.
- Add a conversion to the replay demo format.
- The replay demo format would require reverse engineering just like POV and STV demos.
For Users
- Cheer on the developers.
- Pressure the developers.
- Become a developer.
Who Uses demboyz?
- KZMod Demo Player [beta] by kraster
Compiling From Source
When following instructions below, the compiled binary will be output in the bin folder.
Using Vagrant
# Launch VM and build
vagrant up
# Patch VM and re-build
vagrant provision
# Manual build
vagrant ssh
cd /vagrant/premake
./gmake.sh && cd gmake
make
# Disconnect session and stop VM
exit
vagrant halt
With Visual Studio 2013
# Generate vs 2013 project
cd premake
vs2013.bat
Open generated VS solution at premake/vs2013/demboyz.sln