• 제목/요약/키워드: 코드 슬라이싱

검색결과 8건 처리시간 0.018초

역난독화를 위한 바이너리 프로그램 슬라이싱 (Program Slicing for Binary code Deobfuscation)

  • 목성균;전현구;조은선
    • 정보보호학회논문지
    • /
    • 제27권1호
    • /
    • pp.59-66
    • /
    • 2017
  • 해커들이 자신들이 만든 악성코드의 분석을 어렵게 하기 위하여 코드 난독화 기법을 적용하고 있다. 최근의 난독화 기법은 가상화 난독화 기법을 통해 원래의 코드를 바이트코드로 만들고 가상머신이 이를 실행시키는 방식으로, 실행시키기 전에는 원래의 코드를 알 수가 없다. 프로그램 슬라이싱은 프로그램 분석기술 중 하나로 슬라이싱 기준을 정하고 그와 관련된 문장을 추출해내는 기술이다. 본 논문에서는 슬라이싱 기법을 사용하여 난독화를 해제하는 방법을 제시한다.

CodeAnt : 소프트웨어 검증 효율 향상을 위한 코드 슬라이싱 도구 (CodeAnt : Code Slicing Tool for Effective Software Verification)

  • 박민규;김동우;최윤자
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제4권1호
    • /
    • pp.1-8
    • /
    • 2015
  • 고안전성이 요구되는 소프트웨어의 경우 극히 낮은 확률로 발생하는 오류로 인하여 전체시스템의 안전에 치명적인 상황을 야기할 수 있으므로, 철저한 안전성 검증이 요구된다. 하지만 모든 가능한 실행경로를 고려해야 하는 안전성 검증은 고비용이 발생한다는 단점이 있다. 본 논문에서는 안전성 검증의 고비용 문제를 개선하기 위해 안전성 특질을 기준으로 코드 슬라이싱 기법[1]을 구현한 도구를 개발하였다. 개발한 도구를 OSEK/VDX[2] 기반의 개방형 차량 전장용 운영체제인 Trampoline[3] 소스코드에 적용한 결과 분석 대상의 코드의 크기를 평균 71% 줄일 수 있었고, 실제 검증을 수행했을 시에도 도구 적용 이전보다 검증 비용을 절감할 수 있었음을 보였다.

Concolic Testing 기반 프로그램 상호작용 슬라이싱 기법 설계 (Design of interactive slicing method based on Concolic Testing)

  • 서강복;김덕엽;이우진
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2019년도 춘계학술발표대회
    • /
    • pp.350-352
    • /
    • 2019
  • 프로그램 슬라이싱은 처음 발표된 이후로 지금까지 다양하게 연구되어 테스팅, 디버깅, 개발, 유지 보수 등 다양한 분야에서 사용되어 왔다. 프로그램 슬라이싱을 수행하기 위해서는 기준이 되는 변수에 대해 소스코드 내에 존재하는 모든 라인들에 대해 의존성을 계산하여 프로그램 슬라이싱을 수행하게 된다. 하지만 지정된 변수에 대해서만 의존성 계산을 수행하기 때문에 프로그램을 실행 가능하게 하는 정보들에 대해서는 누락될 수 있고 이 경우의 프로그램 실행은 보장되지 않을 수 있다. 이러한 문제를 개선하기 위해 본 논문에서는 concolic testing 기법을 이용하여 기준이 되는 변수에 대한 의존성 있는 구문들을 추출하고 프로그램 실행에 요구되는 구문들을 같이 추출해낼 수 있는 프로그램 상호작용 슬라이싱 기법을 제안한다.

확산코드 슬라이싱 기술을 이용한 AT-DMB 시스템에서의 송신기 검출 기법 (Transmitter Detection Technique with Spreading Code Slicing Scheme for AT-DMB System)

  • 김윤현;배정남;임종수;조경룡;차재상;김진영
    • 한국인터넷방송통신학회논문지
    • /
    • 제9권6호
    • /
    • pp.9-14
    • /
    • 2009
  • 본 논문에서는 단일 주파수 망을 이용하는 AT-DMB 시스템에서의 효율적인 송신기 검출을 위한 확산코드 슬라이싱 기술을 제안하였다. 각 송신 단말기 신호에 상관특성이 좋은 고유의 확산코드를 AT-DMB 프레임의 Null 심벌의 일부에 나누어 할당하고, 수신기에서는 송신 단말기의 고유 코드를 이용하여 다른 단말기의 신호 간섭 상황 하에서도 원하는 신호를 검출하여 수신할 수 있게 한다. 제안된 기법에 의해 얻어진 송신기 정보는 주파수를 효율적으로 사용하기 위한 기술인 SFN 구현을 위해 필요하다. 본 논문의 결과는 무선 디지털 방송 통신 시스템 구현에 적용될 수 있다.

  • PDF

클래스 계층구조 슬라이싱을 이용한 C++프로그램 최적화에 관한 연구 (A Study on the Optimization of C++ Program Using the Class Hierarchies Slicing)

  • 김운용;정계동;최영근
    • 한국정보처리학회논문지
    • /
    • 제6권6호
    • /
    • pp.1542-1555
    • /
    • 1999
  • 본 논문에서는 C++ 클래스 계층구조(상속관계를 가진 클래스들의 모음)를 대상으로 객체 지향 언어의 특성인 단일/다중 상속, 정적/동적 바인딩, 함수중복/함수재정의(Overloading & Overriding), 순수가상/가상함수, 생성자 문제를 고려하여 멤버데이터와 멤버함수를 최적화 할 수 있는 알고리즘을 제안한다. 프로그램 계층 구조와 그 계층 구조를 사용하는 프로그램은 일반적으로 클래스 계층 구조의 부분적인 기능만을 사용하기 때문에 많은 구성요소를 포함하는 클래스들에서 불필요한 기능을 제거하는 것이 필요하게 되었다. 지금까지 연구되어 왔던 고전적인 슬라이싱이나 다른 변형된 슬라이싱은 출력데이터를 선택하고 그와 관련된 프로그램 문장을 포함하는데 초점을 맞추고 있다. 그 대상은 대부분 구조적 프로그램 언어로 이루어졌으며 이러한 슬라이싱은 주로 오류 검출, 소프트웨어의 유지보수, 유연한 테스팅을 위한 주제로 연구가 되어 왔다. 본 논문에서는 그 대상 범위를 객체 지향 언어로 확장시키고, 분석단계에서 테이블 구성형태를 링크형태로 구성함으로써 보다 정보관리의 효율을 높일 수 있고, 이 테이블을 이용한 최적화 시스템 구현을 통해 필요한 알고리즘을 제시하였다. 이러한 과정을 통해 불필요한 멤버데이터, 멤버함수, 클래스 상속관계를 제거함으로 프로그램 코드의 간소화, 시스템 성능의 향상을 가져올 수 있다.

  • PDF

인공신경망을 활용한 소프트웨어 결함 위치 추정 기법 (Software Fault Localization using Artificial Neural Network)

  • 조준혁;이지현;자프르 아만
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2018년도 추계학술발표대회
    • /
    • pp.550-553
    • /
    • 2018
  • 소프트웨어 시험 후 발견된 결함을 제거하기 위해서는 먼저 해당 결함의 위치를 정확히 찾아야 한다. 결함의 위치를 찾는 작업은 많은 양의 소스코드를 검토해야 하기 때문에 많은 노력을 요구한다. 해당 노력을 줄이기 위해 슬라이싱 기법, 스펙트텀 기법, 모델 기반 기법 등 많은 기법들이 연구되었다. 하지만 이들 연구들은 결함 위치로 추정한 탐색 영역의 범위가 넓어 결과의 효과가 떨어지는 단점이 있다. 그래서 결함 위치 추정의 정확도를 높이고 결함 위치 파악의 효과를 높이기 위해 본 논문은 프로그램 소스 코드 문장에 대한 시험 케이스의 커버리지 정보, 시험의 PAss/Fail 여부, Define-Use의 관계에 있는 문장 정보를 활용하여 각 문장의 결함 의심도를 산출하는 방법을 제안한다. 제안 방법을 실험을 통하여 확인한 결과, 낮은 지역화 비용으로 결함 위치 추정을 할 수 있었다.

McCabe 및 BP/Win도구를 이용한 소프트웨어 역공학 사례연구 (Case Study of Software Reverse Engineering using McCabe and BP/Win Tools)

  • 조현훈;최용락;류성열
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제6권5호
    • /
    • pp.528-535
    • /
    • 2000
  • 본 논문은 개발된 원시코드를 분석하여 단계별 효율적인 유지보수와 나아가 제공학 과정에서 재사용 가능한 모듈을 제공함으로써 생산성 있는 소프트웨어를 구축할 수 잇는 지침을 제공하는 데 그 목적이 있다. 전체적으로 4개 흐름을 중심으로 첫번째는 개발된 원시코드를 분석하고, 두 번째는 분석된 코드를 McCabe와 BP/Win 도구를 이용하여 모듈 슬라이싱 및 클러스터링을 하고, 세 번째는 비즈니스 모델링에서 추출된 산풀물을 재사용 모듈로 변환하여 생성한 후, 마지막 네 번째는 리포지토리 설계 및 시스템 구축으로 구성한다. 논문에서 제시하는 부분은 1~3번째를 세분화한 4단계 방법을 사례연구로 적용했으며, 세분화한 4단계는 리포지토리를 구축하는 데 필요한 제반사항을 포함하고 있다. 세분화한 4단계는 기존의 비 정형화되고, 비 구조화된 자료를 역공학 도구를 이용하여 재 분석함으로써 생산성 있는 소프트웨어 유지보수와 재공학에 효과적으로 지침을 제공한다.

  • PDF

AOP를 이용한 재공학에서의 핫 스팟 탐색과 응용 (Method and Application of Searching Hot Spot For Reengineering Software Using AOP)

  • 이의성;최은만
    • 정보처리학회논문지D
    • /
    • 제16D권1호
    • /
    • pp.83-92
    • /
    • 2009
  • 현실 세계의 복잡한 비즈니스 로직들이 프로그램 내부에 투영되면서 시스템의 복잡도는 갈수록 높아지고 있다. 이러한 높은 복잡도를 가지는 프로그램도 그 생명주기 동안 재공학을 거쳐야 하는 것은 필연적일 것이다. 다양한 목적으로 가해지는 재공학 작업에서 그 작업의 대상이 되는 핫 스팟 예측은 매우 중요하다. 일반적으로 레거시 시스템의 재공학 작업은 UML과 코드 분석을 기반으로 예측한다. 또한 그 예측 단위는 클래스 혹은 유닛(함수) 단위가 된다. 그러나 함수 내부의 코드의 량이 갈수록 커져가고 있고 더 미세한 핫 스팟을 찾기 위하여 클래스 단위의 탐색보다 더 미세한 부분의 탐색이 필요하다. 본 논문에서는 AOP를 이용한 문장 단위의 핫 스팟 검출 기법을 제안한다. 기존의 기법에서 요구하던 핫 스팟 검출을 위한 UML과 코드 분석, 또한 이 둘 사이의 일치성과 관계없이 동적으로 AOP를 이용하여 레거시 시스템의 실행 정보를 기록하는 동적 이벤트 로그 데이터를 생성한다. 이를 바탕으로 핫 스팟을 예측하고 슬라이싱하는 방법을 제안하였다.