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

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

내장형 자바를 위한 클래스 파일의 바이트 코드 압축 (Bytecode Compression Method for Embedded Java System)

  • 이영민;맹혜선;강두진;김신덕;한탁돈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.424-426
    • /
    • 1999
  • 본 논문에서는 추후 여러 내장형 기기들을 대체하게 될 내장형 자바가상머신에서 효율적으로 메모리를 사용하기 위해 바이트코드 압축 방법을 제시하고 있다. 이 압축 방법은 기본 코드 블록을 내장형 자바가상머신에서 사용하지 않는 명령어군과 한 바이트의 인덱스를 이용하여 사전을 구축하고, 사전에 등록되어 있는 반복되는 기본 코드 블록들을 이 두 바이트로 대체함으로써 압축하는 것이다. 그러나, 압축하는데 있어서 압축효율 뿐만 아니라 바이트 코드의 수행 속도도 고려하여야 하므로 압축으로 인한 수행 오버헤드를 최소화하여 수행시간에 영향을 적게 주도록 압축 방법을 단순화하여 설계하였다. 본 논문에서 제시하고 있는 압축 방법을 사용하여 실제 사용되는 자바 API(Application Programming Interface)들을 압축함으로써 메모리에 적재되는 바이트 코드를 최대 36%까지 줄이는 결과를 얻어낼 수 있다.

  • PDF

에너지-지향 달빅 바이트코드 스케줄링 기술 (Energy-oriented Dalvik Bytecode Scheduling Technique)

  • 고광만;박희완;윤종희;최광훈
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 춘계학술발표대회
    • /
    • pp.101-102
    • /
    • 2012
  • 안드로이드 플랫폼에 적합한 어플리케이션 보급이 급증하면서 안드로이드 가상머신인 달빅(dalvik)의 성능 향상을 위한 연구가 다양하게 시도되고 있다. 전력 공급이 제한적인 모바일 기기에서 효율적인 어플리케이션 실행을 위한 플랫폼의 성능 향상과 더불어 전력 에너지의 최적화된 소비가 중요한 이슈가 되고 있다. 이 논문은 달빅에서 실행되는 dex 파일의 바이트코드를 에너지 소비 중심으로 스케줄링하여 Java 어플리케이션의 전력 에너지 소비를 최적화하고자 하는 시도이다. 에너지 지향적인 스케줄링 기법은 전통적인 리스트-인스트럭션 스케줄링 기법을 기반으로 하였으며 스케줄링 전 후의 실험 결과를 제시하여 이 연구의 효과를 입증한다.

SMT-Solver 를 사용한 자바바이트코드의 배열 오버플로우 검증 (A Verification of Array Overflow in Java Bytecode using SMT-Solver)

  • 이상협;김제민;박준석;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2011년도 춘계학술발표대회
    • /
    • pp.261-264
    • /
    • 2011
  • 자바프로그램 검증은 안전하고 정확한 프로그램을 만들기 위한 필수적인 조건이지만 자바언어로 작성된 프로그램은 바이트코드로 작성되어 있는 클래스 파일로 배포되기 때문에 바이트코드에 대한 검증이 필요하다. 하지만 자바 바이트코드는 가독성이 떨어져 중간언어로 변환을 하고 그 중간코드에서 검증에 필요한 조건들을 작성 해야 한다. 이 논문에서는 새로 정의된 중간언어인 BIRS을 통해 컴파일시 검증이 되지 않는 배열 오버플로우에 대한 정적검증을 설명하고 검증 절차에 필요한 명제의 정의와 검증 시 사용되는 SMT-Solver 인 Z3 의 사용법에 대하여 서술하였다.

자바 프로그램의 분석 및 검증을 위한 제어흐름그래프 시각화 (Visualization of Control Flow Graph for Analysis and Verification of JAVA Byte Code)

  • 정지웅;김제민;박준석;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2011년도 추계학술발표대회
    • /
    • pp.213-215
    • /
    • 2011
  • 프로그램에 대한 검증을 수행하기 위해서는 자료흐름을 알아야 하고, 입력된 프로그램에 대응하는 제어흐름그래프(control flow graph)가 필요하다. 이에 더하여 제어흐름 그래프를 시각화한다면 사용자 입장에서는 더 편한 프로그램이 될 것이다. 본 논문에서는 자바 프로그램의 검증도구에 사용하는 중간 표현 언어 중 하나인 BIRS(Bytecode Intermediate Representation with Specification)에 의해 생성되는 제어흐름그래프를 시각화하는 방법에 대해 제안한다.

유해 사이트를 접속하는 안드로이드 앱을 문자열 분석으로 검사하는 시스템 (A String Analysis based System for Classifying Android Apps Accessing Harmful Sites)

  • 최광훈;고광만;박희완;윤종희
    • 정보처리학회논문지A
    • /
    • 제19A권4호
    • /
    • pp.187-194
    • /
    • 2012
  • 안드로이드 기반 스마트폰 앱의 바이너리 코드를 오프라인 상에서 분석하여 유해 사이트 목록에 포함된 서버에 접속하는지 여부를 판단하는 시스템을 제안하고, 실제 앱에 대해 적용한 실험 결과를 제시한다. 주어진 앱의 바이너리 코드를 Java 바이트 코드로 역 컴파일하고, 문자열 분석을 적용하여 프로그램에서 사용하는 모든 문자열 집합을 계산한 다음, 유해 매체물을 제공하는 사이트 URL을 포함하는지 확인하는 방법이다. 이 시스템은 앱을 실행하지 않고 배포 단계에서 검사할 수 있고 앱 마켓 관리에서 유해 사이트를 접속하는 앱을 분류하는 작업을 자동화 할 수 있는 장점이 있다. DNS 서버를 이용하거나 스마트폰에 모니터링 모듈을 설치하여 차단하는 기존 방법들과 서로 다른 단계에서 유해 앱을 차단함으로써 상호 보완할 수 있는 방법이 될 수 있다.

임베디드 시스템을 위한 가상기계의 설계 및 구현 (Design and Implementation of a Virtual Machine for Embedded Systems)

  • 오세만;고광만;이양선
    • 한국멀티미디어학회논문지
    • /
    • 제8권9호
    • /
    • pp.1282-1291
    • /
    • 2005
  • 본 논문에서는 모바일 디바이스(휴대폰, PDA), 셋톱박스, 디지털 TV 등의 임베디드 시스템에 탑재되어 수많은 동적 애플리케이션을 다운로드하여 실행할 수 있는 임베디드 가상기계(Embedded Virtual Machine)를 설계하고 구현하였다. 이를 위해 표준 중간 언어인 SIL(Standard Intermediate Language)을 정의하고, 자바와 .NET 언어로 구현된 프로그램이 EVM에서 실행될 수 있도록 SIL-코드로 번역해 주는 MSIL-to-SIL 번역기와 Bytecode-to-SIL 번역기를 구현하였다. 또한, SIL 코드를 EVM의 실행파일인 *.evm으로 변환해주는 어셈블러인 EFF 빌더를 개발하였으며, EFF 빌더가 생성한 *.evm 파일을 입력으로 받아 실행하는 가상기계(EVM)를 구현하였다. 본 연구에서 구현한 가상기계는 플랫폼이 변경되더라도 컨텐츠의 수정없이 실행할 수 있는 소프트웨어 기술이다. 실제로, 제안된 가상기계는 기존에 존재하는 가상기계들의 표준화 모델로 사용될 수 있을 뿐만 아니라 모바일 디바이스, 디지털 TV, 셋톱박스 등과 같은 임베디드 시스템에 내장되어 응용프로그램을 효율적으로 실행시켜 줄 수 있다.

  • PDF

DTV 콘텐츠 검증 시스템을 위한 Java 컴파일러의 개발 (Development of a Java Compiler for Verification System of DTV Contents)

  • 손민성;박진기;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2007년도 춘계학술발표대회
    • /
    • pp.1487-1490
    • /
    • 2007
  • 디지털 위성방송의 시작과 더불어 본격적인 데이터 방송의 시대가 열렸다. 데이터방송이 시작 되면서 데이터방송용 양방향 콘텐츠에 대한 수요가 급속하게 증가하고 있다. 하지만 양방향 콘텐츠 개발에 필요한 저작 도구 및 검증 시스템은 아주 초보적인 수준에 머물러 있는 것이 현실이다. 그러나 방송의 특성상 콘텐츠 상에서의 오류는 방송 사고에까지 이를 수 있는 심각한 상황이 연출 될 수 있다. 본 연구 팀은 이러한 DTV 콘텐츠 개발 요구에 부응하여, 개발자의 콘텐츠 개발 및 사업자 또는 기관에서의 콘텐츠 검증이 원활이 이루어 질수 있도록 하는 양방향 콘텐츠 검증 시스템을 개발 중이다. 양방향 콘텐츠 검증 시스템은 Java 컴파일러, 디버거, 미들웨어, 가상머신, 그리고 IDE 등으로 구성된다. 본 논문에서 제시한 자바 컴파일러는 양방향 콘텐츠 검증 시스템에서 데이터 방송용 자바 애플리케이션(Xlet)을 컴파일하여 에뮬레이팅 하거나 런타임 상에서 디버깅이 가능하도록 하는 바이너리형태의 class 파일을 생성한다. 이를 위해 Java 컴파일러는 *.java 파일을 입력으로 받아 어휘 분석과 구문 분석 과정을 거친 후 SDT(syntax-directed translation)에 의해 AST(Abstract Syntax Tree)를 생성한다. 클래스링커는 생성된 AST를 탐색하여 동적으로 로딩 되는 파일들을 연결하여 AST를 확장한다. 의미 분석과정에서는 확장된 AST를 입력으로 받아 참조된 명칭의 사용이 타당한지 등을 검사하고 코드 생성이 용이하도록 AST를 변형하고 부가적인 정보를 삽입하여 ST(Semantic Tree)를 생성한다. 코드 생성 단계에서는 ST를 입력으로 받아 이미 정해 놓은 패턴에 맞추어 Bytecode를 출력한다.ovoids에서도 각각의 점들에 대한 선량을 측정하였다. SAS와 SSAS의 직장에 미치는 선량차이는 실제 임상에서의 관심 점들과 가장 가까운 25 mm(R2)와 30 mm(R3)거리에서 각각 8.0% 6.0%였고 SAS와 FWAS의 직장에 미치는 선량차이는 25 mm(R2) 와 30 mm(R3)거리에서 각각 25.0% 23.0%로 나타났다. SAS와 SSAS의 방광에 미치는 선량차이는 20 m(Bl)와 30 mm(B2)거리에서 각각 8.0% 3.0%였고 SAS와 FWAS의 방광에 미치는 선량차이는 20 mm(Bl)와 30 mm(B2)거리에서 각각 23.0%, 17.0%로 나타났다. SAS를 SSAS나 FWAS로 대체하였을 때 직장에 미치는 선량은 SSAS는 최대 8.0 %, FWAS는 최대 26.0 %까지 감소되고 방광에 미치는 선량은 SSAS는 최대 8.0 % FWAS는 최대 23.0%까지 감소됨을 알 수 있었고 FWAS가 SSAS 보다 차폐효과가 더 좋은 것으로 나타났으며 이 두 종류의 shielded applicator set는 부인암의 근접치료시 직장과 방광으로 가는 선량을 감소시켜 환자치료의 최적화를 이룰 수 있을 것으로 생각된다.)한 항균(抗菌) 효과(效果)를 나타내었다. 이상(以上)의 결과(結果)로 보아 선방활명음(仙方活命飮)의 항균(抗菌) 효능(效能)은 군약(君藥)인 대황(大黃)의 성분(成分) 중(中)의 하나인 stilbene 계열(系列)의 화합물(化合物)인 Rhapontigenin과 Rhaponticin의 작용(作用)에 의(依)한 것이며, 이는 한의학(韓醫學) 방제(方劑) 원리(原理)인 군신좌사(君臣佐使) 이론(理論)에서 군약(君藥)이 주증(主症)에 주(主)로 작용(作用)하는 약물(藥物)이라는 것을 밝혀주는 것이라고

CTOC에서 죽은 코드 제거 구현 (Implementation of Dead Code Elimination in CTOC)

  • 김기태;김제민;유원희
    • 한국컴퓨터정보학회논문지
    • /
    • 제12권2호
    • /
    • pp.1-8
    • /
    • 2007
  • 자바 바이트코드가 많은 장점을 갖지만, 수행 속도가 느리고 분석하기 어렵다는 단점이 존재한다. 따라서 자바 클래스 파일이 네트워크와 같은 실행 환경에서 효과적으로 실행되기 위해서는 최적화된 코드로 변환이 요구된다. 최적화된 코드로 변환하기 위해 CTOC를 구현하였다. 정적으로 값과 타입을 결정하기 위해 CTOC는 변수를 배정에 따라 분리하는 SSA Form을 사용하였다. 또한 문장의 표현을 위해 트리 구조를 사용하였다. 하지만 SSA Form 변환 과정에서 $\phi$-함수의 삽입에 의해 오히려 노드의 수가 증가하게 되었다. 본 논문은 SSA Form에서 더욱 최적화된 코드를 얻기 위해 죽은 코드를 제거하는 과정을 보인다. 각 노드에 대해 새로운 live 필드를 추가하고 트리 구조에서 죽은 코드 제거 과정을 수행한다. 실험 결과를 통해 죽은 코드 제거 후 상당한 노드의 수가 줄어든 것을 확인할 수 있다.

  • PDF

자마린으로 개발된 안드로이드 앱의 정적 분석 연구 (A Static Analysis Technique for Android Apps Written with Xamarin)

  • 임경환;김규식;심재우;조성제
    • 정보보호학회논문지
    • /
    • 제28권3호
    • /
    • pp.643-653
    • /
    • 2018
  • 자마린은 대표적인 크로스 플랫폼 개발 프레임워크로, 안드로이드, iOS, 또는 Windows Phone등의 여러 플랫폼을 위한 모바일 앱을 C#으로 작성하게 해준다. 모바일 앱 개발자들은 기존의 C# 코드를 재사용하고 여러 플랫폼간에 상당한 코드를 공유할 수 있어 개발 시간과 유지보수 비용을 줄일 수 있다. 한편, 멀웨어 작성자들 또한 자마린을 이용하여 악성 앱 제작 시간과 비용을 최소화하면서 더 많은 플랫폼에 악성 앱을 전파할 수 있다. 이에 대응하기 위해서 자마린으로 작성된 멀웨어를 분석하고 탐지하는 방안이 필요하다. 그러나 현재 자마린으로 작성된 앱에 대한 분석 방법에 대한 연구가 많이 이루어지고 있지 않다. 이에 본 논문에서는 자마린으로 개발된 안드로이드 앱의 구조를 파악하고 앱 코드를 정적으로 분석하는 기법을 제안한다. 또한, 코드 난독화가 적용된 앱에 대해서도 정적으로 역공학하는 방법을 보인다. 자마린으로 개발된 앱은 자바 바이트코드, C# 기반의 DLL 라이브러리, C/C++ 기반의 네이티브 라이브러리로 구성되어 있으며, 이들 서로 다른 유형의 코드들에 대한 정적 역공학 기법에 대해서 연구하였다.