×

Method to protect software against unwanted use with a “renaming” principle

  • US 7,343,494 B2
  • Filed: 06/25/2002
  • Issued: 03/11/2008
  • Est. Priority Date: 08/01/2001
  • Status: Active Grant
First Claim
Patent Images

1. Process to protect, using at least one blank unit (60) including at least memorization means (15) and processing means (16), a vulnerable software (2v) against its unauthorized usage, said vulnerable software (2v) being produced from a source (2vs) and working on a data processing system (3), said protection process comprising:

  • During a protection phase (P);

    defining;

    a set of dependent functions, whose dependent functions are liable to be executed in a unit (6),a set of triggering commands for said set of dependent functions, said triggering commands being liable to be executed in the data processing system (3) and to trigger the execution in a unit (6), of the dependent functions,for each triggering command, an order corresponding at least in part to the information transmitted from the data processing system (3) to a unit (6), so as to trigger the execution of the corresponding dependent function in a unit (6), said order having the form of at least one argument of the triggering command,a method of renaming of the orders enabling to rename the orders so as to obtain triggering commands with renamed orders,and restoring means (20) designed to be implemented in a unit (6) during a usage phase (U), and enabling to restore the dependent function to execute, from the renamed order,constructing exploitation means enabling to transform the blank unit (60) into a unit (6) able to implement the restoring means (20),creating a protected software (2p);

    by choosing, at least one algorithmic processing which, during the execution of the vulnerable software (2v), uses at least one operand and enables to obtain at least one result,by choosing at least one portion of the source of the vulnerable software (2vs) containing at least one chosen algorithmic processing,by producing a source of the protected software (2ps) from the source of the vulnerable software (2vs), by modifying at least one chosen portion of the source of the vulnerable software (2vs) to obtain at least one modified portion of the source of the protected software (2ps), this modification being such that;

    during the execution of the protected software (2p) a first execution part (2pes) is executed in the data processing system (3) and a second execution part (2peu) is executed in a unit (6), obtained from the blank unit (60) after upload of information,the second execution part (2peu) executes at least the functionality of at least one chosen algorithmic processing,at least one chosen algorithmic processing is split so that during the execution of the protected software (2p), said algorithmic processing is executed, by means of the second execution part (2peu), using dependent functions,for at least one chosen algorithmic processing, triggering commands with renamed orders are integrated to the source of the protected software (2ps), so that during the execution of the protected software (2p), each triggering command with renamed order is executed by the first execution part (2pes) and triggers in the unit (6), the restoring, by means of the restoring means (20), of the order and the execution, by means of the second execution part (2peu), of the corresponding dependent function,and a sequence of the triggering commands with renamed orders is chosen among the set of sequences allowing the execution of the protected software (2p),and by producing;

    a first object part (2pos) of the protected software (2p), from the source of the protected software (2ps), said first object part (2pos) being such that during the execution of the protected software (2p), appears a first execution part (2pes) which is executed in the data processing system (3) and whose at least a portion takes into account that the triggering commands with renamed orders are executed according to the chosen sequence,and a second object part (2pou) of the protected software (2p), containing the exploitation means, said second object part (2pou) being such that, after upload to the blank unit (60) and during the execution of the protected software (2p), appears the second execution part (2peu) by means of which the orders are restored and the dependent functions are executed,and uploading the second object part (2pou) to the blank unit (60), with the intention of obtaining the unit (6),and during a usage phase (U) during which the protected software (2p) is executed;

    in the presence of the unit (6) and each time a triggering command with renamed order, contained in a portion of the first execution part (2pes) imposes it, restoring in the unit (6), the identity of the corresponding dependent function and executing it, so that said portion is executed correctly and that, consequently, the protected software (2p) is completely functional,and in the absence of the unit (6), in spite of the request by a portion of the first execution part (2pes) to trigger the execution of a dependent function in the unit (6), not being able to fulfill said request correctly, so that at least said portion is not executed correctly and that, consequently, the protected software (2p) is not completely functional.

View all claims
  • 5 Assignments
Timeline View
Assignment View
    ×
    ×