Patent application number | Description | Published |
20130232323 | OBFUSCATION OF CONTROL FLOW OF SOFTWARE - Methods, media and systems that obfuscate control flow in software programs. The obfuscation can impede or prevent static flow analysis of a software program's control flow. In one embodiment, a method, performed by a data processing system, identifies each branch point in a set of branch points in a first version of software and replaces, in each branch point in the set, a representation of a target of the branch point with a computed value that depends upon at least one prior computed value in a stream of instructions in the first version of software. Other embodiments are also described. | 09-05-2013 |
20130232507 | DATA PROTECTION FOR OPAQUE DATA STRUCTURES - Methods, media and systems that use an encoded opaque pointer in an API between a client process and a library process. An encoded opaque pointer, in one embodiment, can be received by the library process from the client process, and the library process can decode the opaque pointer to obtain an address in memory containing a data structure pointed to by the opaque pointer. The library process can operate on the data structure to create a revised or processed data structure, stored in the same or different address in heap memory or stack memory, and the library process can encode and return a new opaque pointer, for the processed data structure, to the client process. | 09-05-2013 |
20140095812 | OBFUSCATING FUNCTION RESOURCES WHILE REDUCING STACK CONSUMPTION - In one embodiment, a system wide static global stack pool in a contiguous range of random access memory is generated, a block of memory in the system global pool is assigned to a thread of a running process, and the thread stores local variable information in static global stack pool, such that the local variable is hidden from a stack frame back-trace. In one embodiment, a dynamically allocated data structure in system heap memory is generated, the data structure is locked to ensure atomic access, a block of memory in the data structure is assigned to a thread of a process, the data structure is unlocked, and the thread stores local variable information in static global stack pool, such that the local variable is hidden from a stack frame back-trace. | 04-03-2014 |
20140115292 | DYNAMIC OBFUSCATION OF HEAP MEMORY ALLOCATIONS - Techniques, methods, systems, and computer-readable media for allocating and managing dynamically obfuscated heap memory allocations are described. In one embodiment a memory manager in a data processing system contains an addressor, to determine a first address of a program object in a first memory address space, and one or more encoders, to abstract memory access to the program object using the first address such that layout of the object data in the first address space differs from the layout of the object in a second address space. In one embodiment, a runtime system modifies object code of an executable file to include encoder routines to abstract memory accesses to data in an obfuscated heap. In one embodiment, a compiler system using an intermediate representation of a high level program generates an intermediate representation of a high level program capable of performing memory writes and memory reads using obfuscation encoder routines. | 04-24-2014 |
20140165208 | METHOD AND APPARATUS FOR DYNAMIC OBFUSCATION OF STATIC DATA - A method and an apparatus that provide rewriting code to dynamically mask program data statically embedded in a first code are described. The program data can be used in multiple instructions in the first code. A code location (e.g. an optimal code location) in the first code can be determined for injecting the rewriting code. The code location may be included in two or more execution paths of first code. Each execution path can have at least one of the instructions using the program data. A second code may be generated based on the first code inserted with the rewriting code at the optimal code location. The second code can include instructions using the program data dynamically masked by the rewriting code. When executed by a processor, the first code and the second code can generate identical results. | 06-12-2014 |
20140201720 | BRANCH AUDITING IN A COMPUTER PROGRAM - A branch auditing system can be automatically injected into a computer program, in one embodiment, in response to a programming call provided in source code by a programmer who has selected a particular branch, in a set of possible branches, for auditing. The branch auditing system can record, in an obfuscated data structure, a path taken at the particular branch and the parameters associated with the branch and later an auditor can determine whether the path taken was valid, and if the path taken was invalid, operations can be performed to protect the program, system and/or user. | 07-17-2014 |
20140344924 | PREVENTING UNAUTHORIZED CALLS TO A PROTECTED FUNCTION - An obfuscated program can be configured to resist attacks in which an attacker directly calls a non-entry function by verifying that an execution path to the function is an authorized execution path. To detect an unauthorized execution order, a secret value is embedded in each function along an authorized execution path. At runtime, the secrets are combined to generate a runtime representation of the execution path, and the runtime representation is verified against an expected value. To perform the verification, a verification polynomial is evaluated using the runtime representation as input. A verification value result of zero means the execution path is an authorized execution path. | 11-20-2014 |
Patent application number | Description | Published |
20090312240 | Synthesis of Sialic Acid in Plants - A method of synthesizing sialic acid in plants, and plants capable of synthesizing sialic acid is provided. Furthermore, a method of producing sialylated a protein in a plant is also provided. The method to synthesize sialic acid comprises providing a plant comprising a nucleotide sequence encoding N-acetyl neuraminic acid (Neu5Ac) synthase or Neu5Ac lyase, and expressing the nucleotide sequence thereby synthesizing sialic acid. The plant may also co-express a nucleotide sequence encoding one or more than one of an epimerase, a CMP-Neu5 Ac synthase, CMP-Neu5Ac transporter and a sialyltransferase. | 12-17-2009 |
20110008837 | MODIFYING GLYCOPROTEIN PRODUCTION IN PLANS - A method for synthesizing a protein of interest with a modified N-glycosylation profile within a plant, a portion of a plant, or a plant cell is provided. The method comprises co-expressing within a plant a nucleotide sequence encoding a first nucleotide sequence encoding a hybrid protein (GNT1-GalT) comprising a CTS domain of N-acetylglucosaminyl transferase (GNT1) fused to a catalytic domain of beta-1,4galactosyltransferase (GalT), the first nucleotide sequence operatively linked with a first regulatory region that is active in the plant, and a second nucleotide sequence for encoding the protein of interest, the second nucleotide sequence operatively linked with a second regulatory region that is active in the plant. The first and second nucleotide sequences are co-expressed to synthesize a protein of interest comprising glycans with the modified N-glycosylation profile within the plant, the portion of the plant, or the plant cell. | 01-13-2011 |
20110045533 | PRODUCTION OF GLYCOSYLATED POLYPEPTIDES IN MICRO ALGAE - Transformed microalgae capable of expressing glycosylated polypeptides and methods for producing said transformed microalgae and producing glycosylated polypeptides. | 02-24-2011 |
20140154707 | N-GLYCOSYLATION IN TRANSFORMED PHAEODACTYLUM TRICORNUTUM - Transformed | 06-05-2014 |