Executable binary code insertion
AssigneeRunsafe Security, Inc.
InventorsErik Raymond Lotspeich, David Nicholas Graham
Life of this patent
Estimating the term…
Abstract
An automated and processor agnostic method is described for modifying one or more executable binary files to insert one or more new software segments to modify the execution of the one or more executable binary files in at least certain circumstances. The modification takes into account the target microprocessor architecture of the one or more executable binary files which can be in the ELF format. In one embodiment, the new software segments are configured to add at least monitoring capabilities to monitor control flow integrity during execution of the one or more executable binary files.
Claims20
A method for modifying an executable software file, the method comprising:
- receiving an existing executable software file;
- receiving a new loadable section for an executable segment of software to be added to the existing executable software file;
- copying content of a section header string table in the existing executable software file into a new section header string table for which memory has been allocated;
- adding a new section name for the new loadable section into the new section header string table;
- writing the new loadable section to an end of the existing executable software file;
- copying content of a section header table in the existing executable software file into a new section header table and adding a new section entry data for the new loadable section into the new section header table and writing the new section header table into the existing executable software file;
- copying content of a program header table in the existing executable software file into a new program header table and adding a new segment entry data for the executable segment into the new program header table and writing the new program header table into the existing executable software file;
- returning a virtual address and a file offset for the executable segment added to the existing executable software file to create a new executable software file.
A non-transitory machine readable medium storing executable program which when executed by a data processing system cause the data processing system to perform a method for modifying an executable software file, the method comprising:
- receiving an existing executable software file;
- receiving a new loadable section for an executable segment of software to be added to the existing executable software file;
- copying content of a section header string table in the existing executable software file into a new section header string table for which memory has been allocated;
- adding a new section name for the new loadable section into the new section header string table;
- writing the new loadable section to an end of the existing executable software file;
- copying content of a section header table in the existing executable software file into a new section header table and adding a new section entry data for the new loadable section into the new section header table and writing the new section header table into the existing executable software file;
- copying content of a program header table in the existing executable software file into a new program header table and adding a new segment entry data for the executable segment into the new program header table and writing the new program header table into the existing executable software file;
- returning a virtual address and a file offset for the executable segment added to the existing executable software file to create a new executable software file.
Dependencies are inferred from the claim text.