×

Discovering code and data in a binary executable program

  • US 6,014,513 A
  • Filed: 12/23/1997
  • Issued: 01/11/2000
  • Est. Priority Date: 12/23/1997
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method for automatically identifying code portions and data portions in a binary executable software program, wherein the code portions comprise machine instructions that are of arbitrary length, comprising the steps of:

  • (a) determining a set of addresses in the binary executable software program that are for any known code portions and for any known data portions;

    (b) disassembling machine instructions at a starting address for each known code portion, to identify a set of all possible control flow paths reachable from said starting address, and from the control flow paths that are thus identified, determining a set of target addresses so as to identify other code portions and other data portions;

    (c) beginning with bytes of the binary executable software program located at any address that could be a starting point for either a code portion or a data portion, analyzing the bytes to determine if said bytes comprise a code portion; and

    (d) reiteratively processing addresses in the binary executable software program that have not yet been identified as being for code portions and for data portions, by repeating steps (b) and (c), to identify other code portions and data portions in the binary executable software program until no further code portions and data portions are identifiable.

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