×

Technique for producing through watermarking highly tamper-resistant executable code and resulting “watermarked” code so formed

  • US 7,051,208 B2
  • Filed: 10/21/2004
  • Issued: 05/23/2006
  • Est. Priority Date: 03/14/2000
  • Status: Expired due to Term
First Claim
Patent Images

1. Apparatus for forming an identifier for an input object and for securely marking the input object with the identifier so as to yield a marked object, apparatus comprising:

  • means for storing computer executable instructions therein;

    means for performing acts, in response to the stored executable instructions, the acts comprising;

    generating a flow representation for the input object, the representation having a plurality of nodes, said nodes representing pre-defined first operations performed by the input object, and connections among the nodes signifying associated flow among the pre-defined first operations performed by the input object;

    randomly selecting first and second nodes from the plurality of nodes in the representation so as to form a pre-defined number of nodal pairs, each of said pairs having one of the first nodes and a corresponding one of the second nodes;

    for each of the nodal pairs, forming an executable procedure associated with each of the nodal pairs by establishing flow between the first and second nodes in said each nodal pair and inserting, in the flow so established, a selected one of a plurality of different pre-defined second operations so as to collectively define the marked object, whereby the marked object implements the pre-defined first operations and a plurality of selected ones of the pre-defined second operations, each of which has been randomly spliced into flow of the input object, wherein the identifier collectively comprises all ones which differ within the plurality of pre-defined second operations, and execution flow associated therewith and involving the nodal pairs;

    inserting a pre-defined number of separate links and designations for selected ones of the procedures into the flow representation so as to yield a combined flow representation; and

    converting, in response to said input executable code and executable code for said selected ones of the procedures, said combined flow representation into output executable code, said output executable code being the marked code;

    wherein;

    the input object comprises a software object which comprises, input executable code, at least one instruction in the input executable code being associated with a corresponding one of the pre-defined first operations, and executable code for a corresponding executable procedure being associated with each selected one of the pre-defined second operations;

    the input executable code comprises first and second portions thereof and the flow representation comprises first and second separate flow representations for the first and second portions of the input executable code, respectively;

    the first portion of the input executable code comprises at least a pre-defined portion of a non-marked application program; and

    the second portion of the input executable code comprises a remaining portion of the non-marked application program or pre-defined executable security code.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×