Alright so this is my new packet analyzer. It can basically the same as the previous, but has a few more advantages.
The offsets have colors.
Yellow: Cannot be changed. (Size + Type offsets)
Red: Not analyzed and saved offsets.
Green: Analyzed and saved offsets.
An offset will have a value history which you can use to analyze the different outputs of the current offset. Everytime you choose a new offset this history is cleared thought.
There is two tabs, one for the offset analyzer and one for the packet structure.
It requires .NET Framework 4.0.
Buu v1.0: (Please report any bugs.)
Buu v2.0: (Please report any bugs.)
Buu v3.0:
This version will include packet handling for handling packets by coding your own scripts (using C#), but also sending custom packets with scripting etc.
Again thanks to Fang for the test packet.
Screenshots: (From V1)
Screenshots: (From V2)
Encryption usage:
You must use the namespace "ProxyEncryption" and the encryption class has to be "ProxyCryptography". You can always call another namespace or class from those two.
The class must contain 2 methods called Encryption and Decryption and they has to return a byte array for the encrypted/decrypted packet. The parameters of the two methods are the same. One parameter for the byte array to encrypt/decrypt and two bool parameters. The first bool is indicating whether it's send/received to/from the client or server. The second bool is indicating whether the packet is being send or not.
The Add reference button can add DLL files as reference to the cryptography, if it's necessary.
The save button will compile the encryption script and delete it if the textbox is empty.
Example:
Code:
namespace ProxyEncryption { public class ProxyCryptography { public static byte[] Encrypt(byte[] packet, bool client, bool send) { if (send) { // the packet is sending if (client) { // the packet is send to the client } else { // the packet is send to the server } } else { // the packet is receiving if (client) { // the packet is received from the client } else { // the packet is received from the server } } return packet; } public static byte[] Decrypt(byte[] packet, bool client, bool send) { if (send) { // the packet is sending if (client) { // the packet is send to the client } else { // the packet is send to the server } } else { // the packet is receiving if (client) { // the packet is received from the client } else { // the packet is received from the server } } return packet; } } }
Anyways enjoy.