Is there any way to copy-protect a program for the HP48G/GX?
I have developed a really neat and useful program and want to give it
to my friend but don't want him to be able to give it to anyone else
(via IR or serial). I know this is probably virtually impossible,
but is there a sneaky way of making it only work on HIS machine?
(eg. password protecting, machine dependency, etc...)
I would appreciate any good ideas.
Cheers,
-----
_____ _ _ ____ _ _ "I make mistakes,
| __ \ | | | | | _ \ | | | | therefore I am."
| |__) |__ _| |_ __ | |__ | |_) | __ _ __| | __| | ___ _ _ _ __
| _ // _` | | '_ \| '_ \ | _ < / _` |/ _` |/ _` |/ _ \| | | | '__|
| | \ \ (_| | | |_) | | | | | |_) | (_| | (_| | (_| | (_) | |_| | |
|_| \_\__,_|_| .__/|_| |_| |____/ \__,_|\__,_|\__,_|\___/ \__,_|_|
| |ralph....@icis.on.ca
|_|http://www.icis.on.ca/homepages/Ralph
>Is there any way to copy-protect a program for the HP48G/GX?
>I have developed a really neat and useful program and want to give it
>to my friend but don't want him to be able to give it to anyone else
>(via IR or serial). I know this is probably virtually impossible,
>but is there a sneaky way of making it only work on HIS machine?
>(eg. password protecting, machine dependency, etc...)
what does this program do? If everyone who writes program thinks like you
do then we wouldn't have any programs for our calculators. If you write
some thing that some else can use why not post it? stop being
cheap. :)
Othniel Rawlins
ostc...@aol.com
Password protection would work, but if he copies the program
to someone else, why wouldn't he give away the password too?
His word will be the best protection.
There is also another way: post it here and forget about protection.
If everyone were thinking like you, my HP wouldn't be much fun...
Oscar Gustafsson, os...@lysator.liu.se
What's so stupid about it? How should one know the serial number isn't burnt
in to some chip inside the calculator? It expensive enough, that's for sure.
[ Mikael Claesson, www.canit.se/~beverage ]
HIya, Ralph.
There are folks who actually work with software who may have more
elegant ideas, but as a prominent hardware weenie, I'll regurgitate
the obvious.
1. Send the data on a ROM card. This obvoiusly carries the burden
of figuring out how to get the blank OTP ROM card and program it.
Or, I suppose you could put it on a RAM card and somehow permanently
enable the Write Protect switch. The 48 normally refuses to copy
objects from a card which is ROM or write-ptotected RAM.
2. Write the code so it refuses to run if the ROM revision letter
in the calculator is not correct. Determining ROM revision is a
simple task (check the FAQ or manuals if unsure). You can further
discriminate between G and GX calculators by requiring that the machine
have more than 32k of RAM free (or less, if your friend has a G). There
may be other ways to tell a G from a GX which I have forgotten.
These tactics will not completely halt proliferation of your code, but
you may slow the process significantly.
3. Find a trustworthy friend. (Sorry :] )
4. This one requires some work, and much more expertise than I claim
to posess. Ready? A serial (wire or IR) transfer involves some
prophylactic data integrity tests. Basically, the objects sent from
machine to machine have to be structurally sound. SOoooo...
When you install the program on your "friend's" machine, run and delete
an authentication routine which creates a data block in an otherwise
unused area of RAM. This data block would contain a signature or key
which your program can find and verify; but it would not have the kind
of structure necessary to survive a data transfer. Be aware that you
really have to know your machine for this to work: you must know the
RAM memory map so you know where and how to create this key; and you
must create this key such that it will not cause the machine to
crash. You would also have to think about the kinds of activities
that would delete the key accidentally. (I know you'd hate to have
your no-good-son-of-a-cattle-ruster-yellow-bellied-thievin' dear friend
unhappy with you because the key disappeared and the program stopped
working. It might damage the trust which underlies your friendship.)
As I said up front, this is an area where I am certainly NOT an expert
or even competent. And true hackers will probably know how to defeat
such a protection system given, as Charlie Patton suggested, a good
three or four minutes.
Best of Success!
Dave.
--------
I don't speak for HP when I post here.
It needs an address to run.
If it has an address, you can get to it.
If you can get to it, you can copy it.
If it won't run, you can decompile it and find out *why*.
You can then "fix" it and bingo!
This assumes you have a knowledge of sys-rpl and ML and are a
hacker of sorts... :)
Not that this helps the discussion thread much, but I thought you
might like to know....
-Bye
-Richard
The intriguing thing to me is the almost immediate backlash to the idea.
I certainly has raised a lot of hackles (razed a lot of hackers?).
Why the fuss?
---
========================================================================
Danny Bersch | There is only one basic human right, the right
Motorola | to do as you damn well please. And with it
SPS, LATG, ATO, SST | comes the only basic human duty, the duty to
ber...@sst.sps.mot.com | take the consequences. -P.J. O'Rourke
========================================================================
Cheers :)
John
*****************************************************************************
John D. Edwards
Department of Electrical Engineering
The University of Western Ontario
jedw...@julian.uwo.ca
*****************************************************************************
Well, Danny, I think this issue is as old as the Pyramids, at least.
The old Egyptian Pharohs got so used to owning things when they were alive
that they wanted a good way to take it with them. Or at least, they wanted
the ability to claim what was theirs even when they weren't around to claim
it. Zowie! Pyramids. Ya keep your own bones and the mummified remains of
yourself intact (well, neatly segregated and dissected) and you keep some
majorly cool jewels and such nearby, and you pretend they're all yours.
On the other side you have the robbers (and respectable archaeologists)
who come by, notice all this great stuff, and find a good reason to haul it
all away. What's the trick to the good reason business? You have to be
able to redefine property rights.
Let's be serious, property rights are as strong and unchangeable as Mount
Saint Helens. Given the right kinds of pressure, property rights appear from
nowhere. Given the right time and forces, zippo. They're gone again. The
Pharohs among us want to keep what's ours. The Archaeologists among us feel
we have a moral right, almost a responsibility, to acquire and use things
that we know belong(ed) to others who just happen to be absent at the moment.
Today, the immediacy of communication, along with the detachment inherent in
modern communication, combine to make this natural forage-and-horde tendency
do really weird things. We have genetic engineers who patent genes derived
from other people. We have an Internet where copyright notices are mostly
useless. We have separatist extremists of every race, creed, and variety who
want want to be left to themselves in peace and quiet, and will appear on
international media programs to detail how much they value their privacy.
We have organizations that buy and sell personal data, while keeping their
client lists confidential.
And we have simple, happy, amatuer software scribblers. If they want everyone
to know what they've written, good for them. If they want to keep it private,
big deal. Some folks get off on hacking others' code. Jolly good. The
hackers define property rights in a way that justifies what they like to do.
And some codewriters define property rights such that they feel compelled to
take proactive measures. In my opinion, there are worse things, and better
things, to worry about.
Dave.
--------
Not speaking for HP, of course. HP might well have a different opinion.
Or two.
There's also some way to do this without a card, but I forget how.
Jack Aker
Load the private program (from card, tape, disk, wand, or whatever),
then press GTO .. and wait for it to stop packing. Then press PRGM,
CATALOG 1 and R/S right away to stop the catalog, SST slowly and
carefully until you see .END. and then immediately press ALPHA,
back-arrow (see 4094 END), backarrow (this nukes the PRIVATE END),
SST, SST. The program is no longer PRIVATE. I believe that this
works on every version of the HP-41.
-Joseph K. Horn- EQU jay...@kbbsnet.com
Disclaimer: It's not a bug; it's a feature.
--
[*] Modem: (818) 886-0872 KBBS LOS ANGELES! ISDN:(818) 727-9218 [*]
[*] http://kbbs.kbbsnet.com Telnet: 204.96.25.7 Email: in...@kbbs.com [*]
I absolutely agree. What did you write your program with? Did you use
one of the free programs from the net, like an assembler? Have you
thought how you would have programmed your program without being able
to use it?
Btw., if it is really your friend, then you should be able to trust
in him not to give away the program.
Peter
*********************************************************************
Peter M. Geiser
Seeblickstr. 10
9010 St. Gallen
SWITZERLAND
geiser...@ch.swissbank.com
*********************************************************************