Nothing Special   »   [go: up one dir, main page]

Skip to main content

Design and Implementation of the Decompiler for Virtual Machine Code of the C++ Compiler in the Ubiquitous Game Platform

  • Conference paper
Advances in Hybrid Information Technology (ICHIT 2006)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 4413))

Included in the following conference series:

Abstract

The ubiquitous game platform implemented by our team is composed of a C++ compiler, a java translator, and a virtual machine. The EVM (Embedded Virtual Machine) is a stack-based solution that supports object-oriented languages such as C++ and java. It uses the SIL (Standard Intermediate Language) as an intermediate language, which consists of an operation code set for procedural and object-oriented languages. The existing C++ compilers are used to execute programs after translating them into a target machine code. The downside of this method is its low practicality, along with its platform-dependency. To resolve this matter, we developed a C++ compiler that generates virtual machine codes based on platform-independent stacks that are not target machine codes. This paper presents a decompiler system that converts a C++ compiler generated intermediate language, namely SIL, to a representation of a C++ program. This method optimizes the simulation needed for the generation of exacted SIL code, and a solution that can verify the SIL code generation through a C++ program represented in the decompiler. Furthermore, the ease of extracting the meaning of a program, as opposed to assembly-structured SIL codes, allows much more convenience in changing the software structure and correcting it to improve performance.

This research is accomplished as the result of the research project for culture contents technology development supported by KOCCA.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Stroustrup, B.: The C++ Programming Language. Addison-Wesley, Reading (2000)

    Google Scholar 

  2. Galles, D.: Modern Compiler Design. Addison-Wesley, Reading (2004)

    Google Scholar 

  3. International Standard, Programming Language-C++ 14882:1998(E), ISO/IEC (1998)

    Google Scholar 

  4. Microsoft, MSIL Instruction Set Specification (November 2000)

    Google Scholar 

  5. Microsoft, The IL Assembly Language Programmer’s Reference (October 2000)

    Google Scholar 

  6. Lindin, S.: Inside Microsoft.NET IL Assembler. Microsoft Press, Redmond (2002)

    Google Scholar 

  7. Venners, B.: Inside the JAVA Virtual Machine, 2nd edn. McGraw-Hill, New York (2000)

    Google Scholar 

  8. Lindholm, T., Yellin, F.: The Javatm Virtual Machine Specification, 2nd edn. Addison-Wesley, Reading (1999)

    Google Scholar 

  9. Hsieh, C.A., Conte, M.T., Johnson, T.L.: Java Bytecode to Native Code Translation: the Caffeine Prototype and Preliminary Results. In: Proceedings of the IEEE 29th Annual International Symposium on Microarchitecture (December 1996)

    Google Scholar 

  10. McGhan, H., O’Conner, M.: PicoJava: A Direct Execution Engine for Java Bytecode. IEEE Computer, 22–30 (1998)

    Google Scholar 

  11. Veldema, R.: Jcc, A Native Java Compiler, Vrije Universiteit Amsterdam (July 1998)

    Google Scholar 

  12. Van Vliet, H., Mocha, http://www.brouhaha.com/~eric/computers/mocha.html

  13. Innovative Software, Dejavu, http://www.isg.de/OEW/Java

  14. Kouznetsov, P., Jad, http://www.kpdus.com/jad.html

  15. Wingsoft, Wingdis, http://www.wingsoft.com

  16. Remotsoft, Salamender, http://www.remotesoft.com/salamander/index.html

  17. Netdecompiler, Dis#, http://netdecompiler.com/index.html

  18. Son, M.-S., Bae, S.-K., Lee, Y.-S.: Design and Implementation of a Symbol Table Detranslator for C++ Compiler. In: Korea MultiMedia Society Conference, vol. 8(2), pp. 181–184 (2005)

    Google Scholar 

  19. Oh, S.-M., Lee, Y.-S., Ko, K.-M.: Design and Implementation of the Virtual Machine for Embedded System. Journal of Korea MultiMedia Society 9(8), 1282–1291 (2005)

    Google Scholar 

  20. Kim, Y.-K., Kwon, H.-J., Lee, Y.-S.: Design and Implementation of Decompiler for Generating C Program from EVM SIL. In: Korea Information Processing Society Conference, vol. 12(1), pp. 549–552 (2005)

    Google Scholar 

  21. Kim, Y.-K., Kwon, H.-J., Lee, Y.-S.: Java Bytecode-to-SIL Translator using an Abstract Syntax Tree. In: Korea Information Processing Society Conference, vol. 1(11), pp. 519–522 (2004)

    Google Scholar 

  22. Park, J.-K., Kim, Y.-K., Kwon, H.-J., Lee, Y.-S.: Translator System for Embedded Virtual Machine. In: Korea MultiMedia Society Conference, vol. 8(2), pp. 180–183 (2005)

    Google Scholar 

  23. Tonella, P.: Alessandra Potrich: Reverse Engineering of Object-Oriented Code. Springer, Heidelberg (2005)

    Google Scholar 

  24. Eilam, E.: Reversing: Secrets of Reverse Engineering. Wiley Publishing, Chichester (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Marcin S. Szczuka Daniel Howard Dominik Ślȩzak Haeng-kon Kim Tai-hoon Kim Il-seok Ko Geuk Lee Peter M. A. Sloot

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lee, Y., Kim, Y., Kwon, H. (2007). Design and Implementation of the Decompiler for Virtual Machine Code of the C++ Compiler in the Ubiquitous Game Platform. In: Szczuka, M.S., et al. Advances in Hybrid Information Technology. ICHIT 2006. Lecture Notes in Computer Science(), vol 4413. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77368-9_50

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-77368-9_50

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-77367-2

  • Online ISBN: 978-3-540-77368-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics