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

Search Result 173, Processing Time 0.023 seconds

An Intermediate Language Translator for .NET Languages (.NET 언어를 위한 중간 언어 번역기)

  • 최성규;박진기;이양선
    • Proceedings of the Korea Multimedia Society Conference
    • /
    • 2003.11b
    • /
    • pp.533-536
    • /
    • 2003
  • 자바는 썬 마이크로시스템즈사가 개발한 언어로서 현재 가장 널리 사용되는 프로그래밍 언어 중 하나이며, 컴파일러에 의해 플랫폼에 독립적인 바이트코드를 바이너리 형태로 가지고 있는 클래스 파일을 생성하면 JVM에 의해 어떠한 하드웨어나 운영체제에 상관없이 수행이 가능한 플랫폼 독립적인 언어이다. 마이크로소프트사는 .NET 플랫폼을 개발하면서 자바 언어에 대응하기 위해 C# 프로그래밍 언어를 만들었다. C#은 C/C+.의 강력함과 자바나 비주얼 베이직의 높은 생산성을 매우 효과적으로 결합한 프로그래밍 언어이다. C#은 컴파일 과정을 거치면 자바의 바이트코드와 같은 중간 언어인 MSIL코드를 갖는 파일을 출력하게 되는데, C# 이외에도 모든 .NET 언어들은 컴파일과정을 거치면서 MSIL 코드를 얻기 때문에 여러 .NET 언어들을 이용해서 하나의 응용 프로그램을 만들 수 있다. 본 논문에서는 임베디드 시스템에서의 적용을 위해 C#을 컴파일 하여 나오는 중간 언어 형태인 MSIL 코드를 자바의 중간 언어의 한 종류인 Oolong 코드로 변환해 줌으로서 C#으로 구현된 프로그램이 자바 플렛폼에서 JVM에 의해 실행되도록 하는 중간 언어 번역기를 구현하였다.

  • PDF

Design of Ahead-of-Time Compilation System for IoT-Cloud Fusion Virtual Machine System (IoT-Cloud 융합 가상기계 시스템을 위한 Ahead-of-Time 컴파일 시스템의 설계)

  • Choi, Chanwhi;Son, Yunsik;Lee, Yangsun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2017.11a
    • /
    • pp.1183-1185
    • /
    • 2017
  • 사물인터넷 기술의 사용이 증가하고 있으나 장치 및 플랫폼의 종류가 다양하여 한 번 구현한 응용 프로그램을 재사용하기 어렵다. 사물인터넷 장치에서 가상기계를 사용하여 이러한 문제점을 해결할 수 있지만 가상기계의 응용 프로그램 실행 속도는 네이티브 코드에 비해 속도가 느려 가상기계의 실행 속도를 개선할 필요가 있다. AoT 컴파일은 바이트코드를 네이티브 코드로 사전에 컴파일하여 가상기계의 실행 속도를 향상시키는 기법이다. 본 논문에서는 IoT-Cloud 융합 가상기계 시스템을 위한 AoT 컴파일 시스템을 설계한다. 설계한 시스템은 사물인터넷과 클라우드의 융합 환경에 적합하며, 바이트코드 중 일부만을 네이티브 코드로 컴파일하므로 네이티브 코드 로드에 의한 가상기계의 메모리 부담이 적다.

Java Bytecode-to-SIL Translator using an Abstract Syntax Tree (구문 트리를 이용한 자바 바이트코드에서 SIL로의 번역기)

  • Kim, Young-Koun;Kwon, Hyeok-Ju;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.05a
    • /
    • pp.519-522
    • /
    • 2004
  • 자바는 현재 가장 널리 사용되는 범용 프로그래밍 언어중 하나로 컴파일러에 의해 중간언어인 바이트코드로 변환되며 JVM(Java Virtual Machine)에 의해 실행되는 플랫폼 독립적인 언어이다. SIL(Standard Intermediate Language)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템을 위한 중간언어로 가상기계인 EVM(Embedded Virtual Machine)에서 실행된다. 본 논문에서는 자바 프로그램을 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하여 자바로 구현된 프로그램이 EVM에서 실행되도록 하는 Bytecode-to-SIL 번역기 시스템을 구현하였다. 그리고 본 번역기 시스템을 다른 플랫폼에 용이하게 설치하기 위한 재목적성(retargetability)을 위해 단일패스(one-pass)을 사용하는 기존의 번역기들과 달리 AST를 이용한 컴파일러 기법을 사용하여 AST가 가지고 있는 정보에 대해 최적화 작업을 수행하여 보다 효과적인 코드 변환을 할 수 있도록 설계하였다.

  • PDF

Constructing A Loop Tree in CTOC (CTOC에서 루프 트리 구성하기)

  • Kim, Ki-Tae;Kim, Je-Min;Yoo, Weong-Hee
    • The KIPS Transactions:PartD
    • /
    • v.15D no.2
    • /
    • pp.197-206
    • /
    • 2008
  • The CTOC framework was implemented to efficiently perform analysis and optimization of the Java bytecode that is often being used lately. In order to analyze and optimize the bytecode from the CTOC, the eCFG was first generated. Due to the bytecode characteristics of difficult analysis, the existing bytecode was expanded to be suitable for control flow analysis, and the control flow graph was drawn. We called eCFG(extended Control Flow Graph). Furthermore, the eCFG was converted into the SSA Form for a static analysis. Many loops were found in the conversion program. The previous CTOC performed conversion directly into the SSA Form without processing the loops. However, processing the loops prior to the SSA Form conversion allows more efficient generation of the SSA Form. This paper examines the process of finding the loops prior to converting the eCFG into the SSA Form in order to efficiently process the loops, and exhibits the procedures for generating the loop tree.

A Study On The Optimization of Java Class File under Java Card Platform (자바카드 플랫폼상에서 자바 클래스 파일의 최적화 연구)

  • 김도우;정민수
    • Journal of Korea Multimedia Society
    • /
    • v.6 no.7
    • /
    • pp.1200-1208
    • /
    • 2003
  • Java Card technology allows us to run Java applications on smart cards and other memory-constrained devices. Java Card technology supports high security, portability and ability of storing and managing multiple applications. However, constrained memory resources of the Java Card Platform hinder wide deployment of the Java Card applications. Therefore, in this paper we propose a bytecode optimization algorithm to use the memory of a Java Card efficiently. Our algorithm can reduce the size of the bytecode by sharing the memory of the parameters of the catch clause in the try-catch-finally sentence.

  • PDF

Applet Security Technique against Hostile Applet's Attack (유해 애플릿 공격에 대한 애플릿 보안 기술)

  • Park, Sang-Kil;Noh, Bong-Nam
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2000.04a
    • /
    • pp.491-496
    • /
    • 2000
  • 웹상의 자바 애플릿은 클라이언트의 웹 브라우저에 다운로드 되어서 브라우저 내부에 있는 자바가상기계(JVM : Java Virtual Machine)내에서 실행된다. 각 자바가상기계에는 실행 전에 바이트 코드 검증기와 바이트 코드 인터프리터를 통하여 오류문법을 점검한다. 애플릿을 이용한 잠재적인 공격형태는 시스템 수정, 개인정보의 침해, 서비스 거부공격, 강한 거부감을 느끼게 하는 공격이 있다. 이러한 유해한 애플릿의 공격에 대응하기 위한 방법으로 코드분석, 행위분석, 위치정보등을 이용한 보안기법이 제시되었지만 효율적인 대응을 하지 못하고 있다. 이 논문에서는 자바의 특성을 이용하여 자바클래스 내부의 바이트 코드 수정을 통한 애플릿 보안기술에 대해 기술한다. 유해한 행동이 예상되는 애플릿의 클래스에 대하여 바이트 코드 수정을 통하여 안전한 클래스로 대체함으로서 유해 애플릿 공격으로부터 시스템을 보호한다. 이를 수행하기 위해 프록시 서버를 두어서 웹브라우저의 요구를 수용하고, 이를 웹 서버에게 Safe클래스로 수정하여 요구하며, 그에 대한 응답도 처리한 후 애플릿에게 보여준다. 이는 런타임때 수행되며 웹브라우저, 서버, 클라이언트의 수정없이 프록시 서버의 개입으로 이루어진다.

  • PDF

Implementation of the CFG generator for the analysis from The stack-based codes (스택-기반 코드로부터 분석을 위한 CFG 생성기의 구현)

  • Kim, Young-Kook;Yoo, Weon-Hee
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2005.11b
    • /
    • pp.433-435
    • /
    • 2005
  • 자바의 문제점은 실행속도의 저하이다. 바이트코드 최적화 방법을 사용하는 CTOC(Class To Optimized Classes)에서 중간코드로 사용하는 3-주소 코드를 스택-기반 코드로 코드 확장 기법으로 변환 시 불필요한 코드가 생성된다. 이러한 불필요한 코드를 제거하기 위한 정보를 필요로 한다. 필요한 정보를 얻기 위한 분석기로 CFG생성기를 설계 및 구현한다.

  • PDF

Web-based XML Document Generation Supporting Java Byte Code Understanding (웹 기반의 Java 바이트 코드의 이해를 지원하는 XML 문서 생성)

  • 나강숙;이재현;유철중;장옥배
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.04a
    • /
    • pp.585-587
    • /
    • 2000
  • 본 논문은 웹 기반의 Java 바이트 코드의 이해를 지원하는 XML(eXtensible Markup Language)문서를 생성하는 것을 목적으로 한다. 기존 XML 문서는 사용자가 임의로 태그를 생성하여 확장할 수 있는 장점이 있는 반면에 프로그램에 대한 태그의 정적인 정보만을 제공하는 단점이 있다. 따라서 정적인 정보만을 제공하는 XML 문서에 Java 바이트 코드를 Javap로 역어셈블(disassemble)하여 얻을 수 있는 메소드 호출의 동적인 정보를 추가할 필요가 있다. 본 논문은 이러한 Java 바이트 코드에 대해 동적.정적인 정보가 포함되어 있는 XML 문서를 웹 상에서 클라이언트에게 다운로드(down load)할 수 있는 기능을 제공하여 Java 프로그램의 이해도를 증진시키는데 그 의의가 있다.

  • PDF

안드로이드 어플리케이션 역공학 보호기법

  • Ha, Dongsoo;Lee, Kanghyo;Oh, Heekuck
    • Review of KIISC
    • /
    • v.25 no.3
    • /
    • pp.19-28
    • /
    • 2015
  • 현재 가장 높은 점유율을 보이고 있는 스마트 모바일 디바이스 플랫폼인 안드로이드는 바이트코드 기반의 어플리케이션을 동작시킨다. 바이트코드는 특성상 역공학에 취약하여 원본 코드의 노출이나 수정 후 재배포가 쉽게 이루어질 수 있다. 이를 보완하는 방법으로 난독화, 실행압축, 코드 분리, 기타 안티 리버싱 기법 등이 존재하지만, 이런 보호기법을 단독으로 사용하면 그 효과가 높지 않다. 이들은 각각 장단점을 가지고 있는데, 여러 기법을 조합해서 사용하면 보안성을 한층 높일수 있다. 그렇다고 각 기법의 특징을 무시한 채 무작정 사용하게 되면 오히려 어플리케이션의 성능이 낮아지고 크기가 늘어나는 문제가 발생한다. 따라서 보호기법의 정확한 이해와 필요에 맞는 올바른 선택적 사용이 중요하다. 본 논문에서는 지금까지 사용되어 온 안드로이드 어플리케이션 역공학 보호기법의 유형과 특징에 대하여 살펴보고, 보안성을 높이기 위한 올바른 조합과 선택에 대해 고찰한다.

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