• 제목/요약/키워드: Function call graph

검색결과 9건 처리시간 0.043초

동적 분석을 이용한 난독화 된 실행 프로그램의 함수 호출 그래프 생성 연구 (The Generation of the Function Calls Graph of an Obfuscated Execution Program Using Dynamic)

  • 천세범;김대엽
    • 전기전자학회논문지
    • /
    • 제27권1호
    • /
    • pp.93-102
    • /
    • 2023
  • 악성코드 분석을 위한 기술 중 하나로 실행 프로그램의 함수 호출 관계를 시퀀스 또는 그래프 작성한 후, 그 결과를 분석하는 기술이 제안되었다. 이러한 기술들은 일반적으로 실행 프로그램 파일의 정적 분석을 통해 함수 호출 코드를 분석하고, 함수 호출 관계를 시퀀스 또는 그래프로 정리한다. 그러나 난독화 된 실행 프로그램의 경우, 실행 프로그램 파일의 구성이 표준구성과 다르기 때문에 정적분석 만으로는 함수 호출관계를 명확히 분석하기 어렵다. 본 논문에서는 난독화 된 실행 프로그램의 함수 호출관계를 분석하기 위한 동적 분석 방법을 제안하고, 제안된 기술을 이용하여 함수 호출관계를 그래프로 구성하는 방법을 제안한다.

AIT: A method for operating system kernel function call graph generation with a virtualization technique

  • Jiao, Longlong;Luo, Senlin;Liu, Wangtong;Pan, Limin
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • 제14권5호
    • /
    • pp.2084-2100
    • /
    • 2020
  • Operating system (OS) kernel function call graphs have been widely used in OS analysis and defense. However, most existing methods and tools for generating function call graphs are designed for application programs, and cannot be used for generating OS kernel function call graphs. This paper proposes a virtualization-based call graph generation method called Acquire in Trap (AIT). When target kernel functions are called, AIT dynamically initiates a system trap with the help of a virtualization technique. It then analyzes and records the calling relationships for trap handling by traversing the kernel stacks and the code space. Our experimental results show that the proposed method is feasible for both Linux and Windows OSs, including 32 and 64-bit versions, with high recall and precision rates. AIT is independent of the source code, compiler and OS kernel architecture, and is a universal method for generating OS kernel function call graphs.

PE 파일 분석을 위한 함수 호출 그래프 생성 연구 (Generating Call Graph for PE file)

  • 김대엽
    • 전기전자학회논문지
    • /
    • 제25권3호
    • /
    • pp.451-461
    • /
    • 2021
  • 다양한 스마트 기기의 보급으로 인하여 악성코드로 인한 피해를 더욱 심각해지면서 머신러닝 기술을 활용한 악성코드 탐지 기술이 주목 받고 있다. 그러나 코드의 단편적인 특성만을 기반으로 머시러닝의 학습 데이터를 구성할 경우, 이를 회피하는 변종 및 신종 악성코드는 여전히 제작하기 쉽다. 이와 같은 문제를 해결하기 위한 방법으로 악성코드의 함수호출 관계를 학습 데이터로 사용하는 연구가 주목받고 있다. 특히, GNN을 활용하여 그래프의 유사도를 측정함으로써 보다 향상된 악성코드 탐지가 가능할 것으로 예상된다. 본 논문에서는 GNN을 악성코드 탐지에 활용하기 위해 바이너리 코드로부터 함수 호출 그래프를 생성하는 효율적인 방안을 제안한다.

A GENERALIZED SINGULAR FUNCTION

  • Baek, In-Soo
    • 충청수학회지
    • /
    • 제23권4호
    • /
    • pp.657-661
    • /
    • 2010
  • We study a singular function which we call a generalized cylinder convex(concave) function induced from different generalized dyadic expansion systems on the unit interval. We show that the generalized cylinder convex(concave)function is a singular function and the length of its graph is 2. Using a local dimension set in the unit interval, we give some characterization of the distribution set using its derivative, which leads to that this singular function is nowhere differentiable in the sense of topological magnitude.

TOTAL MEAN CORDIAL LABELING OF SOME CYCLE RELATED GRAPHS

  • Ponraj, R.;Narayanan, S. Sathish
    • Journal of applied mathematics & informatics
    • /
    • 제33권1_2호
    • /
    • pp.101-110
    • /
    • 2015
  • A Total Mean Cordial labeling of a graph G = (V, E) is a function $f:V(G){\rightarrow}\{0,1,2\}$ such that $f(xy)={\Large\lceil}\frac{f(x)+f(y)}{2}{\Large\rceil}$ where $x,y{\in}V(G)$, $xy{\in}E(G)$, and the total number of 0, 1 and 2 are balanced. That is ${\mid}ev_f(i)-ev_f(j){\mid}{\leq}1$, $i,j{\in}\{0,1,2\}$ where $ev_f(x)$ denotes the total number of vertices and edges labeled with x (x = 0, 1, 2). If there is a total mean cordial labeling on a graph G, then we will call G is Total Mean Cordial. Here, We investigate the Total Mean Cordial labeling behaviour of prism, gear, helms.

바이트코드를 위한 정적 단일 배정문 기반의 정적 타입 추론 (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

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

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

라이브러리 퍼징의 커버리지 향상 방법 연구 (A Study of Coverage Improvement for Library Fuzzing)

  • 김서영;조민기;김종신;권태경
    • 정보보호학회논문지
    • /
    • 제30권6호
    • /
    • pp.1079-1085
    • /
    • 2020
  • 라이브러리 구현의 결함을 발견하기 위해 동적 분석 방법인 퍼징(fuzzing)이 사용되고 있다. 라이브러리 대상 퍼징은 구현된 함수만 테스트를 할 수 있으므로 더 높은 코드 커버리지를 달성하기 위해서는 구현되지 않은 함수들을 추가로 구현해주어야 한다. 하지만 라이브러리 함수들의 호출 관계를 고려하지 않고 함수를 추가하면 이미 테스트를 수행한 함수가 추가되는 문제가 발생할 수 있다. 본 논문에서는 라이브러리 퍼징의 코드 커버리지 성능을 향상시키기 위한 개선 방법을 제안한다. 먼저, 라이브러리 퍼징의 대상 함수를 효율적으로 추가하기 위해 라이브러리의 함수 호출 그래프 분석하고 구현되지 않은 라이브러리 함수를 추가 구현한다. 그리고 라이브러리의 해결하기 어려운 제약조건을 가진 분기를 탐색하는 방법으로 하이브리드 퍼징을 적용한다. OpenSSL, mbedTLS, Crypto++을 대상으로 실험한 결과, 제안한 방법이 코드 커버리지를 증가에 효과적인 것을 확인하였다.

PLC용 uC/OS 운영체제의 보안성 강화를 위한 실행코드 새니타이저 (Executable Code Sanitizer to Strengthen Security of uC/OS Operating System for PLC)

  • 최광준;유근하;조성제
    • 정보보호학회논문지
    • /
    • 제29권2호
    • /
    • pp.365-375
    • /
    • 2019
  • PLC(Programmable Logic Controller)는 안전 지향 제어시스템(safety-critical control system)을 위한 실시간 임베디드 제어 애플리케이션들을 지원하는 고신뢰성의 산업용 디지털 컴퓨터이다. PLC의 실시간 제약조건을 만족시키기 위하여 uC/OS 등의 실시간 운영체제들이 구동되고 있다. PLC들이 산업제어 시스템 등에 널리 보급되고 인터넷에 연결됨에 따라, PLC 시스템을 대상으로 한 사이버 공격들이 증대되고 있다. 본 논문에서는, 통합 개발 환경(IDE)에서 개발된 프로그램이 PLC로 다운로드 되기 전에 실행 코드를 분석하여 취약성을 완화시켜 주는 "실행코드 새니타이저(sanitizer)"를 제안한다. 제안기법은, PLC 프로그램 개발 중에 포함되는 취약한 함수들과 잘못된 메모리 참조를 탐지한다. 이를 위해 취약한 함수 DB 및 이상 포인터 연산과 관련된 코드 패턴들의 DB를 관리한다. 이들 DB를 기반으로, 대상 실행 코드 상에 취약 함수들의 포함 여부 및 포인터 변수의 이상 사용 패턴을 탐지 제거한다. 제안 기법을 구현하고 실험을 통해 그 유효성을 검증하였다.