Quote:
Originally Posted by Esamu
Can you tell us how this works?
|
Basically, the chat and the stall, ingame, uses 16-Bit Unicode to show text,
unlike the other text values ingame.
16-Bit Unicode has 2 bytes (instead of one byte, which 8-Bit Unicode has).
for example, the letter "A" in a the regular 8-Bit Unicode looks like this:
0x41
while the letter "A" in the 16-Bit Unicode looks like this:
0x4100
Now, ingame, the 2nd byte is being used in foreign languages such as Chinese, Korean, etc.
for example:
0x0101
If someone sends a chat packet with the letter "A" it will be like this:
0x4100
so all you need to do in order to crash someone's client is to send it like this:
0x0101
or anything else as long as the 2nd byte is greater than 0.
Long story short - using Chinese & Korean in a non-Chinese or a non-Korean version makes a big mess.
they can easily fix it of course, all they need to do is to re-write the way chat and stall's name works.