• Title/Summary/Keyword: 역컴파일러

Search Result 11, Processing Time 0.024 seconds

Decompiler for Executing Virtual Machine Code (가상기계 코드 실행을 위한 역컴파일러)

  • Ahn Duk-Ki;Oh Se-Man
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.05a
    • /
    • pp.383-386
    • /
    • 2006
  • 최근 가상기계 시스템은 임베디드 유비쿼터스 컴퓨팅의 필수적인 기술로서, 그 중요성이 더욱 강조되고 있으며, 컴파일러, 어셈블러 그리고 가상기계의 구현으로 구축된다. 이러한 시스템의 구축 과정에서 각 컴포넌트의 신뢰성을 위하여 정확한 검증 방법이 요구되며, 검증의 효율성을 위해서 순차적으로 진행되어야 한다. 본 논문에서는 가상기계 시스템의 컴파일러를 검증하기 위해서, 컴파일 된 가상기계 코드를 역컴파일하여 실행하는 기법을 제안하고, 그러한 기법에 따라 EVM(Embedded Virtual Machine) SIL(Standard Intermediate Language) 역컴파일러를 구현하였다. 구현된 역컴파일러는 EVM이 개발되기 전에 효율적인 실행 시스템으로 이용됨은 물론 EVM ANSI C 컴파일러의 검증 도구로서 이용될 수 있으며, EVM 시스템을 체계적으로 개발할 수 있도록 할 것이다.

  • PDF

Development of a Decompiler for Verification and Analysis of an Intermediate Code in ANSI C Compiler (ANSI C 컴파일러에서 중간코드의 검증과 분석을 위한 역컴파일러의 개발)

  • Kim, Young-Keun;Kwon, Hyeok-Ku;Lee, Yang-Sun
    • Journal of Korea Multimedia Society
    • /
    • v.10 no.3
    • /
    • pp.411-419
    • /
    • 2007
  • Mounted on mobile device, set-top box, or digital TV, EVM is a virtual machine solution that can download and execute dynamic application programs. And the SIL(Standard Intermediate Language) is intermediate language of the EVM, which has a set of opcodes for object-oriented language and a sequential language. Since the C compiler used on each platform depends on the hardware, it converts C program to objective code, and then executes. To solve this problem, our research team developed ANSI C compiler and the EVM. Our ANSI C compiler outputs the SIL code based on stack machine. This paper presents the SIL-to-C decompiler in which converts the SIL code to three address code. Thus, the decompiler allows us to verify SIL code created by ANSI C compiler, and analyze a program from C language source level.

  • PDF

The Declarations Reconstruction Technique for the Symbol Table Verification of the Object-oriented Compiler (객체지향 컴파일러의 심벌 테이블 검증을 위한 선언문 복원 기법)

  • Son, Min-Sung;Kwon, Hyeok-Ju;Kim, Young-Keun;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.11a
    • /
    • pp.669-672
    • /
    • 2006
  • 본 연구팀은 유비쿼터스 게임 플랫폼을 위한 Embedded C++ 컴파일러를 개발하였으며, 컴파일러 개발 과정에서 객체지향언어인 C++과 Java 언어를 모두 수용할 수 있는 심벌 테이블을 설계하였다. 심벌 테이블은 컴파일러의 어휘 분석과 구문 분석 과정을 거친 후 SDT(syntax-directed translation)에 의해 생성된 AST(Abstract Syntax Tree)를 분석하여 인식된 명칭(identifier)과 그 속성(attribute)들을 수집하여 저장하는 자료구조로써, 심벌 테이블에 저장된 속성들은 의미 분석(semantic analysis) 단계에서 수집된 속성과 참조된 명칭의 사용이 타당한지를 검사하고, 코드 생성(code generation) 단계에서 올바른 코드가 생성되도록 하는 중요한 요소이다. 따라서 심벌 테이블의 설계가 올바른지와 입력된 속성이 정확한지에 대한 검증과 분석은 필수 불가결하다. 본 논문에서는 컴파일러 개발과정에서 설계한 심벌 테이블을 검증하고 분석하기 위한 목적으로써 심벌 테이블을 이용하여 선언문을 복원시키는 역번역기(detranslator)에 대하여 기술한다. 구현된 역번역기는 C++ 컴파일러와 Java 컴파일러의 선언문 처리 과정에서 심벌 테이블에 입력된 속성들을 본래의 입력 프로그램으로 역번역한다. 따라서 역번역기를 통하여 심벌 테이블의 완전성과 심벌 테이블에 입력된 속성 정보의 정확성을 쉽게 검증할 수 있으며, 역번역과 함께 출력되는 디버그 정보를 이용하여 효율적으로 컴파일러의 개발과 수정을 할 수 있다.

  • PDF

Design and Implementation of Decompiler for Generating C Program from EVM SIL (EVM SIL에서 C 프로그램 생성을 위한 역컴파일러의 설계 및 구현)

  • Kim, Young-Keun;Kwon, Hyeok-Ju;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2005.05a
    • /
    • pp.549-552
    • /
    • 2005
  • 기존의 ANSI C 프로그램은 각각의 플랫폼에 따른 컴파일러를 통해서 목적기계의 코드로 변환되고, 실행되어 플랫폼에 의존적인 단점이 있다. 이러한 단점을 보완하는 방법으로는 스택기반의 가상기계와 가상기계의 입력형태인 중간코드를 이용하는 기법이 있다. EVM(Embedded Virtual Machine)은 ANSI C 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템을 위한 가상기계이며, SIL(Standard Intermediate Language)은 EVM에서 실행되는 중간언어로 다양한 프로그래밍 언어를 수용하기 위해서 객체지향 언어와 순차적인 언어를 모두 수용하기 위한 연산 코드 집합을 갖고 있다. 본 논문에서는 SIL 코드가 올바른 수행을 하는 것인지를 검증하고 원시코드의 분석을 용이하게 하기 위해서 생성된 SIL 코드를 어셈블리 형태와 유사한 재 표현된 ANSI C 언어로 바꾸는 역컴파일러 시스템을 설계하고 구현하였다.

  • PDF

Design and Implementation of a Detranslator for Verification and Analysis in C++ Compiler (C++ 컴파일러에서 심벌 테이블의 검증과 분석을 위한 역번역기의 설계 및 구현)

  • Son Min-Sung;Kwon Hyeok-Ju;Lee Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.05a
    • /
    • pp.447-450
    • /
    • 2006
  • 본 논문에서는 C++ 컴파일러 구현과정에서 객체지향 언어의 속성을 처리하기 위한 역번역기(detranslator)를 설계하고 구현하였다. 구현된 역번역기는 C++ 컴파일러의 선언부 처리 과정에서 심벌 테이블에 입력된 속성들을 본래의 C++ 프로그램으로 역번역 한다. 따라서 C++ 컴파일러 개발 과정에서 설계된 심벌 테이블과 심벌테이블에 입력된 정보가 올바른지 쉽게 검증할 수 있다. 심벌 테이블은 C++ 컴파일러의 어휘 분석과 구문 분석 과정에서 인식되는 명칭(identifier)에 대하여 그 속성(attribute)들을 수집하여 저장하는 자료구조로, 심벌 테이블에 저장된 속성들은 의미분석(semantic analysis) 단계에서 참조된 명칭의 사용이 타당한지 검사하는데 사용 되어 코드 생성(code generation) 단계에서 올바른 코드가 생성 되도록 한다. 본 역번역기를 구현함으로써 심벌 테이블이 올바르게 설계 되었는지 검증할 수 있으며, 컴파일 할 때 심벌 테이블에 필요한 모든 속성이 저장되어 있는지 쉽게 확인 할 수 있게 되었다. 그리고 디버그 정보도 함께 출력되어 객체지향 언어를 위한 컴파일러 개발의 정확성을 기할 수 있다.

  • PDF

Design and Implementation of a Decompiler for Verification and Analysis of Intermediate Code in C++ Compiler (C++ 컴파일러에서 중간코드의 검증과 분석을 위한 역컴파일러의 설계 및 구현)

  • Bae Sung-Kyun;Kim Young-Keun;Lee Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.05a
    • /
    • pp.1405-1408
    • /
    • 2006
  • C++ 언어는 객체지향 프로그래밍 언어로, 기존의 C++ 프로그램은 각각의 플랫폼에 따른 컴파일러를 통해 목적기계의 코드(object code)로 변환되므로 실행되는 플랫폼에 의존적인 단점이 있다. 이러한 단점을 보완하는 방법으로 스택기반의 가상기계와 가상기계의 입력형태인 중간코드를 이용하는 기법이 있다. EVM(Embedded Virtual Machine)은 ANSI C, ISO/IEC C++ 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템 기반의 가상기계이며, EVM에서 실행되는 중간코드인 SIL(Standard Intermediate Language)은 객체지향 언어와 순차적인 언어를 모두 수용하기 위한 명령 코드의 집합으로 설계되어 있다. 본 논문에서는 C++ 컴파일러를 통해 생성된 SIL 코드가 올바른지 검증하고 원시코드의 분석을 용이하게 하기 위해서 SIL 코드를 어셈블리 코드와 유사한 형태의 재 표현된 C++ 프로그램으로 역컴파일하는 시스템을 설계하고 구현하였다.

  • PDF

론웍스 네트워크의 자가 진단을 지원하는 흠 제어 네트워크 구성 관리 서버의 구조

  • 이창은;박준희;손영성;문경덕
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.04d
    • /
    • pp.142-144
    • /
    • 2003
  • 본 논문에서는 홈 자동화 네트워크으로 가장 각광을 받고있는 론웍스(Lonworks) 시스템을 구성 관리하는 홈 서버 플랫폼의 새로운 구조를 제안한다. Echelon사에서 제안하는 Lonworks 시스템의 구성관리 도구로서의 LonMaker는 자체적으로 개발한 LNS (Lonworks Network Service)라고 하는 비 표준화된 구성 관리 기술을 통해서 네트워크를 관리하도록 지원하며, 상기한 LNS를 인프라로 활용하는 도구로서, LNS는 빌딩 혹은 가정 내에 Lonworks 네트워크로 연결되어 있는 디바이스들에 대한 정보를 DB화하여 구축된 자료를 기반으로 하여 디바이스들간에 연동이 가능하도록 지원한다. 그러나 고가이며, 구성 관리를 한 디바이스 개수당 가격을 별도로 지불해야 하는 로열티가 있고, 이 역시도 하드웨어 제약사양인 뉴런칩(Neuron Chip)을 사용해야 한다는 점에서 개발자로 하여금 많은 부담을 주고 있다. 이에 본 논문에서는 홈 자동화 네트워크 개발 시에 노드 구조를 각 응용목적에 맞도록 보다 유연성 있게 구현할 수 있도록 하는 네트워크 구성 관리 기능을 갖춘 흠 서버 플랫폼을 제안한다 제안된 흠 서버 플랫폼을 통해 제어 네트워크의 다양화와 고성능 처리의 장점을 얻을 수 있었고, 기존의 고가의 론웍스 LonMaker 소프트웨어를 사용하지 않고도 단지 리눅스 상의 무료 컴파일러인 gcc 컴파일러를 통해 홈 서버 노드를 구성할 수 있으므로 시스템 개발에 대한 비용을 많이 줄일 수 있으며, 리눅스 OS를 사용하는 홈 자동화 홈 서버 시스템으로의 파급효과가 클 것이다.

  • PDF

An Efficient Loop Splitting Method on Single Loop with Non-uniform Dependences (비균일 단일루프에서의 효율적인 루프 분할 방법)

  • Jeong Sam-Jin
    • The Journal of the Korea Contents Association
    • /
    • v.5 no.4
    • /
    • pp.204-211
    • /
    • 2005
  • This paper introduces three loop splitting methods such as minimum dependence distance method, Polychronopoulous' method, and first dependence method for exploiting parallelism from single loop which already developed. And it also Indicates their several problems. We extend the first dependence method which is the most effective one among three loop splitting methods, and propose more powerful loop splitting method to enhance parallelism on single loop. The proposed algorithm solves several problems, such as anti-flow dependence and g=gcd(a,c) > 1, that the first dependence method has.

  • PDF

A Study on the protection technique of a Applet decompilation in Java Environment (자바 애플릿 보안을 위한 역컴파일 방지 기법에 관한 연구)

  • 손태식;서정택;장준교;김동규
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.10a
    • /
    • pp.626-628
    • /
    • 2000
  • Java는 간결하고 객체 지향적이며 플랫폼 독립적으로 실행 가능한 특성을 지니고 있어, 웹 상에서의 증대된 표현능력과 유연성을 제공해 왔다. 하지만 이렇게 개방적이고 넓은 수용 가능성은 보안에 있어 많은 위협 취약점을 발생시키게 한다. 특히 현재 네트웍을 통해 널리 사용되는 애플릿은 그 자체가 사용자의 시스템에 전송되어 실행되므로, 만일 악의의 사용자가 그 애플릿 파일을, 역 컴파일러를 사용해 소스 코드를 얻어낸다면, 애플릿 서비스를 하는 시스템 및 네트웍에 대한 보안 문제 및 경제적 피해는 물론이고, 애플릿 개발자 및 다른 사용자들에게 있어 많은 문제를 일으킬 수 있다. 따라서 본 논문에서는 현재 자바 애플릿 역컴파일에 의한 보안 취약성 및 문제점을 진단하고, 거기에 대처할 수 있는 대응 기법에 대한 연구를 통해 보다 나은 자바 애플릿 역컴파일 방지 기법을 제시하려고 한다. 본 논문에 제안된 방법은 역컴파일 방지를 위해 클래스 파일에 혼란 코드를 삽입하는 방법으로서, 그 기법 및 사용 방법을 제시하고 역컴파일 방지 도구의 모델을 제안한다. 또한 앞으로의 연구는 여기서 제안된 자바 애플릿 역컴파일 방지 도구 모델의 세부적 구현으로 진행되어야 하겠다.

  • PDF

A Disassembly Technique of ARM Position-Independent Code with Value-Set Analysis Having Symbol-Form Domain (기호 형태의 값-집합 분석을 이용한 ARM 위치 독립적 코드의 정교한 역어셈블리 기법)

  • Ha, Dongsoo;Oh, Heekuck
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.28 no.5
    • /
    • pp.1233-1246
    • /
    • 2018
  • With the proliferation of smart mobiles, disassembly techniques for position-independent code (PIC) composed of ARM architecture instructions in computer security are becoming more important. However, existing techniques have been studied on x86 architecture and are focused on solving problems of non-PIC and generality. Therefore, the accuracy of the collected address information is low to apply to advanced security technologies such as binary measurement. In this paper, we propose a disassembly technique that reflects the characteristics of PIC composed of ARM instructions. For accuratly collecting traceable addresses, we designed value-set analysis having symbol-form domain. To solve the main problem of disassembly, we devised a heuristic using the characteristics of the code generated by the compiler. To verify the accuracy and effectiveness of our technique, we tested 669 shared libraries and executables in the Android 8.1 build, resulting in a total disassembly rate of 91.47%.