• Title/Summary/Keyword: 자바 바이트코드

Search Result 112, Processing Time 0.023 seconds

Design of Translator for generating Secure Java Bytecode from Thread code of Multithreaded Models (다중스레드 모델의 스레드 코드를 안전한 자바 바이트코드로 변환하기 위한 번역기 설계)

  • 김기태;유원희
    • Proceedings of the Korea Society for Industrial Systems Conference
    • /
    • 2002.06a
    • /
    • pp.148-155
    • /
    • 2002
  • Multithreaded models improve the efficiency of parallel systems by combining inner parallelism, asynchronous data availability and the locality of von Neumann model. This model executes thread code which is generated by compiler and of which quality is given by the method of generation. But multithreaded models have the demerit that execution model is restricted to a specific platform. On the contrary, Java has the platform independency, so if we can translate from threads code to Java bytecode, we can use the advantages of multithreaded models in many platforms. Java executes Java bytecode which is intermediate language format for Java virtual machine. Java bytecode plays a role of an intermediate language in translator and Java virtual machine work as back-end in translator. But, Java bytecode which is translated from multithreaded models have the demerit that it is not secure. This paper, multhithread code whose feature of platform independent can execute in java virtual machine. We design and implement translator which translate from thread code of multithreaded code to Java bytecode and which check secure problems from Java bytecode.

  • PDF

Java Bytecode-to-.NET MSIL IL Translator (자바 바이트코드의 .NET MSIL 중간언어 번역기)

  • Jung, Ji-Hoon;Park, Jin-Ki;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2003.11b
    • /
    • pp.663-666
    • /
    • 2003
  • 자바는 썬 마이크로시스템즈사의 제임스 고슬링(James Gosling)에 의해 고안된 언어로 운영체제 및 하드웨어 플랫폼에 독립적인 차세대 언어로 최근에 가장 널리 사용하는 범용 프로그래밍 언어 중 하나이다. 자바 프로그램은 컴파일러에 의해 각 플랫폼에 독립적인 중간 코드 형태의 바이트코드로 변환된 클래스 파일로 생성되면 JVM(Java Virtual Machine)에 의해 실행된다. 마이크로소프트사의 .NET 플랫폼과 C# 언어는 프로그래머들의 요구를 충족시키고 썬사의 JVM 환경과 자바 언어에 대응하기 위해서 개발된 플랫폼과 언어이다. C#과 같은 .NET 언어는 컴파일러에 의해 MSIL(MicroSoft Intermediate Language) 코드로 번역되며 번역된 MSIL 코드는 .NET 플랫폼 환경에서 런타임 엔진인 CLR(Common Language Runtime)에 의해 실행이 된다. 자바로 작성된 프로그램은 JVM 플랫폼에서는 실행이 되지만 .NET 플랫폼에서 실행이 되지 않고, 반대로 C#과 같은 .NET 언어로 작성된 프로그램은 .NET 플랫폼에서는 실행이 되지만 JVM 플랫폼에서 실행이 되지 않는다. 이런 이유로 본 논문에서는 자바소스를 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 생성하고 생성된 Oolong 코드를 .NET의 MSIL 코드로 변환하여 자바로 구현된 프로그램이 .NET 환경에서 실행되도록 하는 Bytecode-to-MSIL 번역기 시스템을 구현하였다. 따라서, 자바 프로그래머는 JVM이나 .NET 플랫폼 환경에 관계없이 프로그램을 작성하여 실행시킬 수 있다. 번역기 시스템의 구현을 정형화하기 위해 Oolong 코드의 명령어들을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였으며, 파싱테이블을 가지고 파서를 설계하였다. 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 MSIL 코드를 생성하도록 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다.

  • PDF

Development Visual Tools of that shows memory allocation of JVM (자바가상기계 메모리 할당을 보여주는 비주얼 도구의 개발)

  • 이수진;정민수;김우완;이공선;윤기송
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1999.10a
    • /
    • pp.409-411
    • /
    • 1999
  • 본 논문에서 소개하고 있는 비주얼 자바가상기계 시뮬레이터는 자바 컴파일러에 의해 컴파일된 결과인 바이트코드를 분석하고, 그 분석된 결과가 자바가상기계내부구조에 어떻게 할당되는지를 시각적으로 보여줌으로써 자바 소스 코드가 보여주지 못하는 가상기계 내부의 메소드 영역, 자바 스택 영역, 힙 영역에 할당되는 정보를 통해 자바 소스 프로그램의 보다 명확하고 쉬운 이해가 가능하도록 한다.

  • PDF

Design and Implementation of Java Virtual Machine Simulator (자바 가상 기계 시뮬레이터의 설계 및 구현)

  • 김도우;정민수;류동항;진민
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1998.10b
    • /
    • pp.422-424
    • /
    • 1998
  • 객체지향 언어로 작성된 프로그램은 프로그램의 수행과정에 관련된 많은 정보가 숨겨져 있기 때문에 분석하기가 쉽지 않다. 자바의 경우도 동일하지만 자바의 경우에는 컴파일 후에 생성된 클래스 파일에 숨겨진 모든 객체에 대한 정보가 저장되어 있다. 비주얼 자바 가상 기계 시뮬레이터는 자바 가상 기계가 바이트 코드를 실행하는 과정을 자바 가상 가계의 구성 요소들을 시각화하여 그 동작 과정을 보여줌으로써 클래스 파일 내에 포함된 바이트 코드의 실행 과정을 정확히 이해하게 해준다.

Design of Bytecode Framework (바이트코드 프레임워크 설계)

  • 김영국;김기태;조선문;이갑래;유원희
    • Proceedings of the Korea Contents Association Conference
    • /
    • 2004.05a
    • /
    • pp.330-334
    • /
    • 2004
  • Java bytecode is stack-base code. Stack-base code makes analysis and optimization hardly because use stack access imperative. Therefore, fragment of code that is problem that occur in stack-base code optimization, loss of type information, unnecessary Load and Store can appear. Optimization and analysis of bytecode design bytecode framework by solution way of problem that is difficult. This paper indicates optimization of bytecode and hangup of analysis, and describe research contents about existent byte code optimization technology. This propose byte code framework by the alternative to simplify analysis and optimization of byte code.

  • PDF

Mixed-mode execution environment using the JNI (JNI를 사용한 혼합형 실행 환경)

  • Kim Sang-Hoon
    • The Journal of Information Technology
    • /
    • v.5 no.4
    • /
    • pp.35-44
    • /
    • 2002
  • The tradeoff of Java's portability is the inefficiency of interpretation. Also, the standard Java class library may not support the platform-dependent features needed by your application. Several solutions have been proposed to overcome these problems, such as JNI, JIT, off-line bytecode compilers. In this paper, we present an mixed-mode execution model which Java virtual machine executes together with native code. This execution model and its translator preserves the ability to dynamically load bytecode, and reduce the difficulties of JNI usages. Our system is more efficient than JIT, and helps programmer to write C implementation for the native method without the concept of JNI.

  • PDF

The Bytecode Optimizer (바이트코드 최적화기)

  • 이야리;홍경표;오세만
    • Journal of KIISE:Software and Applications
    • /
    • v.30 no.1_2
    • /
    • pp.73-80
    • /
    • 2003
  • The Java programming language is designed for developing effective applications in a heterogeneous network environment. Major problem in Java is its performance. many attractive features of Java make the development of software easy, but also make it expensive to support ; applications written in Java are often much slower than their counterparts written in C or C++. To use Java`s attractive features without the performance penalty, sophisticated optimizations and runtime systems are required. Optimising Java bytecode has several advantages. First, the bytecode is independent of any compiler that is used to generate it. Second, the bytecode optimization can be performed as a pre=pass to Just-In-Time(JIT) compilation. Many attractive features of Java make the development of software easy, but also make it expensive to support. The goal of this work is to develop automatic construction of code optimizer for Java bytecode. We`ve designed and implemented a Bytecode Optimizer that performs the peephole optimization, bytecode-specific optimization, and method-inlining techniques. Using the Classfile optimizer, we see up to 9% improvement in speed and about 20% size reduction in Java class files, when compared to average code using the interpreter alone.

A obfuscating technique for Java program by distributing methods (메소드 분산을 통한 자바 프로그램 난독화 기법)

  • 최석우;박회완;한태숙
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.10a
    • /
    • pp.238-240
    • /
    • 2003
  • 자바 프로그램은 자바 바이트코드로 컴파일되어 배포된다. 자바 바이트코드는 심볼릭 정보를 그대로 유지하고 있기 때문에 역컴파일(decompile) 도구에 의해서 쉽게 소스 파일이 노출될 수 있다는 취약성이 있다. 따라서 자바 역컴파일에 대한 위험을 방지 혹은 최소화 할 수 있는 방법에 대한 연구가 필요하다. 본 논문에서는 이러한 보안 취약성 및 문제점을 인식하고 거기에 대처할 수 있는 대응 기법에 대한 연구로서 메소드 분산을 이용한 프로그램 난독화 기법을 제시하려고 한다. 본 논문에 제안된 난독화 기법을 사용하면 역컴파일에 성공했다 하더라도 역컴파일된 소스 프로그램을 쉽게 이해하거나 재활용하기 어렵게 만들 수 있으며 다른 난독화 기법을 적용할 수 있는 범위를 넓혀 줄 수 있다.

  • PDF

Split Local Variables Using Static Single Assignment Form in CTOC (CTOC에서 정적 단일 배정문 형태를 이용한 지역 변수 분리)

  • Lee Kab-Lae;Yoo Weon-Hee;Kim Ki-Tae
    • The Journal of the Korea Contents Association
    • /
    • v.5 no.3
    • /
    • pp.73-81
    • /
    • 2005
  • CTOC(Classes To Optimized Classes) is a Java bytecode framework for optimization and analysis. Although Java bytecode has a significant amount of type information embedded in it, there are no explicit types for local variables. However, knowing types for local variables is very useful for both program optimization and analysis. This paper is a first part of CTOC framework. In this paper, we present methods for inferring static types for local variables in a 3-address, stackless, representation of Java bytecode. We use SSA Form(Single Static Assignment Form) for spliting local variables. Splited local variables will use to prepare for static type inference.

  • PDF

Applet Control using Java Bytecode Modification on the Internet Communication (인터넷 통신상에서 자바 바이트 코드 수정을 이용한 애플릿 제어)

  • 김광준;나상동;배용근
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.7 no.1
    • /
    • pp.90-99
    • /
    • 2003
  • Java applets are downloaded from web server through internet and executed in Java Virtual Machine of clients' browser. Before execution of java applets, JVM checks bytecode program with bytecode verifier and performs runtime tests with interpreter. However, these tests will not protect against undesirable runtime behavior of java applets, such as denial of service attack, email forging attack, URL spoofing attack, and annoying sound attack. In order to protect malicious applets, a technique used in this paper is java bytecode modification. This technique is used to restrict applet behavior or insert code appropriate to profiling or other monitoring efforts. Java byte modification is divided into two general forms, class-level modification involving subclassing non-final classes and method-level modification used when control over objects from final classes or interface. This paper showed that malicious applets are controlled by java bytecode modification using proxy server. This implementation does not require any changes in the web sever, JVM or web browser.