hi!
i just checked out where they patched my Octopus program,
and this is what they have changed:
BEFORE
---
00001dd4 defc000c ADDA.W #12!$c,A7
00001dd8 b640 CMP.W D0,D3
00001dda 6622 BNE L169
00001ddc 3f00 MOVE.W D0,-(A7)
---
AFTER
---
00001dd4 defc000c ADDA.W #12!$c,A7
00001dd8 b640 CMP.W D0,D3
00001dda 4e71 NOP
00001ddc 3f00 MOVE.W D0,-(A7)
---
now.. as you can see.. all they did was patch the program so
instead of branching, it didn't..
my original code looked as follows:
---
if (CHECK_REG(regCode)) {
setRegistrationCode(regPrefs, regCode);
registered = TRUE;
....
}
---
so.. what they have done, is regardless of the check, it sets
the 'registered' variable to TRUE.
*but*.. this is the wierd thing...
the line:
setRegistrationCode(regPrefs, regCode);
only stored their code that they entered.. so, technically,
when they restart the program.. in my InitApplication routine,
this is done:
---
registered = CHECK_REG(getRegistrationCode(regPrefs));
---
so... technically... :) their patch should work for the current
session (of running the program).. but when they exit, and come
back in.. the InitApplication routine should redefine the
variable 'registered'..
but... strangely.. it doesnt! :)
the code stored in the setRegistration() call will NOT match
the code required.. hence 'registered' should be set to FALSE.
any ideas?
az.
--
Aaron Ardiri
Lecturer http://www.hig.se/~ardiri/
University-College i G�vle mailto:[EMAIL PROTECTED]
SE 801 76 G�vle SWEDEN
Tel: +46 26 64 87 38 Fax: +46 26 64 87 88
Mob: +46 70 352 8192 A/H: +46 26 10 16 11