Normal Chat Msg
Code:
0000 34 3a 00 00 00 03 00 00 52 6c 00 10 00 00 00 03 4:......Rl......
0010 67 35 25 03 00 01 00 06 00 0a 59 75 6b 69 74 73 g5%.......Yukits
0020 75 6b 69 00 06 00 13 54 68 69 73 20 69 73 20 61 uki....This is a
0030 20 63 68 61 74 20 6d 73 67 00 chat msg.
Party Chat Msg
Code:
0000 60 34 00 00 00 00 bc 69 78 a8 85 05 ab 64 43 0e `4.....ix....dC.
0010 70 a3 29 60 0d 4d 0f 67 e3 6d 40 06 af 6a 94 a0 p.)`[email protected]..
0020 20 56 d6 c3 51 fb 97 af 9a f9 56 37 5a 71 7b 3e V..Q.....V7Zq{>
0030 40 4f 2c 5a @O,Z
Whisper Chat Msg
Code:
0000 b0 38 00 00 00 00 a1 f8 73 39 39 bd d4 63 15 68 .8......s99..c.h
0010 dd ce ce a1 0d ab fd 0f b3 50 81 48 d8 d5 00 22 .........P.H..."
0020 85 6b 7f be 18 3d ea 83 bd 66 9d 9a a7 50 15 d6 .k...=...f...P..
0030 97 92 a9 d0 1f 3f 99 dc .....?..
If you look carefully you can see that the normal chat is not encrypted and you can see my char name along with the msg "This is a chat msg"
Party and Whisper Chat are encrypted and seem to use an id system unlike the normal chat which clearly shows your char name.
I do know both party and whisper use XOR in that each byte is done in this kind of way "xor 15, xor 30, xor 45, etc". So with a party msg that has say aaa which looks like this:
Code:
0000 70 25 00 00 00 00 a6 bd 4a b3 39 eb 02 0e 57 ef p%......J.9...W.
0010 a7 cc 09 63 6c 18 fe cc ba 98 76 57 55 25 09 1e ...cl.....vWU%..
0020 29 5d 2a 3b 69 )]*;i
You'll find that turning the values to decimal values:
Code:
9 with an xor15 becomes 6
30 (1e) uses an xor30 to become 0
41 (29) uses an xor45 to become 4 (This is the length of the msg. It includes itself and the number of bytes of your msg)
93 (5d) uses an xor60 to become 97 (or "a")
42 (2a) uses an xor75 to become 97 (or "a")
59 (3b) uses an xor90 to become 97 (or "a")
105 (69) uses an xor105 to become 0
Unfortunately once you add a fourth byte to your msg (eg another "a") the whole msg changes like so:
Code:
0000 70 26 00 00 00 00 d8 36 60 7d a2 b3 8a 0e 2c 87 p&.....6`}....,.
0010 c1 65 16 c3 b6 22 7b d0 b8 95 20 4c b8 75 75 a2 .e..."{... L.uu.
0020 2d 38 89 13 4c 6c -8..Ll
Whisper Packets are a little different.
This is "aaa":
Code:
0000 c0 29 00 00 00 00 7c 73 ec a6 f2 4e 23 f5 9c 6b .)....|s...N#..k
0010 31 77 1b 0d b6 7a 98 5e 74 5c 65 01 81 f7 fd 3d 1w...z.^t\e....=
0020 bd 58 86 9a 1c 86 9f bd ba .X.......
This is "aaaa":
Code:
0000 c0 2a 00 00 00 00 ca a0 60 64 0f a7 85 21 c9 a0 .*......`d...!..
0010 eb 96 b0 3e 54 fa ae cf 09 4f c3 b8 e6 00 18 8b ...>T....O......
0020 59 1c be cd 04 a7 9f bd db 98 Y.........
This is "aaaaa":
Code:
0000 c0 2b 00 00 00 00 3d 14 25 cd d6 bf 49 d7 e5 3a .+....=.%...I..:
0010 ad 0f 07 f7 85 02 39 e7 68 e3 1a 69 98 11 eb 26 ......9.h..i...&
0020 63 aa a6 0e 47 3e 9f bd db f9 76 c...G>....v
This is "aaaaaa":
Code:
0000 c0 2c 00 00 00 00 9c 1d ca bf ac aa 7e 68 55 64 .,..........~hUd
0010 37 c0 9c 44 d5 9b f7 15 7e a2 56 71 ac e3 b4 6e 7..D....~.Vq...n
0020 b0 fe f4 14 85 32 9f bd db f9 17 54 .....2.....T
Whisper doesn't seem to have the same change that Party msgs have but it probably uses the same system of xor.
Since a has a decimal value of 97
Code:
32 to 50 then xor it by 97 to become 83
9f to 159 then xor it by 97 to become 254
bd to 189 then xor it by 97 to become 220
db to 219 then xor it by 97 to become 186
f9 to 249 then xor it by 97 to become 152
17 to 23 then xor it by 97 to become 118
The first byte changes depending on the length but the rest seem to hold a pattern of -34
On a side note the very last byte of any msg always equals zero.