DOI QR코드

DOI QR Code

Visualized Execution Analyzer for the Java Class File

자바 클래스 파일에 대한 시각화 실행 분석기

  • 고광만 (상지대학교 컴퓨터정보공학부)
  • Published : 2004.10.01

Abstract

The Java language is rapidly being adopted in the Internet. The distributed applications and their application range are being expanded beyond just a programing language and developed Into software applications. A variety of researches are going on with regard to the Java Virtual Machine runtime environment and methods of analyzing the Java class files and utilizing the information for applications. A class file is a converted file that is executable by the Java virtual machine. Analysis on the class file structure and the runtime processes will be convenient in arranging the decompilers and debugging the source programs. This paper is about the runtime process analyzer that presents the runtime processes, including class files, more visually. The content of a class file will be easily accessed and expressed as in a graphic user interface. The information in the class file displayed is divided into Constant_Pool, Class_file, Interface, Field, Method and Attribute with information on method area, operand stack and local variables expressed visually.

자바 언어는 빠른 속도로 인터넷 및 분산 응용 분야 등에서 활용되고 있으며 단순히 응용 소프트웨어를 개발할 수 있는 프로그래밍 언어이상으로 활용 범위가 확대되고 있다. 특히, 실행 환경인 자바 가상 기계에 연관되어 다양한 연구가 진행되고 있으며 자바 클래스 파일에 대한 분석 및 응용 분야에 적합한 형태로 정보를 활용할 수 있는 다양한 시도가 진행되고 있다. 자바 언어에 대한 클래스 파일은 소스 프로그램의 의미를 자바 가상 기계에서 실행 가능한 형식으로 변환된 형태이다. 이러한 클래스 파일의 구조 및 실질적인 실행 과정에 대한 분석은 디컴파일러 구성, 소스 프로그램의 디버깅 등에 편리성을 지원할 수 있다. 본 논문에서는 이러한 클래스 파일에 대한 분석을 비롯하여 실제로 실행되는 과정을 보다 시각적으로 표현하기 위한 실행 분석기 개발에 관한 연구이다 이를 위해 클래스 파일의 내용을 GUI 환경에서와 같이 접근 및 표현이 용이하도록 구현하였다. 클래스 파일이 포함하고 있는 정보들을 Constant_Pool 부분, Class_file 부분, Interface 부분, Field 부분, Method 부분, Attribute 부분으로 나뉘어서 나타내도록 해주었다. 또한 클래스 파일의 실행 과정에서 핵심 정보를 저장하고 있는 메소드 영역 정보, 오퍼란드 스택 정보, 지역 변수의 정보를 시각적으로 표현하였다.

Keywords

References

  1. Jon Meyer & Troy Downing, Java Virtual Machine, March, 1997
  2. Tim Lindholm and Frank Yellin, The Java Virtual Machine Specification 2nd edition, Addision-Wesley, 1999
  3. Bill Blunden, Virtual Machine Design and Implementation in C/C++, Wordware Publishing, Inc., 2002
  4. Sun Microsystems, The K Virtual Machine(KVM) White Paper, Technical report, Sun Microsystems, 1999
  5. Rainer Leupers and Peter Marwedel, Retargetable Compiler Technology for Embedded System: Tools and Applications, Kluwer Academic Publishers, 2001
  6. John R. Levine, Linkers and Loaders, Morgan Kaufmann Publishers, 2000
  7. Nik Shaylor, Douglas N. Simon, William R. Bush, A Java Virtual Machine Architecture for Very Small Devices, In the Proceddings of ACM SIGPLAN Conferences on Languages, Compilers, and Tools Embedded Systems 2003(LCTES '03), ACM Press, pp.34-41, 2003 https://doi.org/10.1145/780732.780738
  8. John Whaley, Joeq : A Virtual Machine and Compiler Infrastructure, In the Proceddings of ACM SIGPLAN Conferences on Interpreters, Virtual Machines and Emulators 2003 (IVME '03), ACM Press, pp.58-66, 2003
  9. Derek Rayside, Evan Mamas, Erik Hons, Compact Java Binaries for Embedded System, Proceddings of the 9th NRC/IBM centre for Advanced Studies Confercence (CASCON '99), pp.1-14, 1999
  10. W. Paugh, Compressing Java class files, In the Proceedings of ACM/SIGPLAN Conference on Programming Language Design and Implementation(PLDI) '99, pp.247-258, May, 1999
  11. Clausen, L. R., Schultz, U. P., Consel, C., Muller, G., Java Bytecode Compression for Low-End Embedded Systems, ACM TOPLAS, Vol.22, No.3, pp.471-489, May, 2000 https://doi.org/10.1145/353926.353933
  12. Joshua Engel, Java Virtual Machine Programming, Infobook, 2000
  13. 김도우, 정민수, 자바 프로그램 분석을 위한 바이트 코드 시뮬레이터, 정보처리논문지, 제7권 제7호, 2000
  14. Jike Research Virtual Machine, http://www.ibm.com/developerworks/oss/jikesrvm
  15. Waba Programming Platform, http://www.wabasoft.com
  16. Joeq Virtual Machine, http://sourceforge.net/projects/jeoq
  17. GTK Tools : http://www.gtk.org/tutorial
  18. Artima Software, http://www.artima.com/insidejvm/applets/EternalMath.html
  19. DJ Java Decompiler, http://neshkov.hit.bg/kj.html
  20. Jad-the fast java Decompiler, http://kpdus.tripod.com/jad.html
  21. Class Cracker visual java decompiler, http://www.pcug.or.au