• 제목/요약/키워드: 중간코드

검색결과 197건 처리시간 0.031초

바이너리 파일에서 Word2Vec 딥러닝 기법을 이용한 복합 자료형 추론 연구 (A Study on Composite Data Type Inference using Word2vec Deep Learning Scheme on Binary File)

  • 민예슬;정현오;이혜린;이승연;우드아커벙 오퐁;정준호;손윤식
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2017년도 추계학술발표대회
    • /
    • pp.306-309
    • /
    • 2017
  • 소프트웨어의 보안에 대한 중요성이 점차 높아짐에 따라, 소스코드 기반의 소프트웨어의 보안약점 분석 기법에서 더 나아가 소스 코드가 존재하지 않는 바이너리 파일을 대상으로 분석을 수행하는 연구가 진행되고 있다. 왜냐하면 소프트웨어 개발의 복잡성 증가에 따른 서드파티 라이브러리 활용과 레거시 코드의 관리 부재, 임베디드 소프트웨어의 특성 등으로 인해 소스 코드가 존재하지 않는 바이너리 코드의 사용이 늘어나고 있기 때문이다. 따라서 최근 바이너리 코드에 내제된 보안약점을 분석하기 위해서 중간코드를 이용하여 정적분석을 수행하는 다양한 연구가 진행되고 있다. 중간언어를 사용함으로 실행환경에 따라 달라지는 바이너리 코드가 중간언어로만 변환이 된다면 동일한 형태의 보안약점 분석기술을 통해 효과적인 수행이 가능하다. 본 논문에서는 이러한 바이너리 코드로부터 중간언어로 변환시 컴파일 과정에서 상실된 복합 자료형을 재구성하기 위해 Word2vec 딥러닝 기법을 이용한 추론기법을 제안한다.

중간 코드를 스택-기반 코드로의 변환기 (Translator for Stack-Based Codes from Intermediated Codes)

  • 김영국;고훈준;유원희
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 한국컴퓨터종합학술대회 논문집 Vol.32 No.1 (B)
    • /
    • pp.895-897
    • /
    • 2005
  • 자바의 문제점은 실행속도의 저하이다. 실행속도 저하의 해결 방법으로 네이티브 코드로 변환, JIT컴파일러, 바이트코드 최적화등의 연구가 되어 왔다. 그 중에 바이트코드 최적화 방법을 사용하는 CTOC(Class To Optimized Classes)에서 중간코드로 사용하는 3-주소 코드를 스택-기반 코드로 코드 확장 기법으로 변환 시 불필요한 store/load 코드가 생성된다. 따라서 본 논문은 불필요한 store/load 코드를 제거하기 위해서 부분 중복 코드 제거 후 불필요한 store/load문을 제거함으로서 불필요한 store/load 코드의 양을 줄이는 변환기를 제안하고, 거기에 대한 간단한 예를 들어 설명한다.

  • 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

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

  • 권혁주;김영근;이양선
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2004년도 춘계학술발표대회논문집
    • /
    • 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

스트링 패턴 매칭 기법을 이용한 중간 코드 변환기의 설계 및 구현 (Design and Implementation of Intermediate Code Translator using String Pattern Matching Technique)

  • 고광만
    • 인터넷정보학회논문지
    • /
    • 제3권3호
    • /
    • pp.1-9
    • /
    • 2002
  • 자바 언어의 실행 속도를 개선하기 위해 전통적인 컴파일 방법을 사용하여 바이트 코드를 특정 프로세서에서 수행될 수 있는 목적기계 코드로 변환하는 다양한 연구가 진행중이다. 패턴 매칭을 이용한 코드 생성 기법은 코드 확장 기법에 비해 양질의 코드를 생성할 수 있는 장점을 가지고 있다. 본 연구에서는 바이트 코드로부터 효과적으로 네이티브 코드를 생성하기 위해 레지스터 기반의 중간 언어를 효율적으로 생성할 수 있는 정형화된 패턴 기술 방법과 패턴 매칭 기법에 대해 제시한다. 또한 기술된 정형화 패턴을 활용하여 양질의 레지스터 기반 중간 코드를 생성하는 중간 코드 변환기를 설계하고 구현하였다.

  • PDF

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

  • 김영국;유원희
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 가을 학술발표논문집 Vol.32 No.2 (2)
    • /
    • pp.433-435
    • /
    • 2005
  • 자바의 문제점은 실행속도의 저하이다. 바이트코드 최적화 방법을 사용하는 CTOC(Class To Optimized Classes)에서 중간코드로 사용하는 3-주소 코드를 스택-기반 코드로 코드 확장 기법으로 변환 시 불필요한 코드가 생성된다. 이러한 불필요한 코드를 제거하기 위한 정보를 필요로 한다. 필요한 정보를 얻기 위한 분석기로 CFG생성기를 설계 및 구현한다.

  • PDF

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

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

CTOC에서 중간 코드에서 효율적인 바이트코드로의 변환기 설계 (Design of Translator for Efficient Bytecodes from Intermediated Codes in CTOC)

  • 김영국;조선문;김기태;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 추계학술발표논문집(상)
    • /
    • pp.445-448
    • /
    • 2004
  • 자바는 자바 가상기계를 사용해서 플랫폼에 독립적으로 사용할 수 있는 장점을 가진다. 그러나 자바가상머신은 인터프리터 방식을 이용하기 때문에 다른 컴파일언어에 비해서 수행속도가 느리다는 단점을 가진다. 이런 단점을 극복하기 위해서 많은 최적화나 JIT컴파일러 그리고 네이티브 코드로의 변환과 같은 연구들이 많이 연구되었다. 이전의 연구들은 한계성을 가지고 있어서 자바에서 수행시간의 문제는 지금도 문제로 남아있다. 이전의 문제점 해결의 극복의 대안으로 바이트코드를 최적화하는 프레임워크인 CTOC를 설명하고, CTOC에서 사용하는 중간코드로 사용하는 3-주소형식의 CTOC-T를 바이트코드로 변환하고, CTOC-T에서 바이트코드형식으로 변환할 때 생기는 과다한 load/store의 문제점을 해결한다.

  • PDF

바이트 코드 검증을 위한 스택리스 중간표현 설계 (BIRS ; ByteCode Intermediate Representation With Specification)

  • 김선태;김제민;박준석;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2011년도 춘계학술발표대회
    • /
    • pp.265-268
    • /
    • 2011
  • 자바는 개발환경의 편리성과 재사용성, 이식성으로 다양한 시스템 환경에서 사용한다. 그러므로 자바는 오류 없이 안전하게 실행하는 것이 중요하다. 하지만 자바 바이트 코드를 통한 자바의 안전한 실행에 대한 검증은 스택코드, 코드의 정보부족 등의 이유로 검증을 어렵게 한다. 본 논문에서는 자바 바이트코드의 문제점을 해결하여 검증을 수행하는데 적합한 중간표현 언어를 소개한다. 중간표현 언어는 스택리스코드로 구현되며, 모든 명령어의 정보를 담고 있다. 이를 통해, 자바 바이트코드를 통한 검증을 수행할 것이다.

패턴 매칭 기법을 이용한 자바 바이트코드 변환기의 설계 및 구현 (Design and Implementation of Java Bytecode Translator usin Pattern Matching Technique)

  • 고광만
    • 전자공학회논문지CI
    • /
    • 제39권4호
    • /
    • pp.1-9
    • /
    • 2002
  • 자바 언어의 실행 속도를 개선하기 위해 전통적인 컴파일 방법을 사용하여 바이트코드를 특정 프로세서에서 수행될 수 있는 목적기계 코드로 변환하는 다양한 연구가 진행중이다. 패턴 매칭 이용한 코드 생성 기법은 코드 확장 기법에 비해 양질의 코드를 생성할 수 있는 장점을 가지고 있다. 본 연구에서는 바이트코드로부터 효과적으로 네이티브 코드를 생성하기 위해 레지스터 기반의 중간 언어를 효율적으로 생성할 수 있는 정형화된 패턴 기술 방법과 패턴 매칭 기법에 대해 제시한다. 또한 기술된 정형화 패턴을 활용하여 양질의 레지스터 기반 중간 코드를 생성하는 중간 코드 변환기를 설계하고 구현하였다.