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

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

객체지향 프로그램 정보 분석기 설계 및 구현 (Design and Implementation of an Information Analyzer for Object-Oriented Program)

  • 김운용;최영근
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.490-492
    • /
    • 1999
  • 본 논문에서는 객체지향 프로그램에 대한 프로그램 정보를 분석하여 이들간의 관계를 표현할 수 있는 방법을 제시한다. 현재까지 프로그램을 분석하고 표현하기 위한 그래프 표현으로 호출 그래프, 제어흐름 그래프 및 종속 그래프 등이 있으며 이를 이용하여 테스팅, 슬라이싱, 디버깅, 프로그램 이해, 병렬처리, 역공학과 같은 다양한 분야에 적용되고 있다. 본 논문에서는 객체지향 언어의 프로그램의 시각적 이해를 돕고, 분석에 필요한 정보를 표현하는 그래프들간의 관계성을 고려한 효율적인 분석기를 표현한다. 이를 위해 클래스, 상속관계, 호출관계, 제어흐름 및 데이터 종속관계를 고려하여 객체 지향언어 분석에 필요한 그래프 요소를 멤버함수레벨, 클래스 레벨, 모듈 클래스 레벨 단위로 추출하고 이들간의 정보를 저장소로 통합 구성한다. 이를 통해 기존의 특정목적을 위해 표현하는 그래프 표현 방식은 그래프간의 관계성과 분석정보의 독립성 그리고 재사용성의 특징을 가지는 통합 분석기로 구성될 수 있다. 이러한 특징은 프로그램의 이해와 정보의 관리효과를 증가시킬 수 있으며, 많은 소프트웨어 엔지니어링 도구와 기술들에 필요한 통합화된 정보를 제공하고 이용될 수 있을 것이다.

  • PDF

가상화를 이용하여 난독화된 바이너리의 제어 흐름 재건 (Control Flow Reconstruction from Virtualization-Obfuscated Binaries)

  • 황준형;한태숙
    • 정보과학회 논문지
    • /
    • 제42권1호
    • /
    • pp.44-53
    • /
    • 2015
  • 제어 흐름 정보는 프로그램이 실행되는 구조를 담고 있어 소프트웨어를 분석할 때 기준이 되고 소프트웨어를 서로 비교할 때에도 유용하게 쓰인다. 가상화를 이용한 난독화는 실제 기계의 명령을 구조가 숨겨진 가상 기계의 명령으로 바꾸어 프로그램의 제어 흐름 정보를 감춘다. 난독화가 적용된 바이너리에서는 가상 기계의 명령을 실행하는 인터프리터의 구조만 직접 드러난다. 이 논문에서는 가상화로 난독화된 바이너리를 실행해서 수행되는 명령들을 기록한 트레이스를 이용해 숨겨져 있는 프로그램의 본질적인 제어 흐름을 다시 만들어내는 방법을 제안한다. 트레이스를 기계 명령으로 이루어진 문자열로 보고 생성되는 트레이스들을 모두 받아들일 수 있는 오토마톤을 찾은 다음, 해당되는 제어 흐름 그래프를 만든다. 기계 명령의 수행은 오토마톤의 상태 전이에 대응하며, 이는 제어 흐름 그래프의 간선에 대응한다. 제안한 방법을 상용 가상화 도구로 난독화된 바이너리에 적용해 보았으며, 원본 바이너리와 유사한 제어 흐름 그래프가 생성되는 것을 확인하였다.

제어 흐름 그래프 기반 스마트 컨트랙트 취약성 탐지 연구 (Smart Contract Vulnerability Detection Study Based on Control Flow Graphs)

  • 정유영;최라연;임동혁
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2023년도 추계학술발표대회
    • /
    • pp.1247-1249
    • /
    • 2023
  • 스마트 컨트랙트는 블록체인 상에서 실행되는 프로그램으로 복잡한 비즈니스 논리를 처리할 수 있다. 그러나 블록체인의 무결성과 조건에 따라 실행되는 특성을 이용한 악의적 사용으로 인하여 블록체인 보안에서 시급한 문제가 되고있다. 따라서 스마트 컨트랙트 취약성 탐지문제는 최근 많은 연구가 이루어지고 있다. 그러나 기존 연구의 대부분이 단일 유형의 취약성 여부에 대한 탐지에만 초점이 맞춰져 있어 여러 유형의 취약성에 대한 동시 식별이 어렵다. 이 문제를 해결하고자 본 연구에서는 스마트 컨트랙트 소스코드 제어 흐름 그래프를 기반으로 그래프의 forward edge와 backward edge를 고려한 신경망으로 그래프 구조를 학습한 후 그래프 multi-label classification을 진행하여 다중 취약성을 탐지할 수 있는 모델을 제안한다.

DBFG를 이용한 동시성제어 구현 방법에 관한 연구 (The Study for Implementation method of Concurrency Control for DataBase Flow Graphs)

  • 남태희;위승민
    • 한국컴퓨터정보학회논문지
    • /
    • 제1권1호
    • /
    • pp.147-158
    • /
    • 1996
  • 본 논문에서는 작업 스케쥴러를 가진 통합된 실 시간 동시성제어 수행 과정을 분석하여 특수화된 데이타 흐름 그래프에 기초로한 동시성 제어구조를 제안하였다. 자료들은 토큰들의 이산 흐름에서 한 노드로부터 다른 노드까지의 연결 호 상에 나타내었다. 또 한 E-R모델에서 알려진 네트워크는 데이타 흐름 그래프로 나타내는 고정적인 문제점을 질의어 토큰을 이용하여 그래프상에 나타내게 하였다 그리고 모든 동시성 제어 기법들은 서로 다른 성능을 비교하여 실험으로 측정하였고, DBFG 스케줄링은 분산 환경에서 2PL보다 뛰어난 성능을 갖는다는 것을 비교 분석하였다.

  • PDF

제어 흐름 그래프의 명령어 유사성에 기반한 자바 버스마크 (A Java Birthmark Based on Similarity Between Instructions of Control Flow Graph)

  • 박희완;임현일;최석우;한태숙
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2009년도 춘계학술발표대회
    • /
    • pp.424-427
    • /
    • 2009
  • 소프트웨어 버스마크는 프로그램을 식별하는데 사용될 수 있는 프로그램의 고유한 특징을 말한다. 본 논문에서는 자바 메소드의 제어 흐름 그래프 유사도에 기반한 자바 버스마크를 제안한다. 제어 흐름 그래프 유사도는 노드의 유사도와 에지의 유사도로 나누어 계산하였다. 노드의 유사도는 인접 노드의 유사도를 함께 고려했으며, 에지 유사도는 이미 매칭된 노드들 사이의 거리를 측정하는 방법을 사용했다. 본 논문에서 제안한 버스마크를 평가하기 위해서 서로 다른 프로그램을 구별할 수 있는 신뢰도와 프로그램 최적화나 난독화에 견딜 수 있는 강인도에 대한 실험을 하였다. 실험 결과로부터 본 논문에서 제안하는 버스마크가 기존의 정적 버스마크보다 신뢰도가 높으면서도 난독화나 컴파일러 변경에 강인하다는 것을 확인하였다.

CTOC에서 루프 트리 구성하기 (Constructing A Loop Tree in CTOC)

  • 김기태;김제민;유원희
    • 정보처리학회논문지D
    • /
    • 제15D권2호
    • /
    • pp.197-206
    • /
    • 2008
  • 최근 많이 사용되고 있는 자바 바이트코드의 분석과 최적화를 효율적으로 수행하기 위해 CTOC 프레임워크가 구현되었다. CTOC에서는 바이트코드에 대해 분석과 최적화를 수행하기 위해 가장 먼저 eCFG를 생성하였다. 분석하기 어렵다는 바이트코드의 특성 때문에 기존의 바이트 코드를 제어 흐름 분석에 적합하게 확장하여 제어 흐름 그래프를 작성하였다. 이를 확장된 제어 흐름 그래프인 eCFG라 부른다. 또한 정적으로 분석하기 위해 eCFG를 SSA Form으로 변환 하였다. 변환 시 많은 프로그램에서 루프가 발견되었다. 이전 CTOC에서는 루프에 대한 처리를 수행하지 않은 상태에서 직접 SSA Form으로 변환을 수행하였다. 하지만 SSA Form으로 변환하기 이전에 루프에 대한 부분을 처리하면 더욱 효율적인 SSA Form을 생성할 수 있게 된다. 본 논문은 루프에 대한 처리를 효율적으로 하기 위해 eCFG를 SSA Form으로 변환하는 과정 이전에 루프를 발견하고 이와 관련된 루프 트리를 생성하는 과정을 보인다.

CTOC에서 자바 바이트코드를 이용한 제어 흐름 분석에 관한 연구 (A Study on Control Flow Analysis Using Java Bytecodes in CTOC)

  • 유원희;김기태
    • 한국콘텐츠학회논문지
    • /
    • 제6권1호
    • /
    • pp.160-169
    • /
    • 2006
  • 본 논문은 바이트코드(bytecode) 수준에서 프로그램 분석과 최적화를 위한 구조를 서술한다. 바이트코드 수준에서 분석을 수행하기 위해서는 우선 제어 흐름 그래프(CFG : Control Flow Graph)를 생성해야 한다. 바이트코드의 특성 때문에 기존의 제어 흐름 분석 기술을 바이트코드에 적합하게 확장해야 한다. CFG를 작성하기 위해 기본 블록을 생성하고 기본 블록간의 관계를 이용하여 최적화 과정에서 사용되는 각종 정보를 생성한다. 생성된 CFG는 자바 바이트코드의 이해와 유지보수를 위해 테스트되고, 데이터 흐름 분석과 의존성 분석과 같은 다른 분석을 위해서 사용된다. 본 논문에서는 바이트코드 수준의 제어 흐름 분석을 위해 CTOC(Classes To Optimized Classes)의 CTOC-BR(CTOC-Bytecode tRanslator)을 구현한다. CTOC는 자바 바이트코드의 최적화와 분석을 위해 현재 개발 중인 프레임 워크의 이름이고, CTOC에서 CTOC-BR은 스택 기반인 바이트코드의 최적화와 분석을 쉽게 하기 위해 트리 형태로 변환을 수행하는 도구이다.

  • PDF

이진 코드의 정적 제어 흐름 분석 (Static Control Flow Analysis of Binary Codes)

  • 김기태;김제민;유원희
    • 한국콘텐츠학회논문지
    • /
    • 제10권5호
    • /
    • pp.70-79
    • /
    • 2010
  • 바이너리 코드 수준에서 정적인 프로그램 분석을 수행한다. 소스 코드가 아닌 바이너리 코드 수준에서 분석을 수행하는 이유는 일반적으로 로컬 컴퓨터에 설치하는 실행 파일은 소스 코드 없이 단지 바이너리로 된 실행 파일만 주어지는 경우가 대부분이기 때문이다. 또한 정적으로 분석을 수행하려는 이유는 정적인 제어 흐름 분석을 통해 프로그램이 수행 시 어떤 동작을 수행하게 될지를 수행 전에 파악하기 위해서이다. 본 논문에서는 바이너리 실행 파일로부터 함수간의 실행 순서 및 제어 흐름 등의 정보를 표현할 수 있는 실행 흐름 그래프를 작성하여 사용자가 바이너리 파일의 실행 흐름과 위험한 함수의 호출 여부를 동시에 파악할 수 있도록 하며, 그래프를 통해 바이너리 파일의 분석을 용이하게 한다. 또한 실행 흐름에 대한 자동 탐색 방법을 제공하여 수행될 프로그램의 안전성을 보장하고, 수행 전에 외부에서 다운받아 설치할 프로그램이 안전한지를 판단할 수 있도록 한다.

신호전이그래프에 기반한 비동기식 논리합성의 고유한 특성을 고려한 신호전이그래프의 자동생성 (Automatic STG Derivation with Consideration of Special Properties of STG-Based Asynchronous Logic Synthesis)

  • 김의석;이정근;이동익
    • 정보처리학회논문지A
    • /
    • 제9A권3호
    • /
    • pp.351-362
    • /
    • 2002
  • 신호전이그래프는 비동기식 유한상태기와 더불어 신호수준에서 비동기식 제어회로의 사양을 기술하기 위하여 사용되는 가장 대표적인 사양 기술언어이다. 그러나 신호전이그래프는 설계자에게 친숙한 사양기술언어가 아니며, 결과적으로 비동기식 시스템의 설계자가 목적시스템의 비동기식 제어부를 구성하는 수∼수십개의 비동기식 제어회로에 대한 신호전이그래프를 일일이 고안하고 기술하는 것은 매우 힘들고 시간소모적인 일이다. 본 논문에서는 최근에 제안된 프로세스 중심방식을 이용하여 신호전이그래프를 자동으로 생성하는 방법을 제안하고자 한다. 특히, 제안된 방법은 신호전이그래프의 자동생성 과정에서 신호전이그래프에 기반한 비동기식 논리합성의 고유한 특성들을 주의 깊게 고려하여 준다. 결과적으로 자동 생성된 신호전이그래프로부터 합성된 비동기식 제어회로는 면적, 합성시간, 성능, 구현성의 측면에서 매우 우수하다.

다자간 화상회의 시스템의 설계 및 구현 (Design and Implementation for Multi-User Interface Video Conference System)

  • 주헌식;이상엽
    • 한국컴퓨터정보학회논문지
    • /
    • 제13권1호
    • /
    • pp.153-160
    • /
    • 2008
  • 본 논문에서는 가중치 이분 그래프 정합을 이용하여 데이터 최대 흐름을 나타내었다. 가중치 이분 그래프 정합은 전송 데이터 객체를 에지들로 설정하고 서버와 클라이언트에 데이터의 최대 흐름 정합을 유도한다. 제안한 가중치 이분 그래프 정합을 이용하여 다자간 화상회의 시스템을 구현하였다. 서버에 최대한 데이터를 송신하고 클라이언트에서 최대한 수신함으로서 동영상 프레임의 끊김 현상과 병목현상이 개선되고 이미지가 깨지지 않는 우수한 성능을 나타내었다. 실험결과 기존의 흐름 제어 방법보다 악 2배의 성능을 나타내었다.

  • PDF