"Dongle" is a kind of encryption product which is a combination of software and hardware inserted in the parallel port of computer. Generally, there are dozens or hundreds of bytes of nonvolatile storage space for reading and writing, and now the newer dog also contains a single chip microcomputer. Software developers can exchange data with softdog through interface function (that is, read and write softdog) to check whether softdog is inserted in parallel port; Or directly use the tool attached to the softdog to encrypt your own EXE file (commonly known as "shell"). In this way, software developers can set multiple software locks in the software, and use the softdog as the key to open these locks; If the softdog is not inserted or does not correspond, the software will not run normally.
The encrypted dog exchanges data with the encrypted dog in the process of software execution to realize encryption. The embedded MCU circuit (also known as CPU) of the encrypted dog makes the encrypted dog have the processing ability of judgment and analysis, and enhances the active anti decryption ability. This kind of encryption product is called "intelligent" encryption dog. The built-in MCU of the encryption dog contains the algorithm software specially used for encryption. After the software is written into the MCU, it can no longer be read out. This ensures that the dongle hardware cannot be copied. At the same time, the encryption algorithm is unpredictable and irreversible. Encryption algorithm can transform a number or character into an integer, such as dogconvert (1) = 17345, dogconvert (a) = 43565. Next, we give an example to illustrate the use of MCU algorithm. For example, there is such a sentence in a program: a = FX (3). The program should get the value of variable a according to constant 3. So we can rewrite the original program like this: a = FX (dogconvert (1) - 12342). Then the constant 3 will not appear in the original program, and dogconvert (1) - 12342 will be used instead. In this way, only the software writer knows that the constant actually called is 3. If there is no dongle, the dogconvert function will not return the correct result, and the result formula a = FX (dogconvert (1) - 12342) will not be correct. This kind of encryption method, which makes the pirated users not get the value of the software, is more gentle, more hidden and more difficult for the decryptors to ponder than the encryption method of warning and stopping when they find the illegal use. In addition, the dog has read-write function, which can be used to read and write the internal memory of the dog. So we can also write 12342 in the above formula to the dog's memory, so that the value of a completely depends on the results of dogconvert() and dogread() functions, which makes decryption more difficult. However, generally speaking, the algorithm difficulty of dongle MCU is lower than some public encryption algorithms, such as DES, because decryptors have to face many difficulties before touching the algorithm of dongle