• Title/Summary/Keyword: 어셈블리언어 코드

Search Result 22, Processing Time 0.026 seconds

An Automatic Translation Method Between Assembly Codes (어셈블리 코드 간의 자동 변환 방법)

  • Shim, Jung-Min;Lim, Jin-Su;Woo, Gyun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2010.11a
    • /
    • pp.322-325
    • /
    • 2010
  • 본 논문은 다른 프로세서간의 어셈블리 코드를 자동으로 변환하는 방법에 대해 소개한다. 어셈블리 언어는 기계어를 사람이 알아보기 쉽도록 만든 저급 언어로서 레지스터 접근과 같은 하드웨어 수준의 작업이 가능한 반면, 컴퓨터 아키텍처에 따라 어셈블리도 다르다. 이에 따라 새로운 프로세서에서 어셈블리 코드가 포함된 프로그램을 동작시키기 위해서는 어셈블리 코드 부분을 새로 작성하여야 한다. 어셈블리를 작성하는 것은 많은 시간이 필요하고 버그가 발생할 확률이 높다. 본 논문에서는 새로 작성할 어셈블리 코드를 동일한 동작을 하는 다른 프로세서의 어셈블리 코드를 통해 생성해내는 방법을 소개한다.

The Study of Checking Source Code Vulnerability on the assembly language level (어셈블리 언어 수준에서의 소스코드 보안취약점 점검방법에 관한 연구)

  • 박현미;이병권;박정현;이형봉
    • Proceedings of the Korea Institutes of Information Security and Cryptology Conference
    • /
    • 2001.11a
    • /
    • pp.102-110
    • /
    • 2001
  • 대부분의 해킹 공격은 공격 대상 프로그램의 소스코드 보안취약점에 의해서 발생하지만 프로그램 개발시에 소스코드 보안성에 대해서는 고려되지 않았다. 이러한 문제점으로 인하여 해킹 공격의 근본적인 원인을 해결할 수 없었다. 본 논문에서는 취약점의 원인이 되는 코드를 컴파일시 생성된 어셈블리 코드 수준에서 탐지하는 방법을 제시하고자 한다. 취약한 코드를 컴파일러 수준에서 점검하는 것보다 어셈블리 코드 수준에서 점검하는 것은 어느 정도의 메모리 영역까지 점검할 수 있어 더 정확하다.

  • PDF

An Efficient Intel Assembler Tool Design (효율적인 인텔 어셈블러 도구 설계)

  • Jung, Seungil;Ryou, Jae-Cheol
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2020.07a
    • /
    • pp.119-122
    • /
    • 2020
  • 소스 코드가 없는 악성코드를 분석하거나 소프트웨어 취약점 분석을 위해 바이너리 분석이 요구된다. 바이너리 분석을 위한 도구 중 어셈블러는 사용자의 입력 없이 컴파일러 내부에서 수행되기 때문에 사용자 관점의 연구는 많지 않다. 그러나 바이너리 분석 과정 중 역어셈블과 중간언어(Intermediate Representation)의 정확성을 검증하기 위해 사용자가 어셈블리어를 입력하여 결과를 확인할 수 있는 어셈블러가 요구된다. 본 논문에서는 어셈블리어를 바이너리 코드로 변환하는 어셈블러 도구를 함수형 언어인 F#으로 구현하여 어셈블리 과정을 효율적으로 설계한 어셈블러 도구를 제안한다. F#의 강력한 패턴 매칭 기능을 사용하여 수백개의 명령어를 일괄적이고 직관적으로 처리하는 과정을 설계하고 구현하였다.

  • 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

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

x86 assembly-to-C Translator (x86 assembly-to-C 변환기)

  • Lee, Ho Jin;Lee, Sang Hee;Park, Bo Hyun;Kim, Seon Wook
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2010.04a
    • /
    • pp.37-40
    • /
    • 2010
  • 본 논문에서는 C 언어로부터 GNU 컴파일러에 의하여 생성된 x86 어셈블리 코드를 고수준의 언어인 C 코드로 변환하여 출력하는 컴파일러의 구현에 대하여 설명한다. 또한, 원천 C 코드와 새롭게 생성된 C 코드와의 성능 비교분석을 수행하였다.

Similarity Detection in Object Codes and Design of Its Tool (목적 코드에서 유사도 검출과 그 도구의 설계)

  • Yoo, Jang-Hee
    • Journal of Software Assessment and Valuation
    • /
    • v.16 no.2
    • /
    • pp.1-8
    • /
    • 2020
  • The similarity detection to plagiarism or duplication of computer programs requires a different type of analysis methods and tools according to the programming language used in the implementation and the sort of code to be analyzed. In recent years, the similarity appraisal for the object code in the embedded system, which requires a considerable resource along with a more complicated procedure and advanced skill compared to the source code, is increasing. In this study, we described a method for analyzing the similarity of functional units in the assembly language through the conversion of object code using the reverse engineering approach, such as the reverse assembly technique to the object code. The instruction and operand table for comparing the similarity is generated by using the syntax analysis of the code in assembly language, and a tool for detecting the similarity is designed.

Fuzzing Method for Web-Assembly Module Safety Validation (웹 어셈블리 모듈 안전성 검증을 위한 퍼징 방법)

  • Park, Sunghyun;Kang, Sangyong;Kim, Yeonsu;Noh, Bongnam
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.29 no.2
    • /
    • pp.275-285
    • /
    • 2019
  • Web-assemblies are a new binary standard designed to improve the performance of Web browser JavaScript. Web-assemblies are becoming a new web standard that can run at near native speed with efficient execution, concise representation, and code written in multiple languages. However, current Web-assembly vulnerability verification is limited to the Web assembly interpreter language, and vulnerability verification of Web-assembly binary itself is insufficient. Therefore, it is necessary to verify the safety of the web assembly itself. In this paper, we analyze how to operate the web assembly and verify the safety of the current web-assembly. In addition, we examine vulnerability of existing web -assembly and analyze limitations according to existing safety verification method. Finally, we introduce web-assembly API based fuzzing method to overcome limitation of web-assembly safety verification method. This verifies the effectiveness of the proposed Fuzzing by detecting crashes that could not be detected by existing safety verification tools.

Assembly Language for Virtual Machine (가상기계를 위한 어셈블리 언어)

  • Nam, Dong-Keun;Yun, Sung-Lim;Oh, Se-Man
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2003.05b
    • /
    • pp.783-786
    • /
    • 2003
  • 가상기계란 하드웨어로 이루어진 물리적 시스템과는 달리 소프트웨어로 제작되어 논리적인 시스템 구성을 갖는 개념적인 프로세서이다. 가상기계 기술은 기계의 프로세서나 운영체제가 바뀌더라도 응용프로그램을 변경하지 않고 사용할 수 있다는 장점이 있다. 최근에는 GVM, KVM 등 모바일 단말기를 위한 가상기계들이 개발되면서 그 중요성이 더욱 부각되고 있으며 특히, 임베디드 시스템을 위한 가상기계 기술은 모바일 디바이스와 디지털 TV 등의 다운로드 솔루션에 꼭 필요한 소프트웨어 기술이다. 본 논문에서는 바이트코드, MSIL 등 기존의 가상기계를 위한 어셈블리 언어들의 분석을 기반으로 하여 임베디드 시스템을 위한 가상기계의 표준 중간 언어인 STL(Standard Intermediate Language)을 제안하고 니모닉(Mnemonic)을 정의한다. SIL은 SIL Assembler에 의해 EVM의 실행 파일인 *.evm의 형태로 번역되며 객체지향 프로그래밍 언어와 순차적인 프로그래밍 언어를 모두 수용할 수 있는 특징을 지닌다.

  • PDF

Similar Software Code Detection Using Side Channel Leakage in Microcontrollers (단일 부채널 전력 파형을 사용한 마이크로컨트롤러 상에서 소프트웨어 표절 탐지)

  • Kim, Hyun-Jun;Jang, Kyung-Bae;Kim, Kyung-Ho;Seo, Hwa-Jeong
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2020.05a
    • /
    • pp.150-153
    • /
    • 2020
  • 부채널 정보를 사용하여 마이크로 컨트콜러 상에서 표절 된 코드를 탐지하는 새로운 방법을 제시한다. 제안 기법은 애플리케이션을 보호하기 위해 추가로 워터 마킹 할 필요가 없이 코드를 실행하는 마이크로 컨트롤러의 유출데이터를 워터 마크로서 사용 할 수 있다. 두 가지 다른 구현의 각각 하나의 부채널 파형에 대한 절대 상관 계수를 기반으로 분석 한다. 어셈블리 언어로 작성된 다양한 테스트 응용 프로그램을 사용 Xmaga128 마이크로 컨트롤러에서 평가하였다. 제안 기법은 어셈블리 코드를 수정하는 공격자에게도 강력하며 코드에 대한 정보와 입력에 대한 접근이 불가능 하여도 탐지가 가능하다.