This table is part of the packet encryption of an old game for which I am developing a server.
The crypto algorithm doesn't just xor the password with the message. It uses a multiple of the ascii value of the letters in the password as an index for this table/array. With the retrieved value, it then does logical and operations which null out most, but not all values.
The result of this is finally xor'ed with the corresponding letter in the message.
I mean the general idea seems nice for a software that was developed 10+ years ago and was mainly a kids game, but I wonder why someone invents such an algorithm an then puts so many zeroes in there.
Is it possible, that this table is in some way a part of a standard library function that was mistakenly used in this context? Or are these just a bunch of random values to mess with someone who is trying to reverse engineer the encryption?
20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00
20 00 28 00 28 00 28 00 28 00 28 00 20 00 20 00
20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00
20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00
48 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00
10 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00
84 00 84 00 84 00 84 00 84 00 84 00 84 00 84 00
84 00 84 00 10 00 10 00 10 00 10 00 10 00 10 00
10 00 81 00 81 00 81 00 81 00 81 00 81 00 01 00
01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
01 00 01 00 01 00 10 00 10 00 10 00 10 00 10 00
10 00 82 00 82 00 82 00 82 00 82 00 82 00 02 00
02 00 02 00 02 00 02 00 02 00 02 00 02 00 02 00
02 00 02 00 02 00 02 00 02 00 02 00 02 00 02 00
02 00 02 00 02 00 10 00 10 00 10 00 10 00 20 00