Do you think I could just leave this part blank and it'd be okay? We're just going to replace the whole thing with a header image anyway, right?
You are not logged in.
This is a simple tool I created, hopefully someone will find it useful.
It converts the packets being sent/received from Everybody Edits back into the actual Message format.
Simply copy the hexadecimal data into the program and press enter, and it will return the data contained inside.
Screenshot:
Downloads are available at:
http://eechat.host22.com/directory/Files/EEDecode/
As usual, commentary/suggestions/etc are welcome.
Changelog: [+ add, - removed, % fixed, ! todo]
v1: [+] internal message class, reading/writing from byte hex v2: [+] commands '.commands', creating messages within console v3: [%] fixed bugs within creating messages (bool cases & readkey/read) v3: [+] command '.createfrom (hex)' v4: [!] clean serializer, remove/replace/recreate bytewriter
Last edited by ?tilla (Jun 3 2013 4:44:28 am)
*u stinky*
Offline
A bit of help would be nice... such as, a way to analyze the packets for use in this program.
A bit of help would be nice... such as, a way to analyze the packets for use in this program.
Well, I kind of assume that the majority of people who are going to be playing with packets are going to be using WPE primarily; I don't see any reason to integrate a sniffer/editor when there is dozens around.
For example, in a "say" message, the received data (..say..Hello World!.) would look like this:
83 C3 73 61 79 81 CC 48 65 6C 6C 6F 20 57 6F 72 6C 64 21 00
When decoded, it will show it as:
msg.Type= say, 3 entries
msg[0] = 1 (0)
msg[1] = Hello World! (6)
msg[2] = False (8)ByteArray[131_195_115_97_121_129_204_72_101_108_108_111_32_87_111_114_108_100_33_0]
Or for more intelligible purposes:
A simple movement packet being received (..m..@0 h&u...@w.......?.f.5..j..........?........@............):
8C C1 6D 81 03 40 30 20 68 26 75 80 BA 03 40 77 00 00 00 00 00 00 03 3F EF 66 F8 35 F4 CC 6A 03 00 00 00 00 00 00 00 00 03 3F F0 00 00 00 00 00 00 03 40 00 00 00 00 00 00 00 81 80 80 00 00
would show up as:
msg.Type= m, 12 entries
msg[0] = 1 (0)
msg[1] = 16.1265892063973 (4)
msg[2] = 368 (4)
msg[3] = 0.981319527991571 (4)
msg[4] = 0 (4)
msg[5] = 1 (4)
msg[6] = 2 (4)
msg[7] = 1 (0)
msg[8] = 0 (0)
msg[9] = 0 (0)
msg[10] = False (8)
msg[11] = False (8)ByteArray[140_193_109_129_3_64_48_32_104_38_117_128_186_3_64_119_0_0_0_0_0_0_3_63_239_102_248_53_24_204_106_3_0_0_0_0_0_0_0_0_3_63_240_0_0_0_0_0_0_3_64_0_0_0_0_0_0_0_129_128_128_0_0]
Regardless of it's use, the source code can be nifty to look at, and modified to fit alternative purposes.
*u stinky*
Offline
Capasha did once similar tool, I guess.
Capasha did once similar tool, I guess.
I don't recall him releasing a tool like this at all.
*u stinky*
Offline
Yea he did do a tool like this, it's still available, and supports quite a lot including other games.
I'll take your word for it then. This tool works as well for other games using PlayerIO.
*u stinky*
Offline
Is it possible to send these packets with parameters?
Sending "clear", "save", "wu", etc. work fine, but I'm having trouble sending things like "b", "name", etc.
For example, if I wanted to change the title to "foobar", what would I send?
(Before someone says something stupid like "it's con.Send("name", "foobar")", I know. I'm talking about packets through the socket, not through PlayerIOClient)
Yeah, well, you know that's just like, uh, your opinion, man.
Offline
msderp wrote:Yea he did do a tool like this, it's still available, and supports quite a lot including other games.
I'll take your word for it then. This tool works as well for other games using PlayerIO.
I think he/she means the EE message decoder thing when it can see the messages.
Offline
Is it possible to send these packets with parameters?
Sending "clear", "save", "wu", etc. work fine, but I'm having trouble sending things like "b", "name", etc.
For example, if I wanted to change the title to "foobar", what would I send?
(Before someone says something stupid like "it's con.Send("name", "foobar")", I know. I'm talking about packets through the socket, not through PlayerIOClient)
You cannot send packets like "b" because that's a server reply, and doing so will possibly result in your socket connection being closed forcibly by the server because of malformed packets.
To send "name", "foobar" through a socket connection
You would have to send 81C46E616D65C6666F6F626172 to the server. That is, a byte array of:
56_49_67_52_54_69_54_49_54_68_54_53_67_54_54_54_54_70_54_70_54_50_54_49_55_50
*u stinky*
Offline
Can somebody re-upload the file? The Atillax's web is down.
Offline
Can somebody re-upload the file? The Atillax's web is down.
Offline
I posted to another topic regarding this old tool, and suggested that they use the BinarySerializer from OpenPlayerIO instead.
It'd involve having to do some actual programming though, so I'll just release this nifty little GUI that works exactly the same way, albeit in a more user-friendly fashion.
It includes the source code, and the binaries are in the bin/Debug folder. It isn't very pretty source, but it's functional and allows exporting the messages you create as a SPT or raw binary file, and allows importing from SPT or raw binary file, or you could import from hexadecimal or export to hexadecimal.
You specify the message type and add the message arguments on the left, and it will live update the hexadecimal output of the serialized message on the right. You can edit the hexadecimal on the right and it will update the message on the left as well.
https://mega.nz/#!AEsgAYyL!FeKR4o1dMaGG … NH9wbx9xHM
*u stinky*
Offline
[ Started around 1732199045.1754 - Generated in 0.221 seconds, 11 queries executed - Memory usage: 1.57 MiB (Peak: 1.74 MiB) ]