• 제목/요약/키워드: Java Bytecode

검색결과 69건 처리시간 0.026초

자바 바이트 코드를 이용한 인터넷 통신의 애플릿 제어 (A Study on Applet Control on the Internet Communication using Java Bytecode)

  • 김문환;나상동
    • 한국통신학회논문지
    • /
    • 제28권5C호
    • /
    • pp.523-531
    • /
    • 2003
  • 웹 브라우저에서 자바 애플릿 파일은 시스템의 가상머신에 의해 클라이언트 브라우저의 가상 머시인을 실행한다 자바애플릿을 실행하기 전에 자바 가상머신은 bytecode 수정자를 이용하여 bytecode 프로그램을 검색하며 해석기를 이용하여 실시간 테스트를 수행한다. 그러나 이러한 테스트들은 서비스 거부공격, 이메일 위조 공격 URL 추적공격 또는 지속적인 사운드 공격과 같은 원하지 않은 실행시간 동작을 예방할 수 없다. 본 논문에서는 이러한 애플릿을 보호하기 위해 자바바이트 코드 수정기술이 사용한다 수정기술은 검사를 수행할 적절한 바이트코트를 삽입함으로서 애플릿 동작을 제안한다. 자바 바이트 수정은 두 개의 형태고 분류되며 클래스 레벨 수정은 마지막 크레스가 아닌 서브크레스를 포함하기 때문에 메소드 레벨수정은 마지막 클래스 아닌 서브크레스를 포함한다. 메소드 레벨 수정은 마지막 클래스 또는 인터페이스로부터 객체들을 제어할 수 있다. 본 논문은 악성 애플릿들이 프록시 서버를 이용한 자바 바이트 코트 수정에 의해 제어되는 것을 나타냈으며 이러한 구현은 웹 서버, JVM, 웹 브라우저상에서 악성 애플릿들의 공격이 제어됨을 입증한다.

자바 바이트코드의 검증을 위한 프레임워크 설계 (A Design of Verification Framework for Java Bytecode)

  • 김제민;박준석;유원희
    • 디지털산업정보학회논문지
    • /
    • 제7권2호
    • /
    • pp.29-37
    • /
    • 2011
  • Java bytecode verification is a critical process to guarantee the safety of transmitted Java applet on the web or contemporary embedded devices. We propose a design of framework which enables to analyze and verify java bytecode. The designed framework translates from a java bytecode into the intermediate representation which can specify a properties of program without using an operand stack. Using the framework is able to produce automatically error specifications that could be occurred in a program and express specifications annotated in intermediate representation by a user. Furthermore we design a verification condition generator which converts from an intermediate representation to a verification condition, a verification engine which verifies verification conditions from verification condition generator, and a result reporter which displays results of verification.

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

  • 이야리;홍경표;오세만
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제30권1_2호
    • /
    • pp.73-80
    • /
    • 2003
  • 자바언어는 인터넷 및 분산 환경 시스템에서 효과적으로 응용 프로그램을 개발할 수 있도록 설계된 프로그래밍 언어로써 객제지향 패러다임 특성 및 다양한 개발 환경을 지원하고 있다. 그러나, 자바는 클래스 파일이 이동하여 JVM 환경에서 인터프리팅 되는 시스템이므로, 성능의 저하 없이 실행되기 위해서는 효율적인 최적화와 실행 시스템이 요구된다. 본 논문은 네트워크 상에서 동적으로 다운로드 되는 클래스 파일을 바이트코드 수준에서 최적화하였다. 최적화된 바이트코드들이 인터프리팅 되는 시스템에서 적은 네트워크 로드를 가지고 실행할 수 있도록 하며, 효율적인 실행 속도를 보이도록 하는 것이다. 본 논문에서 구현된 바이트코드 최적화기에서는 내부적으로 바이트코드 최적화기와 클래스 파일 생성기를 이용하여 실행시간을 개선하고 전체 클래스 파일의 크기를 줄이게 된다. 바이트코드 최적화기는 바이트코드를 클래스사이의 계층 분석과 제어 흐름의 분석을 통하여 클래스들간의 연관 관계를 분석한 후 그래프를 구성하고, 패턴 탐색 결과 기본 블록 분리를 통하여 전역 최적화를 이루고, 기본 블록 안에서의 연산강도 경감, 그리고 도달할 수 없는 코드 블록의 제거를 수행한다. 바이트코드 최적화 단계를 수행한 클래스 파일은 부분적으로 클래스 파일의 최적화를 가져와 전체 클래스 파일의 크기를 줄이고, 인터프리터를 통하여 실행될 때 수행 속도 면에서 좀더 빠른 실행속도를 가지게 된다.

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

  • 김광준;나상동;배용근
    • 한국정보통신학회논문지
    • /
    • 제7권1호
    • /
    • pp.90-99
    • /
    • 2003
  • 인터넷을 통한 웹 서버로부터 다운로드 받은 자바 애플릿은 클라이언트 브라우저의 가상 머시인에 실행 하였다. 자바 애플릿을 실행하기 전에 자바 가상 머시인은 bytecode 수정자를 이용하여 bytecode 프로그램을 검색하며 해석기를 이용하여 실행시간 테스트를 수행한다. 그러나 이러한 테스트들은 서비스 거부 공격, 이메일 위조 공격, URL 추적 공격 또는 지속적인 사운드 공격과 같은 원하지 않는 실행시간 동작을 예방 할 수는 없다. 본 논문에서는 이러한 애플릿을 보호하기 위해 자바 바이트 코드 수정 기술이 사용되었다. 이러한 기술은 검사를 수행할 적절한 바이트 코드를 삽입함으로서 애플릿의 동작을 제한한다. 자바 바이트 수정은 두 개의 일반적인 형태로 분류되며, 클래스 레벨 수정은 마지막 클래스 아닌 서브클래스를 포함하고 메소드 레벨 수정은 마지막 클래스 또는 인터페이스로부터 객체를 제어할 때 사용된다. 본 논문은 악성 애플릿들이 프록시 서버를 이용한 자바 바이트 코드 수정에 의해 제어되는 것을 나타내고 있으며, 또한 이러한 구현은 웹 서버, JVM, 웹 브라우저상에서 어떠한 변화도 요구하지 않는다.

Translation Java Bytecode to EVM SIL Code for Embedded Virtual Machines

  • Lee, Yang-Sun;Park, Jin-Ki
    • 한국멀티미디어학회논문지
    • /
    • 제8권12호
    • /
    • pp.1658-1668
    • /
    • 2005
  • This paper presents the bytecode-to-SIL translator which enables the execution of the java program in EVM(Embedded Virtual Machine) environment without JVM(java Virtual Machine), translating bytecodes produced by compiling java programs into SIL(Standard Intermediate Language) codes. EVM, what we are now developing, is a virtual machine solution that can download and execute dynamic application programs written in sequential languages like C language as well as object oriented languages such as C#, Java, etc. EVM is a virtual machine mounted on embedded systems such as mobile device, set-top box, or digital TV, and converts the application program into SIL, an assembly language symbolic form, and execute it. SIL is a virtual machine code for embedded systems, based on the analysis of existing virtual machine codes such as bytecode, MSIL, etc. SIL has such features as to accommodate various programming languages, and in particularly has an operation code set to accept both object-oriented languages and sequential languages. After compiling, a program written in java language is converted to bytecode, and also executed by JVM platform but not in other platform such as .NET, EVM platform. For this reason, we designed and implemented the bytecode-to-SIL translator system for programs written in java language to be executed in the EVM platform without JVM. This work improves the execution speed of programs, enhances the productivity, and provides an environment for programmers to execute application programs at various platforms.

  • PDF

Intermediate Language Translator for Execution of Java Programs in .NET Platform

  • Lee, Yang-Sun;Na, Seung-Won;Hwang, Dae-Hoon
    • 한국멀티미디어학회논문지
    • /
    • 제7권6호
    • /
    • pp.824-831
    • /
    • 2004
  • This paper presents the java bytecode-to-.NET MSIL intermediate language translator which enables the execution of the java program in .NET environments without JVM(java Virtual Machine), translating bytecodes produced by compiling java programs into MSIL codes. Java, one of the most widely used programming languages recently, is the language invented by James Gosling at Sun Microsystems, which is the next generation language independent of operating systems and hardware platforms. Java source code is compiled into bytecode as intermediate code independent of each platform by compiler, and also executed by JVM. .NET language such as C# and .NET platform in Microsoft Corp. has been developed to meet the needs of programmers, and cope with Java and JVM platform of Sun Microsystems. After compiling, a program written in .NET language is converted to MSIL code, and also executed by .NET platform but not in JVM platform. For this reason, we designed and implemented the java bytecode-to-.NET MSIL translator system for programs written in java language to be executed in the. NET platform without JVM. This work improves the execution speed of programs, enhances the productivity, and provides a environment for programmers to develop application programs without limitations of programming languages.

  • PDF

재목적 코드 생성 기법을 이용한 자바 Bytecode에서 SPARC 코드로의 번역 (Translating Java Bytecode to SPARC Code using Retargetable Code Generating Techniques)

  • 오세만;정찬성
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제6권3호
    • /
    • pp.356-363
    • /
    • 2000
  • 자바 프로그래밍 언어는 인터넷 및 분산 네트워크 환경에서 효과적으로 수행될 수 있도록 설계된 언어이다. 그러나 각 플랫폼에서 인터프리터 방식으로 실행된다는 단점을 가지고 있기 때문에, 자바 프로그램을 효율적으로 실행하기 위해서는 Bytecode를 목적 기계 코드인 SPARC 코드로 변환하는 코드 생성 시스템이 개발되어야 한다. 본 논문에서는 재목적 코드 생성 기법을 이용하여 Bytecode를 SPARC 코드로 변환하는 코드 생성 시스템을 구현하였다. 이를 위해 Bytecode로부터 SPARC 코드 생성 규칙을 기술한 Bytecode 테이블을 작성하였고, 클래스 파일을 입력으로 받아 Bytecoed를 코드 확장시에 적합한 형태로 변환하는 정보추출기를 구현하였다. 정보추출기가 Bytecode 명령어의 피연산자에 대한 상수 기억장소의 엔트리를 결정한 후, 코드 확장기가 변경된 Bytecode를 Bytecode 테이블에 따라 SPARC 코드로 변환한다. 또한, 재목적 코드 생성 시스템은 다양한 목적 기계 코드를 생성하기 위해 체계적으로 재구성될 수 있다.

  • PDF

Bytecode로부터 재목적 코드 생성 기법을 이용한 Pentium 코드 생성에 관한 연구 (A Study on the Pentium Code Generation using Retargetable Code Generation Technique from Bytecode)

  • 정성옥;고광만;이성주
    • 전자공학회논문지CI
    • /
    • 제37권4호
    • /
    • pp.1-8
    • /
    • 2000
  • 인터넷 및 WWW의 급속한 성장은 이 기종 기계 및 분산 네트워크 환경에서 수행될 수 있는 응용 소프트웨어를 위한 프로그래밍 언어에 대한 연구를 부각시키고 있다. 이러한 이기종 기계 및 분산 네트웍 환경에서 응용 소프트웨어 개발을 위해 개발된 Java 언어는 객체지향 특성을 지원하는 언어이며 Java 프로그래밍 언어 환경에서는 이식성, 번역성, 고성능, 및 단순성 등을 지원하고 있다. Bytecode는 Java 언어의 중간 코드로서 이 기종 기계 및 분산 네트웍 환경의 다중 플랫폼 환경에서 다양한 응용 소프트웨어의 개발을 가능하게 하고 있다. 하지만 Bytecode는 인터프리터 기법으로 실행되는 특성 때문에 많은 실행 시간을 소비하는 단점을 가지고 있다. 본 연구에서는 Bytecode로부터 정형화된 방법으로 다양한 목적기계에 대한 코드를 생성하기 위해 재목적 코드 생성 시스템을 설계하고 구현하고자 한다. 특히, Java 컴파일러로부터 생성된 Bytecode로부터 실질적으로 Pentium 코드를 생성하는 시스템을 구현한다. 본 연구의 원활한 수행을 위해 컴파일러 자동화 도구인 ACK의 코드 생성 시스템을 기반으로 한다.

  • PDF

CTOC에서 자바 바이트코드를 이용한 제어 흐름 분석에 관한 연구 (A Study on Control Flow Analysis Using Java Bytecodes in CTOC)

  • 유원희;김기태
    • 한국콘텐츠학회논문지
    • /
    • 제6권1호
    • /
    • pp.160-169
    • /
    • 2006
  • 본 논문은 바이트코드(bytecode) 수준에서 프로그램 분석과 최적화를 위한 구조를 서술한다. 바이트코드 수준에서 분석을 수행하기 위해서는 우선 제어 흐름 그래프(CFG : Control Flow Graph)를 생성해야 한다. 바이트코드의 특성 때문에 기존의 제어 흐름 분석 기술을 바이트코드에 적합하게 확장해야 한다. CFG를 작성하기 위해 기본 블록을 생성하고 기본 블록간의 관계를 이용하여 최적화 과정에서 사용되는 각종 정보를 생성한다. 생성된 CFG는 자바 바이트코드의 이해와 유지보수를 위해 테스트되고, 데이터 흐름 분석과 의존성 분석과 같은 다른 분석을 위해서 사용된다. 본 논문에서는 바이트코드 수준의 제어 흐름 분석을 위해 CTOC(Classes To Optimized Classes)의 CTOC-BR(CTOC-Bytecode tRanslator)을 구현한다. CTOC는 자바 바이트코드의 최적화와 분석을 위해 현재 개발 중인 프레임 워크의 이름이고, CTOC에서 CTOC-BR은 스택 기반인 바이트코드의 최적화와 분석을 쉽게 하기 위해 트리 형태로 변환을 수행하는 도구이다.

  • PDF

JVM 플랫폼에서 .NET 프로그램을 실행하기 위한 MSIL-to-Bytecode 번역기의 설계 및 구현 (Design and Implementation of the MSIL-to-Bytecode Translator to Execute .NET Programs in JVM Platform)

  • 이양선;황대훈;나승원
    • 한국멀티미디어학회논문지
    • /
    • 제7권7호
    • /
    • pp.976-984
    • /
    • 2004
  • 마이크로소프트사는 .NET 플랫폼을 개발하면서 자바 언어에 대응하기 위해 C# 프로그래밍 언어를 만들었다. C#과 같은 .NET 언어로 작성된 프로그램은 컴파일 과정을 거치면서 MSIL 코드를 출력하기 때문에 .NET 플랫폼에서는 실행이 되지만 JVM 플랫폼에서는 실행이 되지 않는다. 자바는 썬 마이크로시스템즈사가 개발한 언어로서 현재 가장 널리 사용되는 프로그래밍 언어 중 하나이며, 컴파일러에 의해 플랫폼에 독립적인 바이트코드를 바이너리 형태로 가지고 있는 클래스 파일을 생성하면 JVM에 의해 하드웨어나 운영체제에 상관없이 실행이 가능한 플랫폼 독립적인 언어이다. 본 논문에서는 .NET 언어로 작성된 프로그램을 컴파일 하여 생성된 MSIL 코드를 자바의 중간 언어인 바이트코드 코드로 변환해 줌으로서 .NET 언어로 구현된 프로그램이 .NET 플랫폼 없이 자바의 플랫폼인 JVM에 의해 실행되도록 하는 MSIL-to-Bytecode 번역기를 설계하고 구현하였다. 이와 같은 작업이 프로그래머로 하여금 프로그래밍 언어의 제약 없이 응용 프로그램을 개발할 수 있는 환경을 제공한다.

  • PDF