Skip to main content
Log in

Using information obtained in the course of program execution for improving the quality of data type reconstruction in decompilation

  • Published:
Programming and Computer Software Aims and scope Submit manuscript

Abstract

Methods of improving the decompilation quality, that is, the reconstruction of a program in a high-level language from a given program in a low-level language, are considered. Decompilation is considered as a reverse engineering problem; problems of decompilation quality are examined, and metrics for assessing this quality are proposed.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Dolgova, E.N. and Chernov, A.V., Automatic Reconstruction of Data Types in the Decompilation Problem, Programmirovanie, 2009, No. 2, pp. 63–80 [Programming Comput. Software (Engl. Transl.), 2009, vol. 35, no. 2, pp. 105–119].

  2. Hex-Rays Decompiler SDK, http://www.hex-rays.com/.

  3. Halstead, M.H., Elements of Software Science, Elsevier, North-Holland, 1997.

    Google Scholar 

  4. Mycroft, A., Type-Based Decompilation, in 8th European Symp. on Programming Languages and Systems, Lect. Notes Comput. Sci., 1999, vol. 1576, pp. 208–223.

    Google Scholar 

  5. Balakrishnan, G. and Reps, T., DIVINE: Discovering Variables in Executables, Verification, Model Checking Abstract Interpretation, 2007, vol. 4349, pp. 5–23.

    Google Scholar 

  6. Balakrishnan, G. and Reps, T., Analyzing Memory Accesses in x86 Executables, Compiler Construction, 2004, vol. 2985, pp. 5–23.

    Article  Google Scholar 

  7. Balakrishnan, G. and Reps, T., Improved Memory-Accesses Analysis in x86 Executables, Compiler Construction, 2008, vol. 4959, pp. 16–35.

    Article  Google Scholar 

  8. Balakrishnan, G. and Ganai, M., PED: Proof-Guided Error Diagnosis by Triangulation of Program Error Causes, in Proc. of Software Engineering and Formal Methods (SEFM), 2008.

  9. Gusenko, M.Yu., Decompilation of Datatypes in Executables, in Security in Information Technologies, 1998, pp. 83–88.

  10. Gusenko, M.Yu., Decompilation of Datatypes in win32 Executables, in Security and Privacy in Networks and Systems, 1998, pp. 35–36.

  11. Cifuentes, C. and Fraboulet, A., Interprocedural Static Data Flow Recovery of High-Level Language Code from Assembly, Technical Report of Department of Computer Science and Electrical Engineering, Queensland University, Brisbane, Australia, 1997, no. 421.

  12. Cifuentes, C., Simon, D., and Fraboulet, A., Assembly to High-Level Language Translation, in Int. Conf. on Software Maintenance, 1998, vol. 20, no. 16, pp. 223–237.

    Google Scholar 

  13. Cifuentes, C., Emmerik, M., Lewis, B., and Ramsey, N., Experience in the Design, Implementation, and Use of a Retargetable Static Binary Translation Framework, Technical Report of Sun Microsystems Laboratories of Sun Microsystems, Palo Alto, Calif., 2002, no. SMLI TR-2002-105.

  14. Cuo, P., Perkins, J., McCamant, S., and Ernst, M., Dynamic Inference of Abstract Types, in Proc. of ISSTA, 2006, pp. 749–754.

  15. Burroes, M., Fruend, S., and Wiener, J., Run-Time Type Checking or Binary Programs, Proc. of CC, 2003, pp. 90–105.

  16. Nethercote, N. and Seward, J., Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation, Proc. of ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), San Diego, California, 2007.

  17. Valgrind documentation, http://valgrind.org/docs.

  18. Antonov, V.Yu. and Dolgova, E.N., Reconstruction of Data Types Using Program Execution Information, in Sb. statei molodykh uchenykh fakul’teta VMiK MGU, 2009, no. 6, pp. 6–16.

  19. Sazeides, Y. and Smith, J., The Predictability of Data Value, in Proc. of Micro-30, 1997, pp. 749–754.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to E. N. Troshina.

Additional information

Original Russian Text © E.N. Troshina, A.V. Chernov, 2010, published in Programmirovanie, 2010, Vol. 36, No. 6.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Troshina, E.N., Chernov, A.V. Using information obtained in the course of program execution for improving the quality of data type reconstruction in decompilation. Program Comput Soft 36, 343–362 (2010). https://doi.org/10.1134/S0361768810060046

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1134/S0361768810060046

Keywords

Navigation