for protection of our software, we are searching for a way to read some
hardware information of the computer, the program is being started on. For
example:
- ID of the hard-disk (this would be the best way)
- ID of the processor
- ...
Does anybody know a way to do this?
Best regards,
Christian
There was a long discussion about this recently on (one of) the Advanced
Java list(s) (the one run by discuss.develop.com).
The upshot / consensus then was that not only is there no such thing
(even in concept) as a "machine identifier," the closest candidates for
a machine identifier are not accessible using pure Java--either JNI code
or an auxiliary program invoked via Runtime.exec(...) would be required.
I recommend you think carefully about what you're trying to do. Modern
computer systems are highly modular and things like Ethernet cards, CPUs
and disk drives are all easily added, removed and substituted or
reinitialized or reconfigured in ways that would make them appear
different to identifier extraction schemes.
Users will be annoyed if after they perform a perfectly reasonable
hardware modification they find that it renders your application
unusable because it's accusing them of illegal copying.
Randall Schulz
:> Christian,
:>
The problem I have in this area is the need for finding some reasonably
safe means of licensing software by using an identifier of some kind.
In particular, look at the FLEXlm licensing software used widely in the
industry. Their most secure method available (and they one they
recommend) is called a "hostid" value. On Windows machines, the default
value for this is the MAC address of the ethernet card which is
(supposed to be) unique. In the Java version of their software, they
only support IP address identification, which is why my app (otherwise
pure Java) had to settle for a JNI licensing library (and I wasn't too
pleased about it). Their Windows releases also support IP address and
even "drive serial number" approaches. Their recommendation against
that last is that it's potentially unsecure, since the drive can be
transplanted (which can be true of a NIC too).
I think many UNIX type boxes can report some "relatively" unique value
that they use, but not from Java. So again, I'd be interested in some
reasonable way of doing something like this in a pure Java setting. I
doubt seriously that any truly cross-platform approach will ever appear,
but I'd be happy with something that could offer a reasonable
presumption of uniqueness.
= Steve =
--
Steve W. Jackson
Montgomery, Alabama
:> "Steve W. Jackson" <stevew...@charter.net> wrote:
:>
:> >The problem I have in this area is the need for finding some reasonably
:> >safe means of licensing software by using an identifier of some kind.
:>
:> I'd suggest trying to target more honest users.
:>
:> The people who are going to try to cheat you will do so anyway...for the
:> most part. There will be some who will ante up the cash if you force them.
:>
:> There will also be legitimate users that won't use your program and won't
:> ante up any cash because of your licensing system. Anything that becomes a
:> hassle for legitimate users will hurt you.
It would be a good idea for you to live in the real world. I'm not
talking about some $49.95 off the shelf program here. I'm talking about
high end modeling and simulation software that sells for thousands of
dollars per copy. Generally speaking, our customers are honest users.
And, like a wide segment of the industry, we're using FLEXlm for license
management.
Cheers
Andy
"Steve W. Jackson" <stevew...@charter.net> schrieb im Newsbeitrag
news:stevewjackson-200...@corp.supernews.com...