Partial automation of an integrated reverse engineering environment of binary code

The constant development of newer and faster machines requires software to be made available on those new machines at a rate faster than what it takes to develop the software. The use of binary translation techniques to migrate software from one machine to another is effective-it makes software available in little time without incurring reprogramming costs. However the development of such a tool is in itself an issue, as with each new architecture, a new tool needs to be written. The author presents a partially automated integrated environment for the reverse engineering of binary or executable code. This environment is suitable for the development of disassemblers, binary translators and decompilers.

[1]  Norman Ramsey,et al.  The New Jersey Machine-Code Toolkit , 1995, USENIX.

[2]  Mike Emmerik Signatures for Library Functions in Executable Files , 1994 .

[3]  George Havas,et al.  An Optimal Algorithm for Generating Minimal Perfect Hash Functions , 1992, Inf. Process. Lett..

[4]  M. Halstead Machine-independent computer programming , 1962 .

[5]  Z. Segall,et al.  Timing insensitive binary-to-binary migration across multiprocessor architectures , 1995, Proceedings of Third Workshop on Parallel and Distributed Real-Time Systems.

[6]  Cristina Cifuentes,et al.  Interprocedural data flow decompilation , 1996, J. Program. Lang..

[7]  James R. Larus,et al.  Optimally profiling and tracing programs , 1994, TOPL.

[8]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[9]  Richard L. Sites,et al.  Binary translation , 1993, CACM.

[10]  Liu Zongtian,et al.  Design and Implementation Techniques of the 8086 C Decompiling System , 1995 .

[11]  Corporate SPARC architecture manual - version 8 , 1992 .

[12]  R. Nigel Horspool,et al.  An Approach to the Problem of Detranslation of Computer Programs , 1980, Comput. J..

[13]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[14]  Cristina Cifuentes,et al.  Decompilation of binary programs , 1995, Softw. Pract. Exp..

[15]  Cristina Cifuentes,et al.  Structuring Decompiled Graphs , 1996, CC.

[16]  Cristina Cifuentes,et al.  Binary translation: static, dynamic, retargetable? , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[17]  Kristy Andrews,et al.  Migrating a CISC computer family onto RISC via object code translation , 1992, ASPLOS V.

[18]  C. May Mimic: a fast system/370 simulator , 1987, PLDI 1987.