Is it possible to limit the executable file by the number of launches without linking it to a specific machine, as well as without additional files?

For example, the lifetime of our program 3 starts, a certain Ivan launched this program twice on his new laptop, then threw the executable file on the flash drive and ran it on his old computer once. On the fourth launch, Ivan will be shown a message stating that his file has exhausted the launch limit and will no longer work.

The only solution that occurred to me is the storage in each program of a unique key that will be transmitted to the server, which in turn will record the program launches. Of course, such a method would require an Internet connection, which may not always be convenient. And what ways to create such a "protection" you can offer?

  • one
    And no more. No one bothers to save on the flash drive the original version of exe with three starts. use 3 and then restore again from the flash drive. and the record somewhere on the computer, you know, is just as useless - Mike
  • 2
    That's all that is written here, comes down to one abbreviation - DRM - Gedweb
  • Make a service from the program on the network - it is much easier to control and much more difficult to hack - Mikhail Vaysman
  • one
    As an option, protect with an iron device, i.e. only run when a usb-token is connected, which actually stores the number of launches - Mike
  • @Mike, and not to expensive tokens with trials to distribute? - Qwertiy

1 answer 1

As I understand it, we do not consider the issues of countering hacking programs.

To solve the problem, it is necessary to have a run counter completely controlled by the author and completely out of control of the client. Purely in the local version, the problem is not solved - otherwise we put in a virtual machine, do a snapshot, and reverse to it after each launch, and so on until the end of the centuries.

By the way, storing a unique key in an instance of a program is a more difficult and inconvenient task (and you don’t even want to think about hardware keys in this sense!) Than just a license issued for a certain number of launches. And accounting in this very run count, designed for the program as an external, but easily accessible service, the number of launches with this license itself. And after the number of launches allowed for this license has been exhausted, if such a limit is set - the launch may be rejected, possibly with a proposal to extend the trial for even more launches or to receive a new license.

Now imagine for a moment that the program needs to be run where there is no connection to Internet (or it is such that it is not possible to reach the accounting server) ... do you know exactly how the authors of IBExpert lost their karma?

  • Sobsn, surprisingly, but you, in fact, repeated everything that the author himself wrote in the question)) - Alexey Shimansky
  • No wonder. Options for a cat cry - as implementations, and rake. - Akina