Byte Randomization
One essential command for packet editors now is byte randomization. Randomization is pretty self explanitory, whenever the command appears to randomize, the byte that was replaced by the command will be randomized. This is often used to get past things that may be limited to a certain amount in a period of time. For example, you could wisper your friend with "@@@@...", log the packet, randomize the time stamp, and this will bypass the limit of 3 (I think?) messages in a row ( <<<Don't do that, It's just an example... Old school D/C anyone? )
The commands to randomize bytes are the following;
  • "?"
  • "*"

Retention of Original Bytes!
When using packet modification, there may be a time when you want to keep the rest of the packet in tact. Instead of having to go through and typing each and every byte from the original packet, you can just add the following command! It can be used in occasions when you have edited the necessary parts, and want the rest unchanged. It makes for neater packet editing! I don't have many examples of this, I may release something that uses this depending on some circumstances. I'm sure many of you would like it but I may end up releasing something else .
The command to retain the rest of the original packet's bytes is;
  • "."

Dynamic Packets
The [ and ] command is pretty weird, I read and read it and have gotten to this final conclusion on it. Because I haven't been on maple to test this out, someone is going to have to think something up and do this :P What I believe it does, is takes part of the byte, and modifies it by the command given by the user. The example given by Riu involves the meso drop packet. (I'm going to feel like an idiot right now :P)
7E 00 [10000000,7FFFFFFF,+1???] [0A,0000C350,1]
First, we have "7E 00" which is the packet header. We don't want to change the packet header, for obvious reasons :P

Here comes the interesting part, this is all in theorie :P Here is how the command is laid out. [Minimum,Maximum,Expression].
Simply put, the minimum bytes can be "10 00 00 00" the maximum can be "7F FF FF FF" at any point in time. Basically, you are going to be working with the minimum, maximum, and all in-between. The way we get those in-between bytes are by having the "Expression" increase the value of the "Minimum", until it has reached the target value of "Maximum", completing the process, and looping.

Instead of bytes, we will be using pure number to make this a little easier to understand. Lets say we are starting at 1, and we want to get to 30. Here we have are minimum and maximum [1,30,]. Now we need to give it a command to get to 30. If we want to get everything in-between of 1-30, we must simply add "1" until we reach the goal, so the whole command will be [1,30,+1]. This will make us reach to 30, and once the value of 30 has been reached, it will loop, and the process will continue once again.

Here is a list of all the operations that can be used in the "Expression".
  • "+" This will ADD
  • "*" This will MULTIPLY
  • "/" This will DIVIDE
  • "-" This will SUBTRACT
  • If no operation is given, the packet editor will assume you are adding.
Have fun hacking and let me know if I got something wrong!
If you find this useful, let me know by giving a little "Thanks"