Welcome Guest ( Log In | Register )



 
Reply to this topicStart new topic
> Software Copy Protection, looking for ideas
mitchellmckain
post Apr 28 2005, 11:12 PM
Post #1


Premium Member
Group Icon

Group: [HOSTED]
Posts: 369
Joined: 28-April 05
From: Salt Lake City, Utah
Member No.: 4,500



I just put a computer info based algorithm in my simulator today. I am finally moving toward making a version of my relativistic physics of spacefilight simulator available on the net with some features being registration activated. Looking for a web site is part of it.

My first idea was to somehow get the physical location of the file on hard disk (haven't found a way of doing that yet either) as a basis for unique registration but then a disk defragmentation would invalidate the registration so that will not work, unless there is some way of making the file un-movable like some system file are. Although that sounds a bit unfriendly.

Any thoughts would be welcome.
Go to the top of the page
 
+Quote Post
Dream
post Apr 28 2005, 11:50 PM
Post #2


Advanced Member
Group Icon

Group: Members
Posts: 138
Joined: 17-April 05
Member No.: 4,102



ummm just have a serial sign up to go with it as it is the easiet most painless one availble at the moment
Go to the top of the page
 
+Quote Post
mitchellmckain
post Apr 30 2005, 06:35 AM
Post #3


Premium Member
Group Icon

Group: [HOSTED]
Posts: 369
Joined: 28-April 05
From: Salt Lake City, Utah
Member No.: 4,500



How does serial sign up work? Sound similar to what I am doing. I generate a number based on their computer info which they have to send me with their check then I can send them a number based on the one they sent be that will unlock registered features. Since the number I give them will not work on other computers copying will only result in unregistered copies on other computers.

Does serial signup mean that you issue copies with their own unique serial number? How is copying discouraged?
Go to the top of the page
 
+Quote Post
konedima
post Apr 30 2005, 10:49 AM
Post #4


Newbie [ Level 2 ]
Group Icon

Group: Members
Posts: 15
Joined: 30-April 05
Member No.: 4,538



i hate it when i buy something but i can't install it on more than one of my computers. and honestly, whats the point of serial keys, etc.? You (and many other people) know that a cracker's just gonna come along and crack it, don't you?
Go to the top of the page
 
+Quote Post
mastercomputers
post Apr 30 2005, 11:19 AM
Post #5


BUG.SWAT.PATROL
Group Icon

Group: Members
Posts: 626
Joined: 1-September 04
From: Auckland, New Zealand
Member No.: 27



mitchellmckain,

Nice tutorial on win32 although MS's weakpoints have always been their APIs and it's good to know your a physics teacher, you'll find programmers need someone handy like that around.

I have to say that your method has it's flaws. I've given up Reverse Engineering, well partially, other than to understand how programs work but I use to break software copy protection all the time, it was for the challenge more than anything or how I would put it, I was a bored teenager looking for something to waste my time on.

I can tell by your method, that

1) It is going to generate a number from something from the users computer, which is most likely going to be unique from someone elses computer. A lot of software companies tried and failed this method.

2) This number is sent to you, in which you generate the key from their number sent to return back to them the key that registers the program. Again another tried and failed attempt.

To say what will happen if someone attempts to break your protection is quite easy, they will discover how the number is generated, since the key you use is based on their key, they will also find in your program how your key would be checked against their key, which pretty much shows them how they will generate your keys without requiring your input. Obviously your program will have to contain the same information you use to check against being a valid key or not, since there would be no other means of actually checking your key if otherwise. (or is there?)

I have to say, software protection is really a time wasted effort, if someone wants to get in they will. Although I can tell you methods that are quite effective in at least making sure that not everyone is capable of breaking it, but the end result usually is, if it gets broken into once, once is enough, soon the answer is circulating around the web and now everyone will be capable of breaking it.

If you really want help in making your software as protected as it could be, write your protection in a crackme, submit it to a crackme site and get people to crack your software and they will write solutions to how they did it. Read their solutions thoroughly and then work on how to fix the problem, you may continue submitting altered crackmes until finally it becomes unsolved, when it reaches this stage, you know you've got a fair chance, but don't put everything on it saying it's unbreakable.

The methods that I had difficulties in solving usually were the results of finding multiple keys in multiple parts while being lead on and on and on, while also having to refer back to whether a flag was set or not set. The cryptography or even just advanced mathematics could set code crackers back and forth. The longer you keep this up, the least likely anyone would be willing to crack it unless it is important but as I say, it's not 100% foolproof, it's just more time consuming than anything.

You could work on your anti-debugger/disassembler, pack your software, etc.

In the end it comes down to what you think, would your rather work on fixing your program, or spend endless efforts on protecting it? If you spend endless efforts on protecting it, there are some people who spend endless efforts on unprotecting it.


Cheers,


MC
Go to the top of the page
 
+Quote Post
mitchellmckain
post Jun 17 2005, 07:55 AM
Post #6


Premium Member
Group Icon

Group: [HOSTED]
Posts: 369
Joined: 28-April 05
From: Salt Lake City, Utah
Member No.: 4,500



QUOTE(mastercomputers @ Apr 30 2005, 05:19 AM)
I have to say, software protection is really a time wasted effort, if someone wants to get in they will.  Although I can tell you methods that are quite effective in at least making sure that not everyone is capable of breaking it, but the end result usually is, if it gets broken into once, once is enough, soon the answer is circulating around the web and now everyone will be capable of breaking it.

In the end it comes down to what you think, would your rather work on fixing your program, or spend endless efforts on protecting it?  If you spend endless efforts on protecting it, there are some people who spend endless efforts on unprotecting it.
Cheers,
MC
*


Gosh you don't have to tell me it is not unbreakable, its just the first idea I thought of that I could implement. My first idea was to get location on disk but then realized that one disk defrag would render it inoperable. I was looking for ideas and from what you have said you don't think there really is anything better other than to make the code which computes the comparison number difficult to trace.

In any case, I am realistic. The purpose of copy protection is like the lock on your front door, to discourage the casual intruder. I did not spend a lot of time making my comparison number calculation difficult to trace, so maybe I will discourage the cracker with boredom.
Go to the top of the page
 
+Quote Post
ethergeek
post Mar 9 2007, 05:50 PM
Post #7


Premium Member
Group Icon

Group: [HOSTED]
Posts: 393
Joined: 9-March 07
From: Tucson, AZ
Member No.: 20,794



Any software is crackable, but if you want to make it a little harder, distribute the full version as a separate binary from the demo. Write into the code (not something lame like into the data section of the exe, so the code cannot be "patched out") some customer ID for those that buy the full version. When you find your software on a p2p network in pirated form, you know who to harass.

You *can not* stop software piracy...but you can get a little payback smile.gif
Go to the top of the page
 
+Quote Post
beatgammit
post Mar 19 2007, 05:50 PM
Post #8


Member - Active Contributor
Group Icon

Group: Members
Posts: 83
Joined: 10-November 06
From: Provo, UT
Member No.: 17,161



I think the simplest thing to do is to do a serial check on start-up. You can encode something using their computer name and a key stored in an ini file. You could have a hard-coded key in the program that "decodes" the ini key with the computer information. As long as somebody doesn't figure out the encryption algorithm, you should be safe, and you wouldn't have to worry about people using your software without registering. Since your program is probably not the highest of targets for fraud, you shouldn't have to worry too much about people hacking your algorithm.

Implementation:
To do this, I would convert their computer-name into a hex-representation, and then do some logarithmic function on it (choose some ridiculous base like 13 or something), and then store the result as the base. Do the reverse (an exponential function) to the key on startup, and if the result matches the computer-name, you're good to go. If not, end the program and give some insulting message box that tells them to stop trying to steal your program.


This is not copy protection, but it will not allow unauthorized use of your program, so long as somebody doesn't figure out what you did. You could use some other piece of information from their computer, such as hard-drive name/serial number, or some ridiculous piece of hardware that will never change. You could also store the result into some weird base, like base 5 or base 7. Use your imagination.

Anyway, hope this helps; good luck!!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

Collapse

> Similar Topics

Topics Topics
  1. Adobe Premiere Pro vs Sony Vegas 5 + DVD Productio(31)
  2. What's The Best 3d Animation Software?(14)
  3. Reverse Video(16)
  4. Flash Site Software(11)
  5. Anyone Know Of Any Good Image Editing Software?(23)
  6. Nero And Copying(7)
  7. Which Virus-protection Program Is The Best?(18)
  8. How To Run A Proxy On a Web-Server?(20)
  9. Awesome Remote Control Software!(18)
  10. Ipod Hardware And Software Question(9)
  11. Great Free Palm Software(4)
  12. Cruzer Flash Drive (usb)(11)
  13. Web-based Ftp Client(9)
  14. Recommended P2p Software?(18)
  15. Best Software For Creating Games(9)
  1. Acer Arcade Software(12)
  2. What If..... Was Invented In 2008(23)
  3. Bandwidth Monitoring Software(11)
  4. Sandisk Memory Card Write Protection(12)
  5. Limewire(16)
  6. How To Copy File & Folders From Linux To Windows?.(12)
  7. Best Free Forum Software(10)
  8. Good Powerpoint Maker Software (not Microsoft Powerpoint But Something Similar)(7)
  9. Bluetooth Software(3)
  10. Need To Edit A Wav File [solved](1)
  11. Engine001 Game Creation Software(2)
  12. Password Protection(5)
  13. Spybot Recommended(3)


 



- Lo-Fi Version Time is now: 5th September 2008 - 05:49 AM