• 제목/요약/키워드: 컴파일언어

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

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

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

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

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

  • PDF

웹기반 프로그래밍 언어 강의 지원 시스템의 설계 및 구현 (Design and Implementation of a Web-based Programming Class Support System)

  • 박소영
    • 한국정보통신학회논문지
    • /
    • 제14권12호
    • /
    • pp.2775-2782
    • /
    • 2010
  • 본 논문에서는 강사가 학생에게 프로그래밍 언어를 효과적으로 가르칠 수 있도록 지원하는 웹기반 프로그래밍 언어 강의 지원 시스템을 제안한다. 제안하는 시스템은 오류 분석 단계와 검사 수행 단계로 구성된다. 먼저, 오류 분석 단계에서는 학생들이 제출한 프로그램에 컴파일 오류나 실행 오류가 있는지 확인한다. 이 때, 오류가 있으면 학생들이 이를 수정할 수 있도록 친절한 피드백을 제공한다. 그리고, 오류가 없으면 제출한 프로그램에 대해 소스 코드의 스타일 검사, 주석 검사, 표절 검사를 수행하고, 학생에게 검사결과에 대한 신속한 피드백을 제공한다. 따라서, 학생은 프로그램 과제물을 제출하고 바로 검사결과를 확인할 수 있다. 제안하는 시스템을 C 언어 수업에서 활용한 결과 학생들이 보다 적극적으로 프로그램 과제물을 제출하려는 경향이 나타났다.

그래픽 유저 인터페이스를 지원하는 웹 기반 프로그래밍 환경 '봄밭'의 설계 및 구현 (BomBart : Web-based Programming Environment Support to Graphic User Interface)

  • 천준석;송지원;우균
    • 한국콘텐츠학회논문지
    • /
    • 제17권5호
    • /
    • pp.317-325
    • /
    • 2017
  • 최근 전세계적으로 프로그래밍 교육에 대한 관심이 증가하고 있다. 하지만 대부분의 언어는 컴파일러와 통합 개발 환경을 컴퓨터에 설치하여야만 사용할 수 있는 문제가 있다. 이를 해결하기 위해 Eclipse Che나 JDOODLE과 같은 웹 기반 프로그래밍 환경이 다수 개발되었지만 대부분이 GUI 프로그래밍을 지원하지 않고, 특히 한글 프로그래밍 언어는 지원하지 않는다. 이 논문에서는 '봄밭'이라고 하는 웹 기반 프로그래밍 환경을 제안한다. 봄밭은 한글 프로그래밍 언어인 새싹을 지원하고, GUI 프로그래밍도 지원한다. 콘솔 기반의 입출력 또한 지원한다. 콘솔 및 GUI 인터페이스를 모두 지원하기 위해서 봄밭에는 두 개의 서브 컴파일 시스템을 설계하고 구현하였다. 우리는 봄밭의 GUI 지원의 성능을 측정하기 위해서 Java의 모든 GUI 튜토리얼 코드를 새싹으로 변환하여 봄밭에서 실행해 보았다. 그 결과, 81.42%의 코드를 정상적으로 실행할 수 있는 것을 확인하였다.

내장형 스트리밍 어플리케이션을 위한 매개변수 데이터플로우 모델 기반의 C++ 확장 (A C++ Extension based on a Parameterized Dataflow Model for Embedded Streaming Applications)

  • 최윤서
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제15권4호
    • /
    • pp.231-243
    • /
    • 2009
  • 내장형 신호처리 시스템의 상당 수는 스트리밍(streaming) 어플리케이션의 특성을 지니고 있다. 데이터플로우(dataflow) 계산모델을 이용하면 스트리밍 프로그래밍 패러다임을 손쉽게 표현할 수 있다. 데이터플로우 계산모델에서는 프로그램의 병렬성이 드러나므로 멀티코어를 위한 병렬 프로그램으로의 컴파일 과정 또한 용이해진다. 우리는 내장형 신호처리 시스템의 스트리밍 특성을 데이터플로우 계산모델에 기반하여 표현하기 위한 언어 확장으로서 SPEX(Signal Processing Extension)을 제안하고자 한다. SPEX는 기존의 명령형언어(imperative language)상에 스트리밍 프로그램밍 패러다임을 표현할 수 있게 한다. SPEX 언어 확장은 매개변수 데이터플로우 계산모델(parameterized dataflow)에 기반하고 있으며, 이를 위해 몇몇의 키워드를 기존의 C++ 언어 더하는 방식으로 이루어져 있다. 본 논문에서는 하나의 필터내에서의 스트리밍 계산 특성 및 필터 간의 스트리밍 데이터 전달을 표현하는 SPEX의 기능에 초점을 맞추고자 한다.

오픈소스 기반 통합개발도구 (Open Source based Integrated Development Environment)

  • 유정목;김진미;우영춘;배현섭;김명준
    • 한국IT서비스학회:학술대회논문집
    • /
    • 한국IT서비스학회 2005년도 춘계학술대회
    • /
    • pp.495-500
    • /
    • 2005
  • 현재 리눅스 기반 데스크탑 환경에서는 C, C++, JAVA와 같은 프로그램 언어로 작성된 프로그램을 개별적으로 처리할 수 있는 컴파일러들과 디버거들이 존재하지만, 소프트웨어 개발자들은 그래픽 환경 프로그래밍에 적합한 통합개발환경하에서 프로그램을 개발하기를 원한다. 이를 위해, 본 논문에서는 부여 리눅스 기반 데스크탑 환경을 위한 통합개발환경을 제안한다. 본 논문에서 제안하는 통합개발환경은 오픈 소스 기반 프로그램 도구인 Eclipse를 기반으로 통합개발환경에서 제공하는 컴파일, 디버깅과 같은 일반적인 기능들뿐만 아니라 XML 정보저장소(repository)를 활용하여 소스 코드 기반 소프트웨어 시험 자동화 기능을 통합하여 사용자가 체계적이고 계획적인 소프트웨어 테스트를 수행할 수 있도록 하며, 신뢰성 있는 소프트웨어 개발을 할 수 있도록 지원한다.

  • PDF

AOP를 위한 동적 결합 메커니즘 (Dynamic Weaving Mechanism for Aspect-Oriented Programming)

  • 김태웅;김경민;김태공
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 한국컴퓨터종합학술대회 논문집 Vol.33 No.1 (C)
    • /
    • pp.223-225
    • /
    • 2006
  • 영역지향 프로그래밍(Aspect-Oriented Programming)은 소프트웨어의 성능을 향상시키고 유지보수에 많은 이점을 가지는 새로운 프로그래밍 방법론이다. 하지만 영역지향 프로그래밍 방법으로 소프트웨어를 개발하기 위해서는 Aspect를 지원하는 새로운 영역지향 프로그래밍 언어를 사용하거나 레거시 시스템에 Aspect를 적용할 경우에 소스코드의 재 컴파일등과 같은 문제점을 가지고 있다. 이에 본 논문에서는 레거시 시스템에 Aspect를 동적으로 결합할 수 있는 동적결합 메커니즘을 제안한다. 이를 위하여 Aspect의 행위와 결합 정보를 가지는 Connector를 생성하고, 생성된 Connector는 코어클래스의 위임자로서 역할을 수행하게 되는 동적결합 가능하게 하는 메커니즘을 제안한다.

  • PDF

동적 링크를 활용한 특정 함수 호출 (Exploit the method according to the function call)

  • 옥근호;강영진;이훈재
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국정보통신학회 2016년도 춘계학술대회
    • /
    • pp.755-758
    • /
    • 2016
  • 본 논문에서는 바이너리 프로그램에서 함수가 호출될 시 바이너리 내에서 어떠한 방법으로 함수를 호출하는지 설명한다. 그리고 그 함수를 호출할시 필요한 요소들과 C언어 파일의 동적링크 컴파일 과정과 그 요소들을 이어주는 '링커'라는 개념을 설명하고, 정적링크와 동적링크를 차이점을 비교 분석한다. 또한 동적 링크를 활용하여 취약점을 공격하는 Return To Dynamic Linker에 대해 간략히 서술하며 테스트바이너리에 시험해본다.

  • PDF

Unity 엔진의 분석 및 유용성에 대한 검토 (A Study On Analysis and Availability of Unity 3D Engine)

  • 윤석현
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2014년도 제49차 동계학술대회논문집 22권1호
    • /
    • pp.323-326
    • /
    • 2014
  • 본 논문에서는 Unity 3D 엔진을 심층 분석하여 게임개발 교육현장에서의 유용성을 검토하였다. Unity 엔진을 이용하면 필드의 제작, 캐릭터 애니메이션 세팅, 스크립트 작성, Asset 관리, 레벨 디자인 등 많은 작업을 하나의 통합 환경에서 수행할 수 있다. 또한 컴파일 과정을 거치지 않아도 게임을 제작하는 도중 언제라도 실행해 볼 수 있기 때문에 개발에 걸리는 시간을 단축 할 수 있다. 본 연구의 초점은 게임 앱 설계 관련 프로젝트의 수행이나 교육용 게임 개발의 학습 모형을 제시하기 위한 과정이다.

  • PDF

Alpha : 자바 시각화 도구 (Alpha : Java Visualization Tool)

  • 김철민
    • 컴퓨터교육학회논문지
    • /
    • 제7권3호
    • /
    • pp.45-56
    • /
    • 2004
  • 웹 환경과의 연동, 병렬 프로그래밍, 객체지향 프로그래밍, 안전성(컴파일 시간 에러 검출, 예외 처리 기법)과 이식성, GUI 등을 지원함으로써, 프로그래밍 언어 자바(Java)의 활용도가 점점 증가하고 있다. 객체지향 프로그래밍 언어로서 자바는 클래스, 인스턴스, 정보은닉, 상속, 다형성 등 객체지향 개념들에 기반하고 있다. 그러나 자바 프로그램 수행시 이들과 관련된 제반 현상이 자바가상기계(Java Virtual Machine) 내부에 감추어지기 때문에, 자바 언어를 배우거나 활용하는 대부분의 사용자들이 큰 어려움을 겪는다. 이 문제에 대한 효과적 해결책으로서, 본 연구에서는 자바가상기계 내부의 현상을 객체지향 개념과 연계시켜 시각화해 주는 도구 Alpha를 개발하였고, 본 논문은 그 설계와 특징들을 기술하고 있다. Alpha는 실용성과 확장성을 높이기 위해 MVC(Model-View-Controller) 구조로 설계되었고, 이를 통해 자바가 상기계 내부의 현상(인스턴스 생성 및 소멸, 메쏘드 호출 및 복귀, 필드 접근, 인스턴스 간의 상호 참조관계 변화, 쓰레드의 수행 흐름 등)을 사용자의 수준이나 활용 목적에 맞게 다양한 방식으로 시각화시켜 준다.

  • PDF