Recent

Author Topic: Create software protector  (Read 8960 times)

nana232

  • New Member
  • *
  • Posts: 40
Create software protector
« on: March 04, 2019, 07:20:06 am »
For those who create software for your commercial software, I would like to know : How can you protect your software?

I have understand feature of Encrypt/Decrypt key a bit.
But the problem is I cannot retrieve any hardware ID from client Computer.

Could you please advice me?
How can you protect your software?  - Purchase third party or create yourself?
What kind of your key component? - Retrieve from Hardware ID? What is Hardware you often use?
How can I create online activation? - I need to know how to get data from the Website (that containing customer key).


Lazarus 1.8.4 Win10 32bit

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: Create software protector
« Reply #1 on: March 04, 2019, 07:27:28 am »
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

nana232

  • New Member
  • *
  • Posts: 40
Re: Create software protector
« Reply #2 on: March 04, 2019, 07:59:50 am »
Lazarus 1.8.4 Win10 32bit

Thaddy

  • Hero Member
  • *****
  • Posts: 14205
  • Probably until I exterminate Putin.
Re: Create software protector
« Reply #3 on: March 04, 2019, 08:15:27 am »
Yes. in ogutil.pas
[edit]
No, it is still a not implemented prototype.
I have patched in this code by Jeroen Pluimers myself. Windows only, though:
https://stackoverflow.com/questions/5202270/in-delphi7-how-can-i-retrieve-hard-disk-unique-serial-number

Under Linux it is easier and it can be read from one of the device files or you can use libhd21 and libhd-dev (hwinfo uses that). I believe I have a h2pas generated interface unit somewhere for it, but did not use it for years. There's also libdiscover, which is similar. I never used that.

Note the best protection is simply a license and lawyers. Lockbox protects only against script kiddies, not against determined professional hackers.
It is always a trade-off between value and volume:
- Unique, specialized, low volume software is better protected by just lawyers: license, contracts.
- High volume software needs that too, but for such software Lockbox can prevent some but not all obvious copying/piracy.
That also goes for hardware keys.

As an intermediate solution I used to have part of the functionality of certain software running on servers - maybe an intranet - , which demands that the software is on-line. Not ideal for some applications.
An example of this is how Borland/Inprise used to handle volume licenses for their most expensive suites. I do not know if that still works like that. Anyway: you could in our case not run more than 20, later 50 active licensed instances of their software at a time (Enterprise and Architect). We hacked that, but never used the hack: we reported the vulnerability.
« Last Edit: March 04, 2019, 09:00:23 am by Thaddy »
Specialize a type, not a var.

440bx

  • Hero Member
  • *****
  • Posts: 3946
Re: Create software protector
« Reply #4 on: March 04, 2019, 11:26:05 am »
How can you protect your software?  - Purchase third party or create yourself?
What kind of your key component? - Retrieve from Hardware ID? What is Hardware you often use?
How can I create online activation? - I need to know how to get data from the Website (that containing customer key).
What I'm going to say doesn't really answer any of your questions but, hopefully, it will give you something to think about.

Any protection scheme, no matter how sophisticated can be defeated.  It only depends on the talent and interest of the individual considering defeating it.  For instance, Adobe has a mixed, complicated and convoluted protection scheme for their suite, yet every one of their attempts at protecting their software has been defeated.  Same for Autodesk AutoCAD in a long long list of such products.

Hardware keys, such as usb (and parallel port) keys have also been defeated.  Those that haven't are simply for products most people are not interested in.

Another thing you should consider is, Borland (way back) made plenty of money selling Turbo Pascal and early Delphi versions which had no protection at all, yet people purchased their products because they were good products at a reasonable price.  These days, Delphi has protection mechanisms like those you are mentioning yet, has only a shadow of the market share Turbo products had (which forces the company to increase the price.. making the situation worse.)

Very often, protection schemes create more problems for the legitimate users than they do for those who use pirated copies. 

Invest the time and effort you'd put in protection schemes to making the software better.  That, along with a fair price, is the best software protection you can get.

Lastly, as strange as this may sound, individual piracy (not corporate) isn't such a bad thing.  The more people that use your software, the more people have expertise in operating your software.  A readily available pool of experts is a very important factor in the corporate decision making of which software to hang their future on (not much _new_ corporate development being done in Delphi and part of the reason, aside from the price, is the very limited pool of Delphi experts compared to the pools available for other languages (C/C++, C#, etc.))

Make better software, price it reasonably.  Let people who'd never buy a copy be able to obtain it and train themselves in it (that's your expertise pool, for the cost of your software, you have people training themselves in how to use it, that's quite a good deal).  Make the money in support which is what customers that depend on your software _really_ want.  MS understands that, that's why Visual Studio community edition - with updates/some support/ and more bells and whistles than a world fair - is free.

HTH.






« Last Edit: March 04, 2019, 12:41:02 pm by 440bx »
(FPC v3.0.4 and Lazarus 1.8.2) or (FPC v3.2.2 and Lazarus v3.2) on Windows 7 SP1 64bit.

Thaddy

  • Hero Member
  • *****
  • Posts: 14205
  • Probably until I exterminate Putin.
Re: Create software protector
« Reply #5 on: March 04, 2019, 12:04:38 pm »
I broadly agree with that.
Specialize a type, not a var.

hrayon

  • Full Member
  • ***
  • Posts: 118
Re: Create software protector
« Reply #6 on: March 04, 2019, 02:48:28 pm »
...
Note the best protection is simply a license and lawyers.
...

Except when piracy aims to create another competing product. For example, if an intellectual part of your software is in the database (triggers, stored procedures, even entities and how they relate), and it is accessible, you lose. I've been through such a situation, and it's at least revolting. They had the audacity to create a concurrent application accessing the same database. A protection suggested by Taddy is valid, but it depends on your ability to deal with frustrations, the price of the lawyer, who you will fight (if you are against a company that is much larger than you, it will have more legal support and you may still lose the dispute). Depending on the country, the laws change. In mine it prevails that you are innocent until proven otherwise. So if you find out that they hacked your software, the job of collecting valid evidence is yours. One tip is, for each significant version of your software, burn it to a flash drive with source code, go to the mail, ask to send it to you with a shipping mode that has legal validity. And when the mail arrives at your house, never open it. It will be a valid, cheap and dated legal proof that says that software is yours. If you ever need to prove to a judge, take the sealed mail to the judge.

Thaddy

  • Hero Member
  • *****
  • Posts: 14205
  • Probably until I exterminate Putin.
Re: Create software protector
« Reply #7 on: March 04, 2019, 03:13:49 pm »
That's precisely the point of view of a very naive person..... I was once like that... :-[ 30 years or more ago...
I think you can expect some more comments like this.... O:-) O:-) O:-)
Specialize a type, not a var.

440bx

  • Hero Member
  • *****
  • Posts: 3946
Re: Create software protector
« Reply #8 on: March 04, 2019, 03:50:51 pm »
Except when piracy aims to create another competing product. For example, if an intellectual part of your software is in the database (triggers, stored procedures, even entities and how they relate), and it is accessible, you lose.
The problem there isn't piracy, it is how to protect intellectual property which is a completely different problem than people simply using unpaid copies of the software.

Effectively protecting IP is rather difficult (though not impossible), particularly in a small world like ours is now.

It is somewhat rare for a single algorithm or method to give a definitive advantage.  It's the totality of the software design that makes a difference and that, is well protected by copyrights.

There is one thing the Japanese Auto industry proved to the world, that is, affordable excellence is the greatest protection a product can have.  Slowly but surely, with it, they drove the American Auto industry juggernaut into the ground.

(FPC v3.0.4 and Lazarus 1.8.2) or (FPC v3.2.2 and Lazarus v3.2) on Windows 7 SP1 64bit.

hrayon

  • Full Member
  • ***
  • Posts: 118
Re: Create software protector
« Reply #9 on: March 04, 2019, 04:14:17 pm »
That's precisely the point of view of a very naive person..... I was once like that... :-[ 30 years or more ago...
I think you can expect some more comments like this.... O:-) O:-) O:-)

Yes, I was naive and did not think they would steal the database to create a competing program. My luck is that the company that stole me chose not to fight. But it was still a headache. And years of work were put into the hands of unauthorized people. Now I've learned.

...
There is one thing the Japanese Auto industry proved to the world, that is, affordable excellence is the greatest protection a product can have.  Slowly but surely, with it, they drove the American Auto industry juggernaut into the ground.
Comparing us with the automotive industry is almost like applying classical mechanics to quantum mechanics. The rules are different. You, small business, or individual, can develop an innovative product of great quality and be practically swallowed by a faster, usually larger company. One of the ways they can be less digestible is to protect intellectual property, but that's another story.
Well, it has a relationship with piracy anyway.
I still see that applying some difficulty to the script kiddies and applying quality at the same time complement each other to form a better way. Applying the license and lawyers too  :D

440bx

  • Hero Member
  • *****
  • Posts: 3946
Re: Create software protector
« Reply #10 on: March 04, 2019, 04:39:11 pm »
Comparing us with the automotive industry is almost like applying classical mechanics to quantum mechanics. The rules are different.
I don't think so but, you are free to believe that.  Henry Ford was a little David who had to fight a Goliath that held a patent on the _idea_ of a car yet, he won.  Admittedly, being the small guy doesn't make things easy.

You, small business, or individual, can develop an innovative product of great quality and be practically swallowed by a faster, usually larger company.
Borland was much smaller than MS when they started yet, they gave MS quite a headache for quite a while.  As far as being "swallowed" by a larger company, usually they pay handsomely for the privilege of "swallowing" that pill. 

I still see that applying some difficulty to the script kiddies and applying quality at the same time complement each other to form a better way.
The script kiddies are not a problem, the internet is the problem.  Most programmers can get just about any piece of software they want by only knowing where to go get it. No scripts... no kiddies... just one click on a "download" button away.

Applying the license and lawyers too  :D
It's usually a better idea to invest the money in R&D to stay ahead of the competition than to give it to lawyers but, it's your money, you get to decide how to invest it.

People/companies who depend on your software will gladly pay for support (as long as it's good), software without support is usually not very useful.  The value and real protection is in the combination of good software with good support. 

(FPC v3.0.4 and Lazarus 1.8.2) or (FPC v3.2.2 and Lazarus v3.2) on Windows 7 SP1 64bit.

hrayon

  • Full Member
  • ***
  • Posts: 118
Re: Create software protector
« Reply #11 on: March 04, 2019, 05:06:15 pm »
Comparing us with the automotive industry is almost like applying classical mechanics to quantum mechanics. The rules are different.
I don't think so but, you are free to believe that.  Henry Ford was a little David who had to fight a Goliath that held a patent on the _idea_ of a car yet, he won.  Admittedly, being the small guy doesn't make things easy.

You, small business, or individual, can develop an innovative product of great quality and be practically swallowed by a faster, usually larger company.
Borland was much smaller than MS when they started yet, they gave MS quite a headache for quite a while.  As far as being "swallowed" by a larger company, usually they pay handsomely for the privilege of "swallowing" that pill. 
But are these examples rules or exceptions?

I still see that applying some difficulty to the script kiddies and applying quality at the same time complement each other to form a better way.
The script kiddies are not a problem, the internet is the problem.  Most programmers can get just about any piece of software they want by only knowing where to go get it. No scripts... no kiddies... just one click on a "download" button away.
I agree.

Applying the license and lawyers too  :D
It's usually a better idea to invest the money in R&D to stay ahead of the competition than to give it to lawyers but, it's your money, you get to decide how to invest it.

People/companies who depend on your software will gladly pay for support (as long as it's good), software without support is usually not very useful.
...
But look at the cell phones, a lot of money is made there with almost no support.

...
  The value and real protection is in the combination of good software with good support. 
You're right.

Well, we're getting away from the subject of the topic, I'm going to stop here. Thanks for the good talk.

rvk

  • Hero Member
  • *****
  • Posts: 6111
Re: Create software protector
« Reply #12 on: March 04, 2019, 05:07:09 pm »
People/companies who depend on your software will gladly pay for support (as long as it's good), software without support is usually not very useful.
Oops, I made my software soooooo good, that people who use it, don't even need support  %)

Handoko

  • Hero Member
  • *****
  • Posts: 5131
  • My goal: build my own game engine using Lazarus
Re: Create software protector
« Reply #13 on: March 04, 2019, 05:10:21 pm »
Next time, you should intentionally add some bugs into it.  :D

440bx

  • Hero Member
  • *****
  • Posts: 3946
Re: Create software protector
« Reply #14 on: March 04, 2019, 07:44:13 pm »
Well, we're getting away from the subject of the topic...
Not so much off topic.  You want a way to protect your software, I simply offered what I believe is a better alternative than copy protection schemes.

People/companies who depend on your software will gladly pay for support (as long as it's good), software without support is usually not very useful.
Oops, I made my software soooooo good, that people who use it, don't even need support  %)
Congratulations on your bug free version of "Hello World". ;)  (add a feature ... make it output "hello world" in over 200 languages and sell it as a competitor to Rosetta stone... in future versions you can add a spell checker... the cpu is the limit.)

« Last Edit: March 04, 2019, 07:46:04 pm by 440bx »
(FPC v3.0.4 and Lazarus 1.8.2) or (FPC v3.2.2 and Lazarus v3.2) on Windows 7 SP1 64bit.

 

TinyPortal © 2005-2018