• Title/Summary/Keyword: 코드 슬라이싱

Search Result 8, Processing Time 0.024 seconds

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

  • Mok, Seong-Kyun;Jeon, Hyeon-gu;Cho, Eun-Sun
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.27 no.1
    • /
    • pp.59-66
    • /
    • 2017
  • Hackers have obfuscated their malware to avoid being analyzed. Recently, obfuscation tools translate original codes into bytecodes to use virtualized-obfuscation, so that bytecodes are executed by virtual machines. In such cases, malware analysts fail to know about the malware before execution of the codes. We found that program slicing is one of promising program analysis techniques to solve this problem. The main concepts of program slice include slicing criteria given by analysts and sliced statements according to the slicing criteria. This paper proposes a deobfuscation method based on program slicing technique.

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

  • Park, Mingyu;Kim, Dongwoo;Choi, Yunja
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.4 no.1
    • /
    • pp.1-8
    • /
    • 2015
  • Safety critical systems require exhaustive verification of safety properties, because even a single corner-case fault can cause a critical safety failure. However, existing verification approaches are too costly in terms of time and computational resource required, making it hard to be applied in practice. In this paper, we implemented a tool for minimizing the size of the verification target w.r.t. verification properties to check, based on program slicing technique[1]. The efficacy of program slicing using our tool is demonstrated in a case study with a verification target Trampoline[3], which is an open source automotive operating system compliant with OSEK/VDX[2]. Experiments have shown enhanced performance in verification, with a 71% reduction in the size of the code.

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

  • Seo, Kang Bok;Kim, Deok-Yeop;Lee, Woo-Jin
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2019.05a
    • /
    • pp.350-352
    • /
    • 2019
  • 프로그램 슬라이싱은 처음 발표된 이후로 지금까지 다양하게 연구되어 테스팅, 디버깅, 개발, 유지 보수 등 다양한 분야에서 사용되어 왔다. 프로그램 슬라이싱을 수행하기 위해서는 기준이 되는 변수에 대해 소스코드 내에 존재하는 모든 라인들에 대해 의존성을 계산하여 프로그램 슬라이싱을 수행하게 된다. 하지만 지정된 변수에 대해서만 의존성 계산을 수행하기 때문에 프로그램을 실행 가능하게 하는 정보들에 대해서는 누락될 수 있고 이 경우의 프로그램 실행은 보장되지 않을 수 있다. 이러한 문제를 개선하기 위해 본 논문에서는 concolic testing 기법을 이용하여 기준이 되는 변수에 대한 의존성 있는 구문들을 추출하고 프로그램 실행에 요구되는 구문들을 같이 추출해낼 수 있는 프로그램 상호작용 슬라이싱 기법을 제안한다.

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

  • Kim, Yoon-Hyun;Bae, Jung-Nam;Lim, Jong-Soo;Cho, Kyung-Ryong;Cha, Jae-Sang;Kim, Jin-Young
    • The Journal of the Institute of Internet, Broadcasting and Communication
    • /
    • v.9 no.6
    • /
    • pp.9-14
    • /
    • 2009
  • In this paper, we proposed spreading code slicing technique for efficient transmitter detection in AT-DMB system with single frequency network. At the transmitter, the spreading code for transmitter identification inserted using slicing technique on forehead of null symbol and then transmitted. In this point, it requires high correlation characteristic spreading code. At the receiver, peak to peak value calculated by correlation process before signal demodulation. The transmitter information by proposed technique is employed to implement the single frequency network (SFN) which is proposed for solving a frequency inefficiency problem of the MFN. The results of the paper can be applied to wireless multimedia digital broadcasting system.

  • PDF

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

  • Kim, Un-Yong;Jeong, Gye-Dong;Choe, Yeong-Geun
    • The Transactions of the Korea Information Processing Society
    • /
    • v.6 no.6
    • /
    • pp.1542-1555
    • /
    • 1999
  • This paper proposes an algorithm for class hierarchies which can optimize member data and member function. This algorithm considers single/multiple inheritance, static/dynamic binding, overloading/overriding, pure virtual/virtual function, and constructor on the hierarchy of C++ class. We need to eliminate unused function that possesses many component element, because the program uses a limited of function in class hierarchies. Previous works on slicing mainly focused on selecting output data and including the related program statement. It was consists of structured programming language and also centralized on error detection, maintenance, and flexible testing. In this paper, we extend to the object-oriented language, makes a linked-table for objects to raise the efficiency of information management, and proposes necessary algorithm for optimizing system Through this process, we can obtain the simplification of program code and the progress of system performance by eliminating unused member data and member function.

  • PDF

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

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

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

  • Jo, Hyeon-Hun;Choe, Yong-Rak;Rhew, Sung-Yul
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.6 no.5
    • /
    • pp.528-535
    • /
    • 2000
  • This paper aims at providing guidelines enabling productive software construction by offering reusable modules which is used not only for effective maintenance for each step, but also for a re-engineering process after analyzing developed source code. There are four processing steps. The first is to analyze source code. The second is module slicing and clustering using McCabe and BP/Win Tools, The third is to transform the outputs extracted from the business model to reusable modules. The final step is to design repository and to construct a system. In this paper, we applied the fourth step to our case study, which was specified from the first step to the fourth. The specified fourth step contains various things for constructing repository. And the fourth step reanalyzes informal and unstructured information by using reverse engineering tools, in order to provide effective guidelines for productive software maintenance and re-engineering.

  • PDF

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

  • Lee, Ei-Sung;Choi, Eun-Man
    • The KIPS Transactions:PartD
    • /
    • v.16D no.1
    • /
    • pp.83-92
    • /
    • 2009
  • Complicated business logic makes program complexity more complicated. It's inevitable that the program must undergo reengineering processes all the way of in its lifetime. Hot spot analysis that has diverse purposes is getting an important question more and more. As a rule, reengineering process is done by UML model-based approach to analyze the legacy system. The smallest fragment of targets to be analysed is unit, that is function or class. Today's software development is to deal with huge change of software product and huge class including heavy quantity of LOC(Lines Of Code). However, analysis of unit is not precise approach process for reliable reengineering consequence. In this paper, we propose very precise hot spot analysis approach using Aspect-Oriented Programming languages, such as AspectJ. Typically the consistency between UML and source is needed code to redefine the modified library or framework boundaries. But reengineering approach using AOP doesn't need to analyze UML and source code. This approach makes dynamic event log data that contains detailed program interaction information. This dynamic event log data makes it possible to analyze hot spot.