Bob wrote:

> Limiting the program to a memory card is the same as limiting the program
> to specific device.  A device that has a ROM Serial Number is a more
> better solution.

In a purely practical sense, a single solution like a ROM serial number
is NOT a good solution.  The reason is, in a 68k app at least, the
only way to access a serial number is going to be through a system
call, and that means a system trap.

And THAT means that since it's the 68000, it's going to have to be
an A-line instruction.  (Traps are missing opcodes, and Motorola
reserved the opcodes 0xA000 through 0xAFFF for use as system traps
or whatever else the operating system wants them to be.)  So, for
example, FrmDrawForm() is 0xA171.  Let's say for the sake of
discussion that the hypothetical call SysGetHwSerialNum() is trap
number 0xA833.  And let's say that suddenly everyone modifies all
their Palm apps to use this new "secure" method of locking the
software to the device.

Well, what have we accomplished?  Now it's trivially easy to locate
the registration logic within the machine language of an app!  All
you do is search for A833 within its code resources.  And the worst
part is, if everyone did move to hardware serial numbers, they'd
all be using the SAME method of protecting their software.  You
could practically write a program that would AUTOMATICALLY crack
all Palm software!

The situation right now is a bit different:  everyone uses a slightly
different method to protect their software.  So there is no one
hex code that you can search for in order to locate the registration
logic.  You have to start all over again to figure it out for every
separate app.  In this sense, diversity and variation are good!

  - Logan

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please 
see http://www.palmos.com/dev/support/forums/

Reply via email to