140 likes | 283 Views
Program Protection. The basic types of program protection. Serial number based protection The serial number is changing with the inscribed data The serial number is changing with the user’s PC The serial number has been checked on network Timelimit Hardware key.
E N D
The basic types of program protection • Serial number based protection • The serial number is changing with the inscribed data • The serial number is changing with the user’s PC • The serial number has been checked on network • Timelimit • Hardware key
Serial number based protection The essence of this protection: The user has to enter a number at all times to register the program Besides the programmer choose the type (there are different types)
Serial number based protection 1. The serial number is always the same: Advantages: The correct serial number doesn’t have to be in the memory for compare the inscribed value with the correct serial number (for example: logical operations /XOR…) Disadvantages: Easy to retrieve Frequent applying: To protect different parts of the program
Serial number based protection 2. The registration number is changing with the inscribed data Features: • The registration number from the company’s name from other information • We’re going to plan the belonging defence algorithm like the inscribed name and the registration number do only one determined result • The more complicated belonging algorithm, the more complicated to check • Usually, a hidden algorithm belongs to it, that checks the inscribed serial number was it really suitable for it.
Serial number based protection 3. The serial number is changing with the user’s PC Features: • This protection system is the most difficult to crack for the hackers • The registration number could be changed by the hard disk’s serial number or by other random serial numbers • We can combine te protection from the user’s data (name, company, …) too, so the cracking of the program will be more complicated • Apparently, the hacker can install the cracked software on his PC, but he can’t use it.
Cracking the VB4 programs 4.In the 16 bit version of VB4 (visual basic 4) programs, the hackers have to search for a code like this in the memory and in the vb40016.dll code : 8BF8 8EC2 1E C5760E 33CO F3A6 7405 1BC0 1DFFFF We replace the code with a breakpoint, then we have to follow these instructions:
Cracking the VB4 programs Machine code: Instruction: 8BF8 mov di, ax 8EC2 mov es, dx 1E push ds C5760E lds si, [bp+0E] 33C0 xor ax, ax F3A6 repz cmpsb • Jz 2667 1BC0 sbb ax, ax 1DFFFF sbb ax, ffff Now, we have to look at what’s on the address where the „repz cmpsb” compares the inscribed serial number with the correct (to find the correct number we have to look at the es:di and the ds:si addresses)
Serial number based protection 5. :The serial numbers has been checked on network • The user enter the registration number and the program send it to the internet for checking • The server checks the incoming data and send a report to the program of the right serial number Disadvantage: • Easy to retrieve the code
Timelimit Realization: • The timelimit ends when we add the serial number • The timelimit stops when we add the registration file • We can’t remove the timelimit, just because we want from the user to purchase the software • Because of the timelimit, the program will run several times
Timelimit The timelimit stops when we add the registration file: • This protection system is getting general • Commonly, it sends the (.reg) file through the internet that contains a program which absolve the timelimit • The protection is efficient, if we place the protected application’s code directly in the registration file • This method needs well skilled programming • The other less efficient defence solution, when the program checks the existence of the registration file in the software’s directory
Hardware key protection Functioning: • It is based on the I/O gate which is joining to the hardware key, if the gate doesn’t exist the program won’t working Types: • The program do not run without the hardware key • We can’t use certain options of the program without the hardware key Well-known types: • HASP • Sentiel
HASP • The HASP needs 128 MB of memory • The HASP drives includes trace impeding tricks to avoid incoming attacks • The calling of available functions and checking the return values are not enough, because of that this method is expensive
Sentinel • It’s construction and functions are similar to HASP • A test is running before all active calls, then this test is going to check the package’s right preparation The test in brief: ... Cmp word ptr [esi], 7242 Is correct Mov ax, 0002 ;sets the error code Pop edi Pop esi Ret 000C … The 7242 value is the index of the package, if the program doesn’t find this value in the begining of the procedure, we get the error code 2