• 제목/요약/키워드: 제어흐름 그래프

검색결과 60건 처리시간 0.022초

소스코드와 실행코드의 상관관계 분석을 통한 최악실행시간 측정 방법 (Measuring Method of Worst-case Execution Time by Analyzing Relation between Source Code and Executable Code)

  • 서용진;김현수
    • 인터넷정보학회논문지
    • /
    • 제17권4호
    • /
    • pp.51-60
    • /
    • 2016
  • 내장 소프트웨어는 실시간성 및 실행 환경으로부터의 독립성을 요구사항으로 갖는다. 실시간성 요구사항은 탑재된 태스크의 최악 실행 시간으로부터 영향을 받는다. 따라서 실시간성을 보장하기 위해서는 정적 분석 기반의 최악 실행 시간 분석 방법을 사용하여 프로그램의 최악 실행 시간을 파악하여야 한다. 그러나 기존의 최악 실행 시간 분석은 실행 환경으로부터 독립성을 고려하지 않는다. 이에 우리는 실행 환경으로부터 독립성을 제공하기 위해 소스코드로부터 실행 시간을 측정하는 방법을 제시한다. 이를 위해 실행 코드가 아닌 소스코드로부터 생성된 제어 흐름 그래프를 통해 실행 시간을 측정한다. 또한 소스코드로부터 생성된 제어 흐름 그래프에는 실행 시간 정보가 존재하지 않기 때문에, 이를 제공하기 위해 소스코드의 문장과 실행코드의 명령어와의 관계를 분석한다. 결과적으로 실행 시간 측정이 가능한 제어 흐름 그래프를 생성할 수 있다. 이를 통해 프로세서로부터 종속적인 부분을 매개변수화할 수 있기 때문에, 최악 실행 시간 분석 도구의 유연성을 향상시킬 수 있다.

객체지향 프로그램 표현을 위한 객체지향 프로그램 종속성 그래프 (A Object-oriented Program Dependency Graph for Object-oriented Program Representation)

  • 류희열;박중양;박재흥
    • 한국정보처리학회논문지
    • /
    • 제5권10호
    • /
    • pp.2567-2574
    • /
    • 1998
  • 소프트웨어 공학 기법과 툴들은 제어 흐름 그래프, 프로그램 종속성 그래프, 시스템 종속성 그래프와 같은 프로그램의 그래픽한 표현에 의존한다. 본 논문은 기존의 객체지향 프로그램의 표현방법의 복잡하고 중복된 표현의 문제점을 개선하여 새로운 객체 지향 프로그램 종속성 그래프를 제안한다. 객체지향 프로그램 종속성 그래프는 클래스 종속성 그래프와 클래스 계층구조 그래프, 그리고 프로시듀어 종속성 그래프로 구성된다. 제안된 객체지향 프로그램 종속성 그래프는 기존의 방법에 비해 그 표현이 간결할 뿐만 아니라, 쉽게 확장이 가능하여 프로그램이 점진적으로 개발되는 경우에도 사용할 수 있다. 뿐만 아니라 프로그램에 대한 동적 정보를 제공할수 있도록 확장될 수 있다.

  • PDF

이진 코드의 정적 실행 흐름 추적을 위한 프레임워크 설계 및 구현 (Design and Implementation of Framework for Static Execution Flow Trace of Binary Codes)

  • 백영태;김기태;전상표
    • 한국컴퓨터정보학회논문지
    • /
    • 제16권6호
    • /
    • pp.51-59
    • /
    • 2011
  • 국내에는 바이너리 코드에 대한 분석 기술이 많이 부족한 상태이다. 일반적으로 컴퓨터에 설치되는 실행 파일은 소스 코드 없이 단지 바이너리로 된 실행 파일만 주어지는 경우가 대부분이다. 따라서 위험하거나 알 수 없는 동작이 수행되는 경우가 발생할 수 있다. 따라서 이 논문에서는 바이너리 수준에서 정적으로 프로그램 분석을 수행할 수 있는 프레임워크를 설계 및 구현한다. 이 논문에서는 바이너리 실행 파일로부터 실행 순서 및 제어 흐름 등의 정보를 표현할 수 있는 제어 흐름 그래프를 작성하여 실행 흐름과 위험한 함수의 호출 여부를 동시에 파악하고 개발된 프레임워크를 통해 바이너리 파일에 대한 분석을 용이하게 한다.

바이트코드를 위한 정적 단일 배정문 기반의 정적 타입 추론 (Static Type Inference Based on Static Single Assignment for Bytecode)

  • 김지민;김기태;김제민;유원희
    • 한국컴퓨터정보학회논문지
    • /
    • 제11권4호
    • /
    • pp.87-96
    • /
    • 2006
  • 바이트코드는 많은 장점을 가지고 있으나 수행 속도가 느리고 프로그램의 분석과 최적화에 알맞은 표현은 아니다. 분석과 최적화를 위하여 바이트코드를 정적 단일 배정문(SSA Form)으로 변환이 수행되어야 한다. 그러나 바이트코드에서 SSA Form으로 변환 시 어떤 변수는 타입 정보를 상실한다. 이를 해결하기 위하여 본 논문에서는 바이트코드에 대한 확장된 제어 흐름 그래프를 생성한다. 또한 정적으로 분석하기 위해 제어 흐름 그래프를 SSA Form으로 변환한다. SSA Form으로 변환을 위하여 지배자. 직접 지배자. 지배자 경계. ${\phi}$-함수, 재명명 등 많은 정보에 대한 계산을 수행한다. 생성된 SSA Form에 알맞은 타입을 선언하기 위해서 다음과 같은 동작들을 수행한다. 먼저 클래스의 호출그래프와 상속 그래프를 생성한다. 그리고 각 노드에 대한 정보를 수집한다. 수집된 정보를 기반으로 동등한 타입의 노드를 찾고 강 결합 요소로 설정한 후 각 노드에 타입을 효율적으로 설정하는 방법을 제안하였다.

  • PDF

자바 바이트코드 검증을 위해 기본경로를 통한 BIRS 코드로부터 검증조건 생성 (Generating Verification Conditions from BIRS Code using Basic Paths for Java Bytecode Verification)

  • 김제민;김선태;박준석;유원희
    • 한국컴퓨터정보학회논문지
    • /
    • 제17권8호
    • /
    • pp.61-69
    • /
    • 2012
  • BIRS는 자바 프로그램의 검증을 위해 사용되는 중간표현 언어이다. 바이트코드 형태의 자바 프로그램은 검증을 위해 BIRS 코드로 변환된다. 변환된 BIRS 형태의 프로그램을 검증하기 위해서는 BIRS 형태의 프로그램에 대한 검증조건을 생성해야 한다. 본 논문에서는 BIRS 코드에 대한 검증조건을 생성하는 방법을 제시한다. 검증조건 생성은 BIRS 코드에 대한 제어흐름그래프 구성, 제어흐름그래프에 대한 깊이우선 탐색을 통한 기본경로 추출, 기본경로에 대한 최약 전조건(weakest precondition) 계산법의 과정을 통해 이루어진다.

Control Dominated ASIC 설계를 위한 최소 제한조건 스케쥴링 알고리즘 (A Minimal Constrained Scheduling Algorithm for Control Dominated ASIC Design)

  • 인치호
    • 한국정보처리학회논문지
    • /
    • 제6권6호
    • /
    • pp.1646-1655
    • /
    • 1999
  • 본 논문에서는 최적의 control dominated ASIC 설계를 위한 VHDL 중간 표현 그래프 CDDG(Control Dominated Data Graph)와 최소 제한조건 스케쥴링 알고리즘을 제안한다. CDDG는 VHDL 동작 기술의 조건 분기 및 반복구조 등을 효과적으로 나타낼 수 있는 제어 흐름 그래프로서 하드웨어 설계의 특성을 지원하기 위한 데이터 종속 관계, 하드웨어 자원 제한 및 시간 제한 조건이 표현된다. 제안된 스케쥴링 알고리즘은 CDDG의 부그래프로 표현된 제한조건에 대해, 부그래프들의 최소화하는 과정과 회로 동작의 허용 시간을 검사하는 최대 시간 제한의 검색 및 각 연산 노드들의 동작시간을 결정하는 과정으로 수행된다. 벤치마크 데이터를 사용하여 실험한 결과, 제안된 알고리즘이 기존의 알고리즘에 비해 우수함을 확인하였다.

  • PDF

점진적 실행을 통한 소프트웨어의 구조 그래프 생성 (Constructing Software Structure Graph through Progressive Execution)

  • 이혜련;신승훈;최경희;정기현;박승규
    • 한국컴퓨터정보학회논문지
    • /
    • 제18권7호
    • /
    • pp.111-123
    • /
    • 2013
  • 소프트웨어의 취약성을 검증하기 위하여 소프트웨어의 구조를 유추하여 유추된 구조를 활용하여 테스트하는 방법이 주목받고 있다. 이와 같은 방법을 사용하기 위해서 효과적인 소프트웨어의 구조 유추 방법이 요구된다. 많이 사용되는 DFG(Data Flow Graph), CFG(Control Flow Graph) 이나 CFA(Control Flow Automata)와 같은 그래프나 트리 방식은 소프트웨어 모델을 구조적으로 표현하지 못하는 단점을 가진다. 본 논문에서는 이러한 단점을 극복할 수 있는 방법을 제시한다. 제시된 방법은 바이너리 코드에 다양한 입력데이터 들을 부여하여 입력데이터별 CFG를 생성하고, 생성된 CFG들이 구조적으로 표현될 수 있도록 계층적 제어 흐름 그래프(Hierarchical Control Flow Graph, HCFG)를 작성한다. 또한 제안하는 HCFG을 생성하는데 요구되는 그래프의 구성요소와 점진적 그래프 생성 알고리듬도 제시한다. 제안한 방법론을 공개된 SMTP(Simple Mail Transfer Protocol) 서버 프로그램에 적용시켜 소프트웨어의 모델을 작성하는 실험을 수행하고, 생성된 모델과 실제 소프트웨어 구조를 비교 분석한다.

이산제어시스템 설계를 위한 확장된 마크흐름선도의 동작해석 (The Analysis of an Extended Mark Flow Graph's Operation for Design of the Discrete-event Control System)

  • 여정모
    • 한국정보처리학회논문지
    • /
    • 제5권7호
    • /
    • pp.1896-1907
    • /
    • 1998
  • 확장된 마크흐름선도(EMFG: Extednded Mark Flow Graph)는 기존의 MFG를 개선한 그래프로서, 회로변수식에 의해 실제회로로 쉽게 구현가능하므로 이산제어시스템의 모델링과 설계 및 구현의 강력한 도구로 사용될 수 있다. 본 논문은 EMFG의 트랜지션들이 점화하는 과정 및 트랜지션들이 점화완료하였을 때 각 박스들의 마크수 변화를 부울함수식과 벡터를 사용하여 표현하였다. 또한 시스템의 상태변화를 쉽게 판단할 수 있게 하는 EMFG의 동작알고리듬을 제안하였으며, 제안된 알고리듬은 3-비트 증가계수기를 설계한 EMFG와 시간트랜지션이 포함된 가상의 EMFG에서 잘 수행되었다. EMFG의 동작이 부울함수로 해석가능해짐으로 인해 시스템의 분석 및 설계가 용이하며 컴퓨터를 이용한 자동화된 시스템의 분석과 설계가 가능하다.

  • PDF

프로그램 분석을 위한 정적분석 기반 역추적 제어흐름그래프 생성 방안 모델 (Static Analysis Based on Backward Control Flow Graph Generation Method Model for Program Analysis)

  • 박성현;김연수;노봉남
    • 정보보호학회논문지
    • /
    • 제29권5호
    • /
    • pp.1039-1048
    • /
    • 2019
  • 프로그램 자동 분석 방법 중 하나인 기호 실행은 지난 몇 해 동안 기술적으로 크게 향상 되었다. 그러나 여전히 기호실행 그 자체만을 이용하여 프로그램을 분석하는 것은 실용적이지 않다. 가장 큰 이유로는 프로그램 분석 중에 발생하는 경로 폭발 문제로 인한 메모리 부족으로, 기호 실행을 이용해 프로그램의 모든 경로의 해를 구할 수 없다. 따라서 분석가는 모든 경로의 해를 구하는 것이 아닌 취약성을 갖는 지점으로 기호 실행 탐색 경로를 구성하는 것이 실용적이다. 본 논문에서는 기호 실행 과정에서 사용될 수 있는 정적분석 기반 바이너리 역방향 제어 흐름 그래프 생성 방법 기술을 제안한다. 역방향 제어 흐름 그래프 생성을 통해 분석가는 바이너리 내의 잠재적인 취약지점을 선정할 수 있고, 해당 지점으로부터 생성된 역추적 경로는 향후 기호 실행을 위해 효율적으로 사용될 수 있다. 우리는 리눅스 바이너리(x86)를 대상으로 실험을 진행하였고, 실제로 잠재적인 취약점 선정 및 역추적 경로 생성이 바이너리의 다양한 상황에서 가능함을 보였다.

함수 수준 특징정보 기반의 오픈소스 소프트웨어 모듈 탐지 (Detection of an Open-Source Software Module based on Function-level Features)

  • 김동진;조성제
    • 정보과학회 논문지
    • /
    • 제42권6호
    • /
    • pp.713-722
    • /
    • 2015
  • OSS(Open-Source Software)의 사용 증가와 함께 라이선스 위반, 취약한 소스코드 재사용 등에 의한 분쟁 및 피해가 빈번해지고 있다. 이에, 실행파일(바이너리) 수준에서 프로그램에 OSS 모듈이 포함되었는지 여부를 확인하는 기술이 필요해졌다. 본 논문에서는 바이너리에서 함수 수준의 특징정보를 사용하여 OSS 모듈을 탐지하는 기법을 제안한다. 기존 소프트웨어 특징정보(버스마크) 기반 도용 탐지 기법들은 프로그램 전체 간 유사성을 비교하기 때문에 프로그램의 일부로 포함된 OSS 모듈들을 탐지하는데 부적합하다. 본 논문에서는, 함수 수준의 실행명령어, 제어 흐름 그래프(Control Flow Graph)와 개선된 함수 수준 구조적 특징정보를 추출하고 유사성을 비교하여 OSS 모듈의 임의 사용 여부를 탐지한다. 제안기법의 효율성과 각 특징정보들의 OSS 탐지 성능을 평가하기 위해, 특징정보량, OSS 모듈 탐지 시간 및 정확도, 컴파일러 최적화에 대한 강인성을 실험하였다.