• 제목/요약/키워드: 자바클래스파일

검색결과 74건 처리시간 0.024초

자바가상머신을 위한 클래스 로더 시스템 설계 및 구현 (The design and Implementation of Class Loader System for Java Virtual Machine)

  • 유용선;류현수;김용희;이철훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 봄 학술발표논문집 Vol.31 No.1 (A)
    • /
    • pp.796-798
    • /
    • 2004
  • 최근 무선인터넷이 발달함에 따라, 핸드폰이나 PDA 및 정보가전용 기기들에 플랫폼 독립성, 이식성, 네트워크 이동성의 장정을 갖는 자바기술을 적용한 서비스가 증가하고 있다. 자바 플랫폼은 각각의 하드웨어 플랫폼에 맞게 포팅 된 가상머신이 존재하여, 컴파일 된 바이트 코드를 해석하기 때문에 플랫폼 독립성을 갖게 된다. 그러나 sun사의 JVM을 사용할 경우 고가의 royalty를 지불해야 하기 때문에 경쟁력을 높이기 위해 “클린눔(Clean Room)”에서 개발한 국산 KVM이 절실하며, 이에 국내에서 활발한 연구가 이루어지고 있는 실정이다. 본 논문에서는 자바가상머신의 일부분인 클래스 로더 시스템에 관해 설계 및 구현한다.

  • PDF

CTOC에서 3주소 코드를 효율적인 스택 기반 코드로의 변환기 설계 (Design of Translator for Efficient Stack Based Codes from 3-Address Codes in CTOC)

  • 김영국;김기태;조선문;김웅식;유원희
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 가을 학술발표논문집 Vol.31 No.2 (1)
    • /
    • pp.766-768
    • /
    • 2004
  • 자바는 객체 지향 언어이고, 분산 환경을 지원하고, 플랫폼에 독립적인 장정을 갖지만 다른 C나 C++같은 컴파일언어에 비해서는 실행속도가 느리다는 단점을 가진다. 이러한 단점을 극복하기 위한 방법으로 네이티브 코드로의 변환, 코드 최적화, JIT 컴파일 방법 등을 이용한다. 그러나 이전 방법들은 다음과 같은 한계점을 가진다. 클래스 파일을 네이티브 코드로의 변환은 플랫폼의 종속되고, 코드 최적화 방법은 고유의 최적화 방법만을 적용할 수 있었고, JIT컴파일 방법은 한 번의 실행 후 다음 실행해야 속도향상을 꾀할 수 있었다. 본 논문은 바이트 코드를 최적화하기 위한 자바최적화 프레임워크를 설명하고 자바최적화 프레임워크의 구성을 하는 부분 중 3주소형식의 중간코드를 스택기반 코드로 변환하는 부분을 설계하고. 3주소 코드로 변환한 중간 코드를 스택 기반 코드로 변환하면서 생기는 과다한 load/store의 문제점을 지적하고 그것을 해결할 수 있는 변환기를 제안한다.

  • PDF

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

  • 정지훈;박진기;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2003년도 추계학술발표논문집 (중)
    • /
    • 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

Bytecode-to-C 변환기의 설계 및 구현 (Design and Implementation of Bytecode-to-C Converter)

  • 권혜은;김상훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 봄 학술발표논문집 Vol.28 No.1 (A)
    • /
    • pp.52-54
    • /
    • 2001
  • 자바프로그램이 사용하는 바이트코드는 자바가상머신을 통해 플랫폼에 독립적인 특징을 갖는다. 이러한 장점은 인터프리터를 통해 실행되므로 실행속도의 저하와 플랫폼에 의존적인 작업이 어려운 문제점등을 가진다. 이러한 문제점을 보완하기 위한 기술로 JIT 컴파일러와 JNI 기술이 사용된다. 본 논문에서는 JIT 컴파일러가 가지는 실행속도의 향상과 JNI 프로그램의 편리한 작성에 도움을 주고, JVM에 독립적인 번역기를 설계하고 구현하였다. 번역기는 클래스파일을 읽어들여 이 프로그램을 위한 스텁 자바프로그램과 C 프로그램을 생성하고, 기존 C 컴파일러를 사용하여 번역하고 최적화 시키는 과정으로 이루어진다.

자바 클래스 보호를 위한 동적 워터마킹 (Dynamic Watermarking for Java Class Protection)

  • 조익;이수현
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2001년도 추계학술발표논문집 (하)
    • /
    • pp.915-918
    • /
    • 2001
  • 최근 저작권 보호를 위한 워터마킹 기술이 활발하게 연구되고 있지만, 소프트웨어에 대한 워터마킹 기술은 멀티미디어 워터마킹에 비하여 상대적으로 부족하다. 인터넷의 발달로 인하여 자바로 프로그램을 작성하는 경우가 증가되었으나, 자바 프로그램은 인터넷에서 쉽게 얻을 수 있고, 역-컴파일이 쉽고, 또한 재 사용 가능한 플래스 파일로 쉽게 분해되기 때문에 불법 사용이 가능하다. 본 논문에서는 소프트웨어의 저작권 보호를 위한 소프트웨어 워터마킹 기술에 대한 연구와 자바 프로그램 워터마킹 시스템을 제안한다. 본 시스템은 워터마크를 힙 영역에 저장하기 때문에 왜곡 공격에 강한 장점이 있다.

  • PDF

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

  • 김도우;정민수
    • 한국멀티미디어학회논문지
    • /
    • 제6권7호
    • /
    • pp.1200-1208
    • /
    • 2003
  • 자바카드 기술은 스마트카드나 메모리 제한적인 장치에서 자바 프로그래밍 언어로 작성된 응용프로그램을 동작 가능하게 한다. 자바카드 기술은 높은 안전성, 이식성, 다중의 응용프로그램을 관리하고 저장하는 기능을 제공한다. 그러나 자바카드 플랫폼의 제한적인 메모리 자원은 다양한 용도로 자바카드가 보급되는데 저해 요인으로 작용하고 있다. 따라서 본 논문에서는 자바카드의 효율적인 메모리 사용을 위해서 바이트코드 최적화 알고리즘을 제안한다. 이 알고리즘은 예외처리 구문 try-catch-finally에서 catch절의 매개변수에 대한 기억장소를 공유하게 함으로써 생성되는 바이트코드의 크기를 줄일 수 있다.

  • PDF

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

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

내장형 자바 시스템을 위한 클래스파일의 프리레졸루션 (Glass File Pre-Resolution for Embedded Java System)

  • 강두진;맹혜선;이영민;한탁돈;김신덕
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.385-387
    • /
    • 1999
  • 내장형 기기에서 자바를 제어 및 응용 프로그램으로 사용하는 경향이 증대하고 있다. 내장형 자바가상머신에서는 응용 프로그램과 관련 자바 API를 로딩된 형태로 롬에 적재하는 형태를 가진다. 따라서 응용프로그램은 필터링을 거쳐서 관련된 자바 API를 선별한 후 롬릿으로 만들어진다. 본 논문에서는 내장형 자바가상머신에 적재될 롬릿을 만드는 과정에서 사용될 수 있는 프리레졸루션 방법을 제시하고 이를 위한 컨스턴트풀 데이터 구조를 제안하였다. 프리레졸루션은 롬릿을 만드는 과정에서 미리 레졸루션을 수행한 결과를 저장하여, 실행 시 발생되는 레졸루션 시간을 제거할 수 있도록 한다. 또한 프리레졸루션은 메모리 접근 횟수를 감소시켜 내장형 기기에서 필요한 저전력 요구를 지원한다. 본 논문에서 제안한 컨스턴트풀 데이터 구조는 공용체 구조의 미사용 부분에 레졸루션 결과를 저장할 수 있도록 구성함으로써 추가적인 메모리 비용없이 프리레졸루션의 이득을 얻을수 있다.

  • PDF

시간제한 블랙박스 보안을 이용한 자바 이동 에이전트의 보호 (A Java Mobile Agent Protection Using Time Limited BlackBox Security)

  • 서준혁;이승우;방대욱
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2000년도 추계학술발표논문집 (상)
    • /
    • pp.605-608
    • /
    • 2000
  • 본 논문에서는 자바로 작성된 에이전트가 신뢰할 수 없는 호스트에서도 자신의 코드와 데이터를 노출시키지 않고 안전하게 수행할 수 있게 하는 3가지 시간제한 블랙박스 보안 방법 즉 변수 분해, 코드 어포스캐이팅 그리고 클래스 지연로딩을 제안한다. 변수 분해는 호스트가 에이전트 수행을 감시하여 에이전트 내의 데이터를 파악하는 것을 어렵게 하며, 코드 어포스캐이팅은 실행코드에 더미코드와 가상코드를 삽입하여 역컴파일 등과 같은 기법으로도 코드의 의미 분석을 힘들게 하여 에이전트를 보호한다. 그리고 클래스 지연로딩은 변수에 접근하는 함수들을 암호화하여 실행시간까지 그 접근 방법의 공개를 차단한다. 제안하는 블랙박스 보안방법들은 호스트가 에이전트 내부를 파악하는데 상당한 시간을 소요하게 하여 적어도 에이전트가 실행되는 동안은 에이전트가 보호되게 하는 보안 방법이다.

  • PDF

안드로이드 어플리케이션 역공학 방지 기술 분석 (An analysis on Technics for Preventing Android Reverse Engineering)

  • 박민건;오정희;류환일;김수민
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 춘계학술발표대회
    • /
    • pp.353-356
    • /
    • 2014
  • 역공학 방지 기법이 적용되지 않은 어플리케이션은 악의적인 역공학에 취약할 수밖에 없다. 악의적인 역공학은 사회적으로 여러가지 손실을 가져온다. 그러므로 역공학 방지 기법을 적용하여 어플리케이션을 보호해야 한다. 역공학 방지 기법은 다양하며, 크게 자바 소스 난독화, Smali 코드 조작, Dex 파일 포맷 조작, 그리고 Zip 파일 포맷 조작 기법으로 나눌 수 있다. 자바 소스 난독화는 코드의 가독성을 떨어트려 안드로이드 어플리케이션의 역공학을 어렵게 하는 기법이다. Smali 코드 조작 기법은 Goto 문 추가, 예외 처리 재귀 기법 등을 통하여 역공학을 막는 기법이다. Dex 파일 포맷 조작 기법에는 클래스명 길이 변경, 헤더 크기 변경 등을 통해 역공학을 어렵게 만드는 기법이다. Zip 파일 포맷 조작 기법은 Zip 파일 포맷에서 헤더 값을 조작하여 마치 암호화된 것처럼 보이도록 만드는 기법이다. 본 논문에서는 이러한 다양한 기법들에 대해서 설명하고 이를 비교 분석한다.