Reverse engineering
Reverse engineering is the process of retrieving a protocol’s details from a software implementation of the specification. Methods of reverse-engineering a protocol include packet sniffing and binary decompilation and disassembly.