发明名称 Systems, methods, and computer-readable media for fertilizing machine-executable code
摘要 Disclosed herein are systems, computer-implemented methods, and non-transitory computer-readable storage media for obfuscating code, such as instructions and data structures. Also disclosed are non-transitory 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. These approaches can be applied to various portions of source program code based on various factors. A software developer can flexibly configure how and where to fertilize the source code.
申请公布号 US9128722(B2) 申请公布日期 2015.09.08
申请号 US201313851581 申请日期 2013.03.27
申请人 Apple Inc. 发明人 Betouin Pierre;Ciet Mathieu;Farrugia Augustin J.
分类号 G06F9/44;G06F9/45;G06F21/14 主分类号 G06F9/44
代理机构 Novak Druce Connolly Bove + Quigg LLP 代理人 Novak Druce Connolly Bove + Quigg LLP
主权项 1. A system comprising: a processor; a first module configured to control the processor to identify in a program a data structure for replacement, wherein the program includes an instance of the data structure, the data structure supporting at least read and write operations to store and organize data; a second module configured to control the processor to replace the instance of the data structure, the replacing comprising: selecting a replacement data structure from a pool of data structures semantically equivalent to the identified data structure, wherein each semantically equivalent data structure can store and organize the data using a unique organizational structure different than the identified data structure and different than each other semantically equivalent data structure, and utilizing the replacement data structure in place of the identified data structure for the instance, wherein the replacement data structure includes a different number of fields than the identified data structure.
地址 Cupertino CA US