Soon I will send an old library with a paid rate, and I wonder if it is possible to create any copy protection so that developers do not copy the library.
Ideally, I would like to prevent the library from communicating with the executable file at all if (and only if!) The library was illegally copied to the development machine. Is it possible?
Alternatively, this may be acceptable if the applications associated with the illegal copy of the library simply do not work; however, it is very important that this does not burden users of these applications (such as entering a license key, using a key, or even requiring an Internet connection).
The library is written in C ++ and is designed for a number of platforms, including Windows and Mac.
Do I have any options?
I agree with other answers that perfect protection is simply not possible. However, like a gentle push ...
If your library is precompiled, you can refuse excessive illegal use by requiring user license information in the API.
Change the function, for example:
jeastsy_lib::init()
at
jeastsy_lib::init( "Licenced to Foobar Industries", "(hex string here)" );
If the first parameter identifies the client, and the second parameter MD5 or another hash of the first parameter with salt .
When your library is acquired, you will provide the client with both of these options.
, - . , . , - .
++ .
, . , :
64 !
, , ++ - ! LTCG .lib . , , , PITA .
, -, , somethign, .
- , .
" " , , " ", , . ( , ? ?) , , , , .
LIB "". - .
, , . , , - , . ++- , , .
, , , " ". .
, ( !) -. ?
, " " ?
, , .
, , , . , , . , , " ".
, " - , " - " " .
, " ". . - - , .
, ( , , , ).
, , - , , .
: , , ( : . , ).
, FLEXlm.
, , Silicon Graphics.
... ( , )
: , .
: , . UID MAC -
: , , .
, " ". , , , . , " , ", , .
- , . , ; - .
, . , , , .
, , , .
.
First prove that someone wants to steal your product. Then, if someone wants to steal it, add copy protection and continue to improve your product.
Source: https://habr.com/ru/post/1727990/More articles:Разница в Javascript между функциями внутри объекта - javascriptOne long method or many methods, but very readable - asp.netWhat is the App Engine Application Administrator URL? - google-app-engineBest practice for Async with ASP.net MVC 2? - asynchronousPython ctypes addressof CFuncType - pythonAre you already using MVC 2 or MVC 1? - S # arp Architectur + Spark View Engine - asp.net-mvcarrayWithObjects: Объекты должны быть NSStrings - objective-cHow can CanExecute from the command line come on after removing an item from the visual tree? - wpfDelete semicolon in string using javascript - javascriptHow to write an async class with a minimal amount of re-code? - c #All Articles