×

System, method, and service for detecting improper manipulation of an application

  • US 8,056,138 B2
  • Filed: 02/26/2005
  • Issued: 11/08/2011
  • Est. Priority Date: 02/26/2005
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method for detecting improper manipulation of an application containing a plurality of executable branch instructions, comprising:

  • executing the application using a secret input to obtain a trace of the application;

    identifying, from the trace, a set of deterministic branch instructions;

    selecting at least one of the branch instructions from the set of deterministic branch instructions;

    converting the selected branch instruction to a control transfer instruction that calls upon a fingerprint branch function;

    adding a watermark to the application in order to identify an authorized user;

    generating a fingerprint mark to the application;

    generating a fingerprint key associated with the fingerprint mark;

    as the application is executing, upon encountering a call to the fingerprint branch function, executing the fingerprint branch function to evolve the fingerprint key and an integrity check value associated with the evolved fingerprint key;

    replacing at least one branch instruction corresponding to a conditional jump and at least one branch instruction corresponding to an unconditional jump in the application to alter control flow of the application; and

    calculating a hash function responsive to a return address of the at least one branch instruction corresponding to the conditional jump and the at least one branch instruction corresponding to the unconditional jump and a starting address of the fingerprint branch function;

    wherein the fingerprint branch function corresponds the evolved fingerprint key with a location in a displacement table to locate a displacement for a target instruction at the location in the displacement table within the application and subsequently a return location of the target instruction is computed within the application by adding the displacement to a return address of the control transfer function that calls upon the fingerprint branch function, and execution control is returned to the target instruction at the computed return location within the application, andwherein upon improper manipulation of the application, the fingerprint branch function evolves a wrong key that prevents a normal execution of the application by corresponding the wrong key with an incorrect location within the displacement table, thereby causing an incorrect return location to be calculated by adding an incorrect displacement retrieved from the incorrect location to the return address and causing the execution control to be returned to the target instruction at the incorrect return location within the application.

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