The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.

The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.

Date of Patent:
Oct. 28, 2014

Filed:

Oct. 31, 2008
Applicants:

Pierre Betouin, Boulogne, FR;

Mathieu Ciet, Paris, FR;

Augustin J. Farrugia, Cupertino, CA (US);

Inventors:

Pierre Betouin, Boulogne, FR;

Mathieu Ciet, Paris, FR;

Augustin J. Farrugia, Cupertino, CA (US);

Assignee:

Apple Inc., Cupertino, CA (US);

Attorney:
Primary Examiner:
Int. Cl.
CPC ...
G06F 11/30 (2006.01); G06F 12/14 (2006.01); G06F 21/12 (2013.01); G06F 9/45 (2006.01);
U.S. Cl.
CPC ...
G06F 21/125 (2013.01); G06F 8/41 (2013.01); G06F 8/42 (2013.01); G06F 8/433 (2013.01); G06F 8/427 (2013.01); G06F 8/434 (2013.01);
Abstract

Disclosed herein are systems, computer-implemented methods, and tangible computer-readable media for obfuscating constants in a binary. The method includes generating a table of constants, allocating an array in source code, compiling the source code to a binary, transforming the table of constants to match Pcode entries in an indirection table so that each constant in the table of constants can be fetched by an entry in the indirection table. A Pcode is a data representation of a set of instructions populating the indirection table with offsets toward the table of constants storing the indirection table in the allocated array in the compiled binary. The method further includes populating the indirection table with offsets equivalent to the table of constants, and storing the indirection table in the allocated array in the compiled binary. Constants can be of any data type. Constants can be one byte each or more than one byte each. In one aspect, the method further includes splitting constants into two or more segments, treating each segment as a separate constant when transforming the table of constants, and generating a function to retrieve and reconstruct the split constants.


Find Patent Forward Citations

Loading…