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


Reply via email to