Apple Dreams up a New Way of Charging Cold Batteries
A New Patent Reveals Scrollable Menus & Toolbars for OS X Lion

Apple Working on New Ways to Thwart Reverse Engineering

1b - cover - apple patents methods to thwart reverse engineering - patent nov 2010 
Not all patent reports are as much fun as reading about a new laser tagging game and framework from Apple. Yet sometimes it's as, or even more interesting to read about some of the more hum-drum type of devices and technologies that Apple's engineers are working on in their labs - because they're more likely to get implemented than the flashier patents. One such patent involves new battery techniques. Another is found in this current patent report which presents you with a glimpse at what Apple is doing to thwart the efforts of reverse engineering. Apple is working on several avenues on this front and we'll give you a peek at what they're up to.   


Patent Background


Software publishers often attempt to restrict access to portions of compiled software executables to thwart would-be reverse engineering while still allowing the executables to function properly. Reverse engineering is the practice of dissecting and/or analyzing software to understand how it works. On certain systems, reverse engineering could retrieve information stored within software such as information related to cryptographic keys or copy protection schemes. Reverse engineers could even tamper with the software itself.


Would-be attackers typically have access to the executable code for software and could try to reverse engineer it at their leisure. Those of skill in the art are aware of many approaches to harden a piece of software to such reverse engineering attempts. However, problems with these approaches include rapid growth of source code and increased computational requirements. Such source code could be very difficult to maintain. Further, if an attacker compromises the hardening scheme, the software is difficult to rewrite.


Suppose a software publisher includes proprietary keys, algorithms, and copy protection related information in software for sale. Reverse engineers could quickly obtain legitimate or illegitimate copies of the software and commence testing the software for weaknesses and thereby extract proprietary keys and algorithms. What is needed in the art is an improved way to make software more resistant to reverse engineering.


Patent Summary


Disclosed herein are systems, computer-implemented methods, and tangible computer-readable media for obfuscating code, such as instructions and data structures. Also disclosed are tangible computer-readable media containing obfuscated code. In one aspect, a preprocessing tool (i.e. before compilation) identifies in a source program code a routine for replacement. The tool can be a software program running on a computer or an embedded device. The tool then selects a function equivalent to the identified routine from a pool of functions to replace the identified routine. A compiler can then compile computer instructions based on the source program code utilizing the selected function in place of the identified routine. In another aspect, the tool replaces data structures with fertilized data structures. The two approaches can be combined to fertilize both routines and data structures. These approaches can be applied to various portions of source program code based on needs for complexity, speed, or resistance to reverse-engineering attempts. A software developer can flexibly configure how and where to apply this approach to the source code. The tool can be incorporated as part of a compiler or as separate modules acting external to a compiler.


Obfuscating Source Code with a Preprocessor


2 - apple inc, obfuscating source code with a preprocessor - nov 2010 

Apple's patent FIG. 3 illustrates another system 300 that obfuscates source code 302 with a preprocessor 304 which selects one or more equivalent functions from a pool of functions 306 to replace the identified routine and/or one or more equivalent data structures from a pool of data structures 308. The preprocessor 304 passes obfuscated intermediate code to the compiler 310 which generates compiled instructions 312. One advantage of this approach is that any suitable commercial off-the-shelf compiler can be used without modification. Another advantage of this approach is that the preprocessor is interchangeable with other preprocessors having different performance characteristics, such as faster compile times or recursive replacement. The system can chain a series of preprocessors one after another in order to perform several fertilization passes at each preprocessor.


2 - obfuscating compiler, apple patent nov 2010 fig 5 

Apple's noted patent FIG. 5 above represents the heart of this invention. It illustrates a detailed view of an example obfuscating compiler. A compiler could include a subset of the shown components as well as additional components.


If you're interested in this topic, then use this temporary link to check it out further. If you're not a programmer or engineer, you may find it a difficult read. Apple credits Pierre Betouin (France), Mathieu Ciet (France) and Augustin Farrugia as the inventors of patent application 20100281459, originally filed in Q2 2009. Update December 2, 2010: Another related patent has surfaced on this matter under patent 20100306497.


Other Noteworthy Patent Applications Published Today


There were three iMovie and Final Cut related editing centric patents published today if that interests anyone. The titles of these patents include the following: "Tool for Navigating a Composite Presentation" (20100281372); "Tool for Grouping Media Clips for a Media Editing Application" (20100278504); "Editing and Saving Key-Indexed Geometries in Media Applications" (20100281380). The image noted below belongs to the latter patent. 


Note: the temporary links noted above in parenthesis will only last a few days. Should any of the noted links lead you to unrelated patents, simply take the patent numbers noted above and feed them into this search engine.


Update 4:30 PM: Although the patents noted above don't state that Apple is the assignee, the fact is that late Apple filiings do just that. One example form related to one of the late filings is noted below covering patent 20100281372. The USPTO form was modified to fit our page.



4 Update B - Apple Inc - Final Cut Pro Patent Graphics - report Nov 4, 2010 

Notice: Patently Apple presents only a brief summary of patents with associated graphic(s) for journalistic news purposes as each such patent application is revealed by the U.S. Patent & Trade Office. Readers are cautioned that the full text of any patent application should be read in its entirety for further details. About Comments: Patently Apple reserves the right to post, dismiss or edit comments.



The comments to this entry are closed.