

- C MORE PROGRAMMING SOFTWARE KEYCODE HOW TO
- C MORE PROGRAMMING SOFTWARE KEYCODE INSTALL
- C MORE PROGRAMMING SOFTWARE KEYCODE SERIAL
- C MORE PROGRAMMING SOFTWARE KEYCODE CODE
The method RetrieveMACAddress retrieves the MAC. Static RETVALUE GetSoftwareKeyStringFromIniFile( In this section, we give a brief description of the class CSoftwareKey whose methods will be used in “ protected_comp.exe”, “ softwarekey_vendortool.exe” and “ softwarekey_customertool.exe”.Ĭonst BYTE pMachineCode,
C MORE PROGRAMMING SOFTWARE KEYCODE INSTALL
The following picture tries to illustrate the steps needed to produce and install a software key valid for a certain machine A. Furthermore, it is possible to create a tool that automates the software key installation. It is possible to save it in the registry. For simplicity, we save the software key in an “ini” file. At this point, the customer can use our component “ protected_comp.exe”. On receiving the “software key”, the customer has to install it in the file “ protected_comp.ini”. We will introduce some possible techniques in the following sections.Īfter generating the “software key”, we need to send it to the customer.
C MORE PROGRAMMING SOFTWARE KEYCODE SERIAL
Moreover, it is possible to use other data than the MAC address as a seed (F.Y.I., CPU identifier, Windows serial number, etc.), but our choice seems to be easier and quite general. In order to improve protection, more complex algorithms should be used.
C MORE PROGRAMMING SOFTWARE KEYCODE CODE
Note: In the code provided with this article, functions f and g are just simple permutations of the MAC address. We can view the machine code generation as the application of a function f to the MAC address: Substantially, this signature is obtained using the MAC (Medium Access Control) address (i.e., usually an Ethernet address) as a seed. This “machine code” can be viewed as a signature of the machine in which the tool “ softwarekey_customertool.exe” has been run and in which the “ protected_comp.exe” will be executed. Then he needs to send this “machine code” to us. In order to use our component, the customer needs to generate a “machine code” using the tool “ softwarekey_customertool.exe” we provide to him.

Let's suppose we are the vendor of a certain component “ protected_comp.exe”. If he tries to install our executable on a different machine, the component won’t run. In particular, it allows us to grant to the customer the right to use our component (EXE) only on a certain machine. The software key we propose in this article, with the mentioned limitations, allows us to get the above intention. Let’s assume we would like to control how many installations our customers do.

Note that the following notes are suitable for other types of components as well (e.g., DLL, COM, etc.). Let’s suppose we have a software product encapsulated in an executable (EXE) with a policy fee based on installations. In order to explain the background idea, we need to describe the context in which our software key could be useful.
C MORE PROGRAMMING SOFTWARE KEYCODE HOW TO
However, we think that this article could be useful in allowing us to better understand the mechanisms underlain a software key.īy the way, in the following sections, we'll mention how to by-pass this protection and some ideas that could be useful to make attackers work harder. We are aware that it is quite simple by-passing the protection offered by the software key presented in this article. We want to highlight that this is just an example. In this article, we’ll show a way to implement a simple software key that could be useful for protecting software components (e.g., EXE, DLL, COM, etc.) against misuse and for keeping track of installations.
