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.
Patent No.:
Date of Patent:
Nov. 11, 2014
Filed:
Jan. 15, 2010
Julien Lerouge, Santa Clara, CA (US);
Nicholas T. Sullivan, Sunnyvale, CA (US);
Gideon M. Myles, San Jose, CA (US);
Jon Mclachlan, San Francisco, CA (US);
Augustin J. Farrugia, Cupertino, CA (US);
Julien Lerouge, Santa Clara, CA (US);
Nicholas T. Sullivan, Sunnyvale, CA (US);
Gideon M. Myles, San Jose, CA (US);
Jon McLachlan, San Francisco, CA (US);
Augustin J. Farrugia, Cupertino, CA (US);
Apple Inc., Cupertino, CA (US);
Abstract
Disclosed herein are systems, methods, and computer-readable storage media for obfuscating using inlined functions. A system configured to practice the method receives a program listing including annotated functions for obfuscation, identifies an annotated function called more than once in the program listing, and creates an inline control flow structure in the program listing for the identified annotated function, the control flow structure being computationally equivalent to inlining the identified annotated function into the program listing for each occurrence of the identified annotated function. The program listing can include tiers of annotated functions. The system can identify annotated functions called more than once based on an optionally generated callgraph. The system can create inline control flow structures in the program listing in order of annotation importance. The system can identify how many times each annotated function is called in the program listing.