Discovering code and data in a binary executable program

Patent

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

395701, 395702, 395704, 395705, 395706, 395707, G06F 9445

Patent

active

060145137

ABSTRACT:
A computer software tool used for automatically identifying code portions and data portions of a binary executable software program in which the code portions include machine instructions that are of arbitrary length. Software products are typically distributed as binary, executable files, which comprise a string of binary values. In general, an executable file has no structure or meaning, except as determined by its behavior when dynamically executed, one instruction at a time, by a digital computer. The software tool determines a set of addresses for any known code and data portions. The tool is then used to disassemble machine instructions, beginning at a starting address for each known code portion, to identify the target addresses of other code portions and other data portions. Other sections of the binary executable software program that could be either code or data are then analyzed to identify additionAL code and data portions. As new portions are identified, the steps are repeated, until no further code or data portions are identifiable. The binary executable software program may include a plurality of executable modules. The entry addresses for each executable module and any addresses for code portions and data portions referenced and identified by any debug address, any export address, and any relocation address is added to the set of addresses. The binary executable software program is then executed to dynamically identify other executable modules so that the set of addresses can be further extended.

REFERENCES:
patent: 4937777 (1990-06-01), Flood et al.
patent: 5115500 (1992-05-01), Larsen
patent: 5151981 (1992-09-01), Westcott et al.
patent: 5214763 (1993-05-01), Blaner et al.
patent: 5216613 (1993-06-01), Head, III
patent: 5295249 (1994-03-01), Blaner et al.
patent: 5603043 (1997-02-01), Taylor et al.
patent: 5790856 (1998-08-01), Lillich
patent: 5930509 (1999-07-01), Yates et al.
Ramsey et al., "Specifying Representations of Machine Instructions", ACM, pp. 492-524, May 1997.
Ramsey, "Relocating Machine Instruction by Currying", ACM, pp. 226-236, May 1996.
Hannan, "Operational Semantics-directed Compliers and Machine Architectures", ACM, pp. 1215-1247, Jul. 1994.
Cifuentes et al., "Intraprocedural Static Slicing of Binary Executables", IEEE, pp. 188-195, Oct. 1997.
Nichols et al., Data Management and Control-flow Aspects of an SIMD/SPMD parallel Language/Complier, IEEE, pp. 222-234, Feb. 1993.
Aho et al., "Compilers Principles, Techniques, and Tools", Addison-Wesley Publishing, pp. 10-15, 513-518, 522-538, 1988.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Discovering code and data in a binary executable program does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Discovering code and data in a binary executable program, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Discovering code and data in a binary executable program will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-1468555

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.