views:

118

answers:

7

Hello guys,

I need a solution of this question " How can I restrict a software for only 1 time use " Means binding a software to only 1 Pc for only 1 use ...

Hoping to get some ideal answers .. Please help me.

Thanks

+6  A: 

I know it's not the answer you're waiting for but you can't do it.

The best you can make it call home at each start. You will record the machine signature and only allow one start for that machine.

However:

If your application is very good, it will be cracked sooner or later

If your application is nothing special, nobody will bother.

Developer Art
Well, there are DRM approaches, activation and whatnot. So while I agree that it's probably not possible in this case for the OP, the answer is technically not entirely true.
Pekka
@Pekka: which DRM approach works reliably and is un-crackable? Without pretty heavy support from the hardware, the OS, all drivers and all involved software, it'll still be crackable (and even dedicated hardware can be cracked).
Joachim Sauer
The OP was not asking for an un-crackable approach, but for an approach. While I personally hate these technologies, there are DRM and other solutions around that provide at least *some* protection. Anyway, the OP doesn't sound to me like he has the resources to get into this, nor the real need.
Pekka
DRM is impossible (http://www.escapistmagazine.com/articles/view/columns/experienced-points/5930-The-Impossible-DRM). You have to give the user the key, and once you do they can copy the program.
Matthew Flaschen
Matthew: That is a classic straw-man argument. DRM is not impossible, that's a ridiculous comment.
Noon Silk
DRM is sufficiently possible for many end-users to be unable or unwilling to get around it, which is what counts in the end. It's not that I am particularly fond of it, but that's the reality.
Pekka
Nobody wanted DRM to work more than the music companies. Their abandoning it speaks louder than our words.
Matthew Flaschen
+1 for If your application is very good, it will be cracked sooner or laterIf your application is nothing special, nobody will bother.
fastcodejava
@Matthew Flaschen, I am working on a copy of Windows right now that, had I not activated it, would have ceased working within 30 days. I have 2-3 applications on my machine that do the same. How is this not DRM in action? Plus, the fact that the music industry is abandoning DRM (thank god!) has more to do with customer acceptance than with technology.
Pekka
Pekka, Windows 7 DRM was broken soon after (if not before) release (http://www.thetechherald.com/article.php/200947/4805/Windows-7-activation-crack-comes-as-no-surprise). It is a major hassle for ordinary paying customers, but no obstacle to people determined to infringe.
Matthew Flaschen
Not to mention people who have no access to internet (due to its nonavailability in the area or too high prices).
Developer Art
+2  A: 

You can't. It won't work. Even if you want it to.

Matthew Flaschen
A: 

Well, it's pretty trivial (depending on the language).

If it's Java, you can just delete the class file, and they won't be able to re-run it (because it deleted itself).

In other languages, you can adopt similar approaches.

Of course, it's not ideal, not impossible to divert, and generally fairly ridiculous, but it's a "solution".

Noon Silk
Heh, or you could do `if time() > xyz exit ("Program has expired");`
Pekka
A six-year old could figure out they just have to keep a extra copy on a USB drive.
Matthew Flaschen
I'm surprised this is downvoted. It's technically accurate, and I provide the comment that it's not foolproof, but it's an implementation. On that basis, I consider the downvote to be pretty meaningless. @Matthew: Yes, I made it clear that it's not perfect. But it *is* run-once. (You're running a *copy*).
Noon Silk
+1  A: 

Are you trying to make sure the software is only installed ONCE, but can be used by the user who installed the software as much as the user likes?

.. or do you want to make sure the software cannot be run more than ONE time?..

tkalve
A: 

Make it a web application. Send one-time keys to access it to your customers (using 'normal' mail). Hire lawyers to sue everybody who sells these keys on ebay. Make sure the keys are truly random and unpredictable and large enough (lets say 1000 digits) that a decent brute-force cracker has no chance of ever finding a match.

Alexander Gessler
+1  A: 

Any software solution will fail or be circumvented.

If it's very important, then a single use dongle would be best but the software would still be cracked to allow it to work

So, supply the software with a sealed mini PC that self destructs...?

gbn
+1: I thought this would be impossible, but this idea might actually work. I'd suggest warning the user a few seconds before the self-destruct (unless you want to be *really* sure that no information about your software leaves the room).
Mark Byers
Thanks. It's a very flippant answer, but it's a nonsense question unfortunately...
gbn
+2  A: 

Set up a server and let the user enter a onetime password when he starts your software. Then check the onetime password inside the server and abort your client, if the onetime password was already used.

And as addon: transfer some important functionality to the server, so even a cracked client can't do without the server.

tangens