JOURNAL OF THE FACULTY OF ENGINEERING AND ARCHITECTURE OF GAZI UNIVERSITY, cilt.30, sa.1, ss.19-28, 2015 (SCI-Expanded)
Software reverse engineering is a discipline of generating the system of abstracts and design information by analyzing the effects, functions, behaviors and documents of the software codes on hardware components. Assembler, unassembler, virtual simulators and debuggers can be listed as software reverse engineering tools. In this study, an unassembler application is developed for translating various-length machine codes, which belong to Intel microprocessor instruction set, into the symbolic form of the machine language. This application is designed both for 32-bit Intel microprocessor architectures while it can also be used for compilers. It is an open source software with the capabilities of translating table-based in-line codes and offering a certain hierarchy for the procedure. In addition, updating the software is also possible for future considerations. With its nature of working both as an assembler and an unassembler, this software brings a different perspective and depth to the existing table-based unassembler applications which are only used for certification and description.