
Software Anti-Tamper for Real-Time Systems
We are developing a tool that protects software
from reverse engineering by analyzing and rewriting software binaries
with anti-tamper techniques. The advantages of working on binaries
include:
- Machines do not run source code; they run executables. Therefore,
binaries reflect actual behaviors that may arise during program
execution.
- Approaches based on source code must make assumptions (e.g., that
the code is ANSI compliant) that cannot be checked. These assumptions
can introduce a variety of problems, such as serious loss of precision
and reliability. Tools based on binaries do not make such
compromises.
- External libraries and COTS components can be handled by binary
tools.
- Source code may not be available, may not be trustworthy, or may
be in more than one language. In all of these cases, tools that
examine binaries can still be applied.
Existing approaches to rewriting binaries are typically limited to
simple patches. In contrast, GrammaTech's approach involves creation
of a high-precision fine-grained intermediate representation of the
binary that allows massive modification and restructuring of the
program.
This project has been selected for the prestigious U.S. Army
Commercialization Pilot Program (CPP). For more information see our press release.