As far as Bert....
I dissasembled it a couple of ways, neither makes a lot of sense: (Mind you I don't know much about assembly, and without knowing the exact location where the overflow occurs makes this difficult. )
try 1:
AND [BX+SI],AH
DB C0
ADD [BX+SI-33],AL
ADD AL,D0
JMP 0108
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
The DB C0 makes this a look kinda wierd, it defines a byte then never refernces it that I can tell. (and I don't think C0 is a valid opcode. Anyone?)
try 2: (removing the first 20, perhaps the overflow doesn't start right after the header?)
AND AL,AL
ADD [BX+SI-33],AL
ADD AL,D0
JMP 0108
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
This looks a little better, but that first line AND AL,AL thows me, as the result would be..... AL!
Please correct me if I have missed the obvious!
Morden.