×

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

  • US 7,269,740 B2
  • Filed: 06/25/2002
  • Issued: 09/11/2007
  • 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), 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:

  • a during a protection phase (P);

    creating a protected software (2p);

    by choosing in the source of the vulnerable software (2vs);

    at least one variable which, during the execution of the vulnerable software (2v), partially defines the state of the latter,and at least one portion containing at least one chosen variable,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), this modification being such that during the execution of the protected software (2p), at least one chosen variable or at least one copy of chosen variable resides in the blank unit (60) which is thus transformed into a unit (6),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 at least a variable or at least a copy of variable resides in the unit (6),and during a usage phase (U) during which the protected software (2p) is executed;

    in the presence of the unit (6), each time a portion of the first execution part (2pes) imposes it, using a variable or a copy of variable residing in the unit (6), 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 use a variable or a copy of variable residing 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,wherein during the protection phase (P);

    modifying the protected software (2p);

    by choosing in the source of the protected software (2ps);

    a first computing operation and a second computing operation, wherein during the execution of the protected software (2p), the first computing operation uses a first chosen variable to obtain a first result variable and the second computing operation uses a second chosen variable to obtain a second result,and at least one portion containing at least the chosen first and second computing operations,by modifying at least one chosen portion of the source of the protected software (2ps), this modification being such that;

    during the execution of the protected software (2p) the first execution part (2pes) is executed in the data processing system (3) and a second execution part (2peu) is executed in the unit (6) which also includes processing means (16),at least the functionality of the chosen first and second operations is executed by means of the second execution part (2peu),a first variable movement is performed on said first chosen variable as required for correct execution of the protected program,a second variable movement is performed on said second chosen variable as required for correct execution of the protected program,a first result movement is performed on said first result variable as required for said correct execution of the protected program,a second result movement is performed on said second result variable as required for correct execution of the protected program,each of said first and second variable movements, said first and second computing operations, and said first and second result movements constitute a step,a first variable movement, the first result movement and the first computing operation comprises a first set of steps and the second variable movement, the second result movement and the second computing operation comprises a set of steps,at least one step of one of the sets is interleaved with the steps of the other set in order to execute the steps in said interleaved order, andsteps commands are definded so that during the execution of the protected software (2p), each step command is executed by the first part (2pes) and triggers in the unit (6), the execution by means of the second execution part (2peu), of a step in the interleaved order,and by producing;

    the first object part (2pos) of the protected software (2p), said first object part (2pos) being such that during the execution of the protected software (2p), the steps commands are executed in the interleaved order,and a second object part (2pou) of the protected software (2p), 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 steps triggered by the first execution part (2pes) are executed,and uploading the second object part (2pou) to the blank unit (60), with the intention of obtaining the unit (6),and during the usage phase (U);

    in the presence of the unit (6) and each time a step command contained in a portion of the first execution part (2pes) imposes it, executing the corresponding step in the unit (6), 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 step 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
    ×
    ×