UDPack is an extensible generic UDP packet obfuscator. The purpose of this application is to sit in the path of a UDP data stream, and obfuscate, deobfuscate or otherwise modify the packets.
Python 3.4 or above is required, since this script uses the
asyncio library. Currently there are no other dependencies. Warning: It must be stressed that the purpose of this application is obfuscation , not encryption . Many design decisions have been (and will be) deliberately made against best practices in cryptography, so in all likelihood the obfuscation methods will not resist crypto analysis. DO NOT rely on the obfuscation for confidentiality of your data!!!
At this stage the script includes the following "packers" (obfuscation methods):
- Straight through: no obfuscation
- Shuffle: shuffle the order of data bytes in each packet
Typical usage
A "packer" is a particular implementation of obfuscation method, usually obfuscating packets travelling upstream and deobfuscating packets travelling downstream. An "unpacker" is the same thing, implemented in the opposite direction.
raw data obfuscated data raw data
UDP Client ---------- Packer =============== Unpacker ---------- UDP server
upstream ==> <== downstreamImplementing new packers and unpackers
In most cases, to implement a new packer, simply inherit from
UDPackStraightThroughPacker and implement pack and unpack methods. To implement the corresponding unpacker, inherit from UDPackUnpackerMixIn and the completed packer. 
