The computer-based software protection systems are provided using methods
that improve the protection of vendor's software against unauthorized use.
A code generator generates randomized protection code, which is then used
to protect the application software. Because the code is unique for each
protected software, potential crackers have to analyze and crack every
instance of the protection, so that generic hack is almost impossible.
Some embodiments of the present invention also randomize license
verification module, add and randomize a specific anti-hacking code, and
randomize the protection code execution sequence(s). The same embodiments
can also select which instructions and how many instructions are
randomized. Moreover, these embodiments select where the data is being
stored, in which register, memory address and stack position, and also
randomize variable offsets. Other embodiments of the present invention are
used for interpreted code.
De gecomputeriseerde systemen van de softwarebescherming worden verstrekt gebruikend methodes die de bescherming van de software van de verkoper tegen onbevoegd gebruik verbeteren. Een codegenerator produceert willekeurig verdeelde beschermingscode, die dan wordt gebruikt om de toepassingssoftware te beschermen. Omdat de code voor elke beschermde software uniek is, moeten de potentiële crackers elke instantie van de bescherming analyseren en barsten, zodat de generische houwer bijna onmogelijk is. Sommige belichamingen van de onderhavige uitvinding verdelen de module van de vergunningscontrole willekeurig, voegen en verdelen ook een specifieke anti-hakt code toe willekeurig, en verdelen de de uitvoeringsopeenvolging van de beschermingscode (s) willekeurig. De zelfde belichamingen kunnen ook selecteren welke instructies en hoeveel instructies willekeurig worden verdeeld. Voorts selecteren deze belichamingen waar het gegeven wordt opgeslagen, waarin register, plaatsen de het geheugenadres en stapel, en verdelen ook veranderlijke compensatie willekeurig. Andere belichamingen van de onderhavige uitvinding worden gebruikt voor geïnterpreteerde code.