||1 year ago|
|.vscode||1 year ago|
|demboyz||1 year ago|
|docs||7 years ago|
|external||1 year ago|
|premake||1 year ago|
|.gitignore||7 years ago|
|.travis.yml||5 years ago|
|LICENSE||8 years ago|
|README.md||5 years ago|
|Vagrantfile||7 years ago|
|demopus.py||1 year ago|
|vagrant.sh||4 years ago|
we dem boyz
|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.
- 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
./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.
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.
- 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.
# 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