Here is a tutorial for WPE:
SO WHAT DOES WPE ACTUALLY DO?
when you start recording a program, you will record what it sends to the server.
so when you say "hi" on a chat
it will send a packet to the server with the message "hi" in it
there is a big chance u will find something like this
000000: 6d 73 67 00 68 69 00 00 00 00 00 00 00 00 00 00 msg.hi..........
this means,
the 6d 73 67 00 68 69 00 00 00 00 00 00 00 00 00 00 is the hex
and the msg.hi.......... is the ASCII
so this
6d 73 67 00 68 69 00 00 00 00 00 00 00 00 00 00 <in hex
means this
msg.hi..........
in ASCII
pretty simple right ^^
so that means
6d 73 67 00 68 69 00 00 00 00 00 00 00 00 00 00
msg.hi..........
see, the msg part in ascii
is 6d 73 67
and the hi part in ascii
is 68 69
so that is what the chat sends to the server
msg means its a message
hi is what the message is
wpe is used for editing this information
so when you try to filter something.
what it does is simple.
when you type 6d 73 67 in search
and 00 00 00 in modify
the packet will be modified into
....hi..........
there are also several ascii into hex translators
so if you want to change something in a packet its really easy.
So now we are done on learning what WPE ACTUALLY DOES! Its time for us to understand how to use it.
WPE Pro Tutorial
We'll
be using a game called Vagabond's Quest 2. There are a few reasons why
this game was picked. Firstly, it's beta. That means it's still under
development and there are likely to be bugs. More than likely, the
game's security is on the low-end and probably won't catch on to packet
editors yet. Secondly, it's a simple, clean client. There's not a lot
of data transfer at all. This makes it easy to sniff and watch packets.
The game code is very simple and after you see the packets you'll know
what I mean.
1] Run wpe
Start up wpe and make sure your screen looks something like mine.
2] Run your target program
In this case, run vagabond's quest 2 beta. I'll refer to this as vq2 from now on.
3] Specify your target program
In wpe, hit the <target program> button. Find vq2 from the list, select it, hit open.
4] Start logging [sniffing]
let's
get to sniffin. hit the triangular button that says "start logging"
when you roll your mouse over it. notice the packet meter. each time a
packet is sent or received, the number will increment by 1.
5] send a message or watch closely
quickly
send a message or watch what happens in the game closely. recognize
when text is sent, when an action is sent, etc. everything you see is
most likely delivered in the form of a packet, which you will be
looking at in a second. i would recommend typing in something like "hi."
6] open wpe back up and stop logging
at this point you have all the information you need. hit the "stop logging" button.
7] look at the packets
For
this example, i have several packets. the function tells you whether
the packet was received [recv] or sent [send]. the packets you receive
are almost irrelevant, they only show you the data the server sent you.
you can't do a whole lot with this. a packet editor cannot edit packets
sent to your computer, only packets you send to the server. so look at
the packets with the tag "send."
my packet sent is 20 hi.. the
20 is the command to send text. hi is what you sent. the two periods in
most cases signal that the packet has ended. you can figure out other
packet sends and their commands by experimenting further. go back and
enable logging while you click some buttons or just send more text.
you're only going to figure this out by trying for yourself.
the
source is where the packet comes from, it's followed by the port. my ip
address is sent with packets i send, with a port that has been opened
for access to this game. the destination is where i am sending my
packet, or the server's ip address. it also uses a port. size indicates
how big the packet is obviously, but the packet itself looks like how
it appears in the source and destination. the function column has
converted the packet code into text you can understand...
look
again at the packet i sent. 32 30 20 68 69 0D 0A. 32 and 30 are
integers [32 = 2, 30 = 0]. together they send the command 20 to the
server, which could only be the command to send a message to everyone
in the chatroom. any number that starts with a 3 is followed by it's
integral value after it [30 = 0, 31 = 1, 32 = 2, etc]. the 20
represents a space, followed by 68 and 69. each of these represents a
letter [68 = h, 69 = i .. notice the pattern]. 0D 0A will signal the
end of the packet, also notice this is on every other packet too.
what would happen if you sent the following packet: 32 30 20 68 69 20 68 69 0D 0A
break
it down: you got 32 30 (20). that triggers a text-to-everyone type of
function on the server to process. it realizes that you want to say
something, now it decides what. 68 69 will print "hi." 20 is a space,
and you just repeated the code twice, so the output would be: "hi hi
hi." quite annoying, i woudln't recommend sending a packet like this.
but how do you send the packet?
8] go back to wpe to send your first packet
not
convinced that packet editors are cool? let's send your first packet to
the server, with no interaction at all with the game client. just
simple packets of data. maybe this will help you understand how most
online applications/games work. in wpe, click on the <send> tab
[it's on the actions console]. this is where wpe pro really shines. it
will do all the dirty work of copying the packet and sending it for you
with all the needed data automatically collected. in older versions,
this became a long process that required some patience. first of all,
right click on the packet of data you want to send to the server, such
as the text that said "hi." move down to select either "send." if you
hit send, go back to your game and you will see that text appeared on
the screen that you didn't even type. you didn't believe me did you?
what
just happened? you just sent a packet of data, identical to the one you
just sent previously. the only difference: the code was carried out in
the game by a simple command button. by sending the packet, you sent
the same message, but without pushing any buttons. it's just the same,
and hard to grasp at first, but it all comes down to data. whatever you
send will get processed. the game may put restrictions on you in the
client [such as having to wait a second before entering another line of
text]. these are where packet editors become very handy, because you're
no longer going through the restrictions of the client. you have direct
access to the packets and the rate at which they are sent, or what is
contained in them. from here, you can use wpe to have packets sent at a
constant, automated rate [i would not recommend this for making
flooders, it's not really that impressive and it will probably result
in your account being banned if the game uses moderators, and vq2 does].
9] adding packets to your send list
if
you want to send a chain of packets at once, or you just want to be
able to store them, save them, and manipulate them in an organized
fashion, you should know how to send them to the packet list. right
click on any packet sent [i.e. "hi"] and move down to "add to send
list." this will place that particular packet into a list. double click
on the packet to edit the data inside of it. be careful not to adjust
the size unless you are adding on to the packet and remembering to
include the 0D 0A statements at the end. you must check the box next to
the packet before sending it, but once you are ready to send, just
click the play button. whichever packets have a checkmark will send
simultaneously.
* troubleshooting: in the event that your packets don't send, you need to do one of the following:
go
to the original sent packet and right click on it. move down to "set
send list with this socket id." sometimes the socket id will change,
and if it doesn't match, your packets won't send.
most of the
time it should be fine if you maintain a connection with the server,
but if you for some reason lose the connection, or close the program,
etc. then you need to adjust that socket id. if you find that doesn't
work, re-log some packets that you send [repeat step 5-6] and try
sending that socket id to the list.
if your sends don't work at
this point you are doing something wrong [such as you forgot to choose
the target program, if it happened to close]. re-select your program as
the target program.
10] packet filtering
The
final thing i'll show you is packet filtering. A filter will look for a
packet being sent [not received] and it will change it to something
else. i have not found a use for this except for maybe setting up a
script or something. say you want to type "message" in the game and
instead of that appearing, you want the text "hello how are you?" this
is quite easy to setup. try to get around in wpe doing the following:
go to the <filters> tab. double click filter 1 to open it up and configure it.
under
mode: select <advance>. because packets you modify in normal mode
must be the same length as the packet sent, this can cause you lots of
grief [thanks to realmhog for pointing this out to me in an earlier
version of wpe]. just trust me when saying advanced mode is better, and
you are less prone to find problems with this mode.
enter the
same data in the search column as the packet you sent. if you add the
packet to your list and open it up, you can select the packet and copy
it. this becomes useful for long packets of data. in the example we
used to send the text "hi" to the server, the code was: 32 30 20 68 69
0D 0A. enter that in the search column. next enter in the modify
column: 32 30 20 68 69 20 68 69 0D 0A.
The above will search [or
filter] any packets that match 32 30 20 68 69 0D 0A and convert it to
32 30 20 68 69 20 68 69 0D 0A. before anything else, make sure you
select the checkmark next to the "filter 1." hit the enable "enable
filter" button. this is important to turn your filter on and off, so
don't forget to do this or your filter won't even activate. finally,
type "hi" in the game now. notice something odd? you will notice that
what shows up is not exactly what you typed. this is because before
your packet was sent to the server, it was modified.
There are a
few other options included in packet filtering, but it's pretty simple
really. the biggest challenge for you is finding a use for filtering
the packets. the whole point is to modify an outgoing packet. most of
the other options on the filter dialog i have never used. I have used
the <block> function before which will simply block the packet
from ever being sent to the server. some of the packet formats may
differ, such as the difference between winsock 1.1 and 2.
*note:
Sometimes in VQ2 when packet filtering, you need to type something else
to see the filter. For example: If you just type "hi", the server may
send nothing back, but your packet was filtered. You can send a blank
message the second time.
Understanding packet filters
If you
really want to understand more, just take the tutorial i wrote and use
it to help give you a general understanding of packets. I won't spoon
feed you all the how-to's and information, go figure it out. Seriously,
play with the packet editor and see what happens. You're never going to
learn anything unless you go and try to actually figure it out.
Final
note: Be careful when using packet editors. Some games don't allow the
manipulation of packets, and if they detect it they will ban you.
Remember that this tutorial was written for educational purposes only
and no responsibility is taken for how you use the programs or any of
the WPE tutorials.