REVERSE ENGINEER
You can lease our expertise here!
We study the program code and do reverse engineering and embedded code analysis.
- This means that we can help you if you lost contact with the developers of your software.
- You software may be working for decades, but then require a modification while the developers are already out of business.
- Your software may need obsolete hardware to run, which is increasingly difficult to use and maintain.
- Your software may control production equipment which you can't abandon.
- At the same time, developing new software from the scratch may be excessively costly, take much time and possibly entail the disclosure of your commercial secrets.
Our services are most often used for:
- Minor code modifications, or tuning, which would allow your software to run under a different OS.
- Interface modification, content substitution.
- Structural examination of databases and data files which need to be presented in different format.
- Structural analysis of data streams.
- Exposure and analysis of various encryption algorythms.
- Insertion of external modules into the software. For example, in a program that comprises two modules that exchange data, we can cut off one of the modules and redirect the relevant data streams from the remaining module to an external DLL written either by us or your developers.
You may also resort to our help when :
- You want to simply know how the software works.
- You want to make sure that your software does not contain trojans or traps left by the original developers.
- You want to use a hardware device under a different OS and you don't have a corresponding driver.
- You want to find out whether your program is well protected against cracking.
- You want to check if any specific (copyrighted) algorythm has been used in the software.
- You want to do anything else related to code analysis.
We can do all these because we have:
- Sublime knowledge of assembler.
- Perfect command of mainstream programming languages.
- Clear understanding of peculiarities of different compilers' operations.
- Well-developed intuition to help us recognize the meaning of any vague code.
- Patience.
- Patience.
- Vigour.
We have already made software to:
- Work with different interface.
- Use different types of incoming and outgoing data.
- Operate under a different OS.
- We have also made hardware work with custom-built drivers under different operating systems.
An example:
Using our experience and specially designed methods, we managed to find the "calculator" procedure among 1.5 million x86-commands that make up the code of Microsoft Excel 97. It took us just one hour.
Our runtime-patch program intercepts control right at the place where Excel adds numbers.
You can download the runtime-patcher here,
and see its source code here.
The patcher is to be run from the Excel root directory where excel.exe file is located.
Definition (entirely copied from "Software Engineering Terminology"):
<cite>
reverse engineering
The process of developing a set of specifications for a complex hardware system by an orderly examination of specimens of that system. [Rekoff 1985]
The process of analysing an existing system to identify its components and their interrelationships and create representations of the system in another form or at a higher level of abstraction. Reverse engineering is usually undertaken in order to redesign the system for better maintainability or to produce a copy of a system without access to the design from which it was originally produced. For example, one might take the executable code of a computer program, run it to study how it behaved with different input and then attempt to write a program oneself which behaved identially (or better). An integrated circuit might also be reverse engineered by an unscrupulous company wishing to make unlicensed copies of a popular chip. (1995-10-06)
The process of extracting software system information (including documentation) from source code [IEEE Std 1219-1998]
Reverse engineering is the process of analyzing a subject system to: identify the system's components and their interrelationships and; create representations of the system in another form or at a higher level of abstraction. Reverse engineering generally involves extracting design artifacts and building or synthesizing abstractions that are less implementation-dependent. Reverse engineering in and of itself does not involve changing the subject system or creating a new system based on the reverse-engineered subject system. It is a process of examination, not a process of change or replication. [Chikofsky&Cross 1990]
</cite>
We succesfully work with C, C++, C# (.NET), Assembler, Pascal, Delphi, Java, LISP, AutoLISP, FoxPro, any x86 compatible hardware under DOS, any version of Windows, OS/2, QNX, Linux and majority of Unix-type operating systems.
Wikipedia-based reverse engineering resource.
Detailed description of the code analysis process: 1 2.
In the list of our customers: Applied Wave Research, Blue Lane Technologies, Spectrum Software, Inc., Electrotest-UK, VocEdit, Inc.
We grant complete confidentiality.
We are interested in taking challenge.
We can be contacted at: info@reverse-engineer.info.
|
© 2006 reverse-engineer.info
|