• Title/Summary/Keyword: 자바 가상기계

Search Result 86, Processing Time 0.033 seconds

A Study on the Java Decompilation-Preventive Method by Obfuscating Algorithm (난독화 알고리즘을 이용한 자바 역컴파일 방지기법에 관한 연구)

  • Ahn, Hwa-Su
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2007.05a
    • /
    • pp.1457-1458
    • /
    • 2007
  • 자바 언어의 중요한 특징 중의 하나는 어떤 기계에서든지 실행될 수 있다는 점이다. 이러한 플랫폼에 대한 독립성은 자바 프로그램이 바이트 코드 형태로 배포되기 때문에 가능한 일이다. 바이트 코드는 특정 기계에 종속되지 않고 자바 가상 머신(Java Virtual Machine:JVM)를 지원하는 곳이면 어디에서든지 실행 가능하다. 그런데 바이트 코드로 번역된 코드에는 자바 소스 코드의 정보가 그대로 포함되어 있는데, 이로 인해서 바이트 코드에서 자바 소스코드로의 역컴파일(Decompilation)이 쉽게 이루어진다는 취약점이 있다. 본 논문에서는 자바 바이트 코드의 난독화 기법을 살펴보고, Code Encryption Algorithm을 이용해서 역컴파일 하기 어려운 형태로 만드는 기술인 코드 난독처리(Code Obfuscation) 기법을 제안하였다.

Retargetable Oolong-to-SIL IL Translator (재목적 Oolong-to-SIL 중간 언어 번역기)

  • 권혁주;김영근;이양선
    • Proceedings of the Korea Multimedia Society Conference
    • /
    • 2004.05a
    • /
    • pp.310-313
    • /
    • 2004
  • 자바는 컴파일러에 의해 아키텍처 독립적인 바이트코드로 구성된 바이너리 형태의 클래스 파일을 생성하면 JVM에 의해 하드웨어와 운영체제에 상관없이 실행이 가능한 플랫폼 독립적인 언어로 현재 가장 널리 사용되는 범용 프로그램 언어중 하나이다. EVM(Embedded Virtual Machine)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어등을 모두 수용할 수 있는 임베디드 시스템을 위한 가상기계이며, SIL(Standard Intermediate Language)은 EVM에서 실행되는 중간언어로 다양한 프로그래밍 언어를 수용하기 위해서 객체지향 언어와 순차적 언어를 모두 수용하기 위한 연산 코드 집합을 갖고 있다. 본 논문에서는 자바 프로그램을 EVM에서 실행 될 수 있도록 자바 프로그램을 컴파일하여 생성된 클래스 파일로부터 Oolong 코트를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하는 Oolong-to-SIL 번역기 시스템을 구현하였다. 번역기 시스템을 정형화하기 위해 Oolong 코드의 명령어 등을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였고, 파싱테이블을 가지고 파서를 설계하였다 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 SIL 코드를 생성하도록 번역기 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다. 이와 같이 번역기를 구성함으로써 목적기계의 중간언어 형태에 따라 중간언어 번역기를 자동으로 구성할 수 있어 재목적성(Retargetability)을 높일 수 있다.

  • PDF

A Performance Enhancement of Java Card Virtual Machine with Multi-Transaction (다중 트랜잭션 기법을 이용한 자바 카드 가상 기계 성능 향상)

  • Noh, Tae-Heon;Lee, Dong-Wook;Jung, Min-Soo
    • Journal of Korea Multimedia Society
    • /
    • v.12 no.1
    • /
    • pp.41-49
    • /
    • 2009
  • Smart Card is currently more popular in mobile communication, and smart card with java card platform becomes a standard choice. Java card has a problem that it gets lost working data when power is off. Transaction is the idea to solve a problem of data loss, but it accepts only one transaction process, and other transaction process need to hold until the current working transaction is finished. This might be a factor to drop the Java card's performance. In this paper, we define a rule of dual-lock which can run transaction at multiple transaction buffer as a method for a better java card performance, and we suggest this rule to improve a capability of transaction process. From this research, we are able to improve the data stability, reduce the java card transaction delay time, and get a higher processing speed of java card.

  • PDF

Integrated Development Environment for Java Native Methods (자바 네이티브 메소드를 위한 통합 개발 환경)

  • Kim, Sang-Hoon
    • The Journal of the Korea Contents Association
    • /
    • v.10 no.7
    • /
    • pp.122-132
    • /
    • 2010
  • As a result of a growing demand for various mobile devices, the demand for application programs on the devices is on the rise. The Java language that is platform-independent rapidly rose as the best programming language for mobile devices. However, the Java has a problem that does not support platform-dependent features needed by the application. To solve this problem, the JNI technology was introduced by Sun Microsystems. Programmers using the JNI to write native methods need to have a lot of knowledge about the JNI and the internal structure of the JVM. Also, the increased load by using a number of JNI functions may decrease software productivity and quality. Demands for tools writing native method without understanding of JNI are progressively increasing. To develop these tools, it is necessary to translate automatically the differences between Java and C/C++. In this study, I suggested a way to overcome differences between both languages and developed JNI editor that is an integrated develope environment on the basis of this.

Design and Implementation of the Execution File Format Translator (실행 파일 포맷 변환기의 설계 및 구현)

  • Kim Seong-Jin;Ko Kwang-Man
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.11a
    • /
    • pp.685-688
    • /
    • 2004
  • 자바 클래스 파일은 플랫폼 독립성을 보장하면서 다양한 애플리케이션의 실행 파일 포맷으로 사용되고 있으며 실행 효율성을 높이기 위해 파일 형식의 변환 연구, 압축 기법 연구 등이 진행되고 있다. 본 연구에서는 임베디드 시스템에 적합한 가상기계(EVM)을 개발하기 위해 기존의 자바 클래스 파일형식을 간결한 형태로 재구성한 실행 파일 포맷($^{\ast}.evm$)에 대한 실행 환경 모델을 구축하기 위해 본 논문에서 자바 클래스 파일을 $^{\ast}.evm$ 형식으로 변환하는 변환기를 설계하고 구현하였다. 자바 클래스 파일로부터 변환된 $^{\ast}.evm$ 형식에 대한 검증은 현재 구현중인 로더/링커 및 실행 시간 엔진 등을 통한 실험 결과의 정확성을 통해 증명하였다.

  • PDF

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

Design and Implementation of a Java Bytecode-to-SAF Translator for the Ubiquitous Game Platform (유비쿼터스 게임 플랫폼을 위한 Java Bytecode-to-SAF 번역기의 설계 및 구현)

  • Park, Sang-Hoon;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2007.05a
    • /
    • pp.1512-1515
    • /
    • 2007
  • 본 연구팀은 유비쿼터스 환경에서 다양한 분야의 콘텐츠를 보다 쉽게 개발하고 실행할 수 있는 통합 소프트웨어 개발 솔루션인 유비쿼터스 게임 플랫폼(Ubiquitous Game Platform)을 개발하였다. 유비쿼터스 게임 플랫폼은 C/C++ 언어와 자바 언어를 모두 지원하며, 가상기계 방식이기 때문에 여러 임베디드 기기에서 독립적으로 수행이 가능하다는 장점이 있다. 본 논문에서는 유비쿼터스 게임 플랫폼에서 자바 언어로 작성된 콘텐츠를 실행할 수 있도록 하기 위해 자바 바이트코드를 유비쿼터스 게임 플랫폼의 중간언어 형식인 SAF(Standard Assembly Format)로 변환해주는 Java Bytecode-to-SAF 번역기를 설계하고 구현하였다. Java Bytecode-to-SAF 번역기를 통해 C/C++ 콘텐츠뿐만 아니라 자바 콘텐츠도 하나의 플랫폼에서 실행이 가능해져서 개발자에게 효율적이며, 능률적인 개발 환경을 제공하고, 한번 개발한 콘텐츠를 타 기종으로 이식하기 위한 시간과 비용 소모를 줄여 생산성을 높일 수 있다.

Alpha : Java Visualization Tool (Alpha : 자바 시각화 도구)

  • Kim, Cheol-Min
    • The Journal of Korean Association of Computer Education
    • /
    • v.7 no.3
    • /
    • pp.45-56
    • /
    • 2004
  • Java provides support for Web, concurrent programming, safety, portability, and GUI, so there is a steady increase in the number of Java users. Java is based on the object-oriented concepts such as classes, instances, encapsulation, inheritance, and polymorphism. However the JVM(Java Virtual Machine) hides most of the phenomena related to the concepts. This is why most of Java users have much difficulty in learning and using Java. As a solution to the problem, I have developed a tool Alpha that visualizes the phenomena occurred in the JVM from the standpoint of the concepts and will describe the design and features of the tool in this paper. For practicality and extendability Alpha has an MVC(Model-View-Controller) architecture and visualizes the phenomena such as object instantiations, method invocations, field accesses, cross-references among objects, and execution flows of threads in the various ways according to the levels and purposes of the users.

  • PDF

Design of Translator for 3-Address Code from Stack Based Code (스택 기반 코드에서 3-주소형태코드 생성을 위한 변환기 설계)

  • Kim, Ji-Min;Kim, Young-Kook;Jo, Sun-Moon;Kim, Ki-Tae;Yoo, Weon-Hee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.05a
    • /
    • pp.301-304
    • /
    • 2004
  • 자바의 특징 중에 한 가지는 자바 가상 기계를 기반으로 하고 있게 때문에 특정한 하드웨어나 운영체제에 영향을 받지 않고 독립적으로 수행이 가능하다는 것이다. 하지만 자바 언어로 개발된 애플리케이션은 C나 C++등 다른 언어로 작성한 프로그램에 비하여 실행이 매우 느리다는 단점을 가지게 된다. 이는 자바 가상 기계 에서 바이트코드가 인터프리터 방식으로 사용되기 때문이다. 이러한 단점을 보안하기 위하여 여러 가지 최적화 기법이 적용되고 있다. 본 논문에서는 이러한 방법으로써 바이트코드를 3주소형태 코드로 변환하는 변환기 설계에 대해서 제안할 것이다. 바이트코드에서 스택을 사용하지 않는 3주소형태 코드로의 변환하기 위하여 크게 세 단계를 걸친다. 첫째, 스택에 대한 명백한 참조를 가진 타입화된 스택기반의 중간표현을 생성한다. 둘째, 생성된 코드에서 타입에 대한 정보를 추출하고 추출된 정보를 저장하는 기억장소를 할당하여 추출된 정보를 저장시킨다. 셋째, 스택을 대신할 타입이 없는 지역변수를 생성하여 각각의 변수에 알맞은 타입을 분배함으로써 타입화되고 명백한 3주소형태 코드를 생성한다. 이러한 방식으로 스택기반 언어에서 발생하는 문제점을 해결한다.

  • PDF

Remote Method Invocation in Java Card (자바 카드에서의 원격 메소드 호출)

  • Kim, Young-Jin;Chung, Yong-Wha;Chung, Kyo-Il
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2002.04b
    • /
    • pp.1223-1226
    • /
    • 2002
  • 자바 카드 기술은 자바 기술을 스마트 카드에 최적화시키면서 자바 카드 플랫폼을 상위 자바 플랫폼에 접합시키는 방향으로 발전하고 있는 추세이다. 최근 발표된 SUN의 자바 카드 2.2 에서 지원되는 카드(서버)와 카드 리더(클라이언트)간의 원격 메소드 호출 인터페이스가 대표적인 예이다. 자바의 원격 메소드 호출은 서버와 클라이언트간의 상호 정의된 원격 객체의 메소드 호출에 대한 인터페이스를 제공하여, 다른 주소에 존재하는 자바 가상 기계들 사이에 메소드 호출이 가능하게 하는 것이다. 본 논문에서는 자바 카드에서의 원격 메소드 호출 인터페이스에 대해 살펴보고 구현 및 이용 방법에 대해서도 살펴보고자 한다.

  • PDF