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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Stroustrup, B.: The C++ Programming Language. Addison-Wesley, Reading (2000)
Galles, D.: Modern Compiler Design. Addison-Wesley, Reading (2004)
International Standard, Programming Language-C++ 14882:1998(E), ISO/IEC (1998)
Microsoft, MSIL Instruction Set Specification (November 2000)
Microsoft, The IL Assembly Language Programmer’s Reference (October 2000)
Lindin, S.: Inside Microsoft.NET IL Assembler. Microsoft Press, Redmond (2002)
Venners, B.: Inside the JAVA Virtual Machine, 2nd edn. McGraw-Hill, New York (2000)
Lindholm, T., Yellin, F.: The Javatm Virtual Machine Specification, 2nd edn. Addison-Wesley, Reading (1999)
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)
McGhan, H., O’Conner, M.: PicoJava: A Direct Execution Engine for Java Bytecode. IEEE Computer, 22–30 (1998)
Veldema, R.: Jcc, A Native Java Compiler, Vrije Universiteit Amsterdam (July 1998)
Van Vliet, H., Mocha, http://www.brouhaha.com/~eric/computers/mocha.html
Innovative Software, Dejavu, http://www.isg.de/OEW/Java
Kouznetsov, P., Jad, http://www.kpdus.com/jad.html
Wingsoft, Wingdis, http://www.wingsoft.com
Remotsoft, Salamender, http://www.remotesoft.com/salamander/index.html
Netdecompiler, Dis#, http://netdecompiler.com/index.html
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)
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)
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)
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)
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)
Tonella, P.: Alessandra Potrich: Reverse Engineering of Object-Oriented Code. Springer, Heidelberg (2005)
Eilam, E.: Reversing: Secrets of Reverse Engineering. Wiley Publishing, Chichester (2005)
Author information
Authors and Affiliations
Editor information
Rights 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)