the snake
hex value + xor instruction
Sun Nov 15 00:40:00 1998


Hello Abott,
i'm using Magenta answers, he is very clear, and it save me
to handle with English writing :

M=> m => 109 (6D)
A=> a => 97 (61)
G=> g => 103 (67)
E=> e => 101 (65) 733(2DD) value stored in ebx after the N=> n => 110 (6E) / loop has finished
T=> t => 116 (74) /
A=> a => 97 (61) /

Note: the values of the program are in hex format. The hex values are the ones in (). After the loop has finished, the values get xored two times. The first Xor:

Xor ebx(2DD),89 => ebx(254) <---- the values changd for diffrent
names !!!
After this Xor a second one follows:

Xor ebx(254),33 => ebx(267) <---- the values changd for diffrent
names !!!
The last action which modifies the serial is:

Inc ebx(267) => The final serial is in my case: (268)

Remember this value is still in hex format, you need to convert it into decimal. I used the ? ebx (in Softice)

now , for the Xor instruction :

Xor is logic operation such as and or etc. It works how explainded here:

1 1 1 1 0 0 0 =>120 decimal or 78 hex lets xor it with 110
1 1 0 1 1 1 0 =>110 decimal or 6e hex
-------------
0 0 1 0 1 1 0 =>22 decimal or 16 hex

0 xor 0 =>0
1 xor 1 =>0
1 xor 0 =>1
o xor 1 =>1

You have to watch at the binary value of a Number etc.
Xor uses the binary values, and does what is explained in the little sheme.

Hope this could help ya.

the snake