초록
본 논문은 악성코드가 사용하는 자기방어기법을 방식에 따라 분류하고, 악의적인 코드를 보호하는 방법의 일종인 패킹에 대해 소개하였으며, 패킹을 이용하는 악성코드를 보다 빠르게 분석할 수 있는 방안을 제시하였다. 패킹기법은 악의적인 코드를 은닉하고 실행 시에 복원하는 기술로서 패킹된 악성코드를 분석하기 위해서는 복원 후의 진입점을 찾는 것이 필요하다. 기존에는 진입점 수집을 위하여 악성코드의 패킹 관련 코드를 자세히 분석하여야만 했다. 그러나 본 논문에서는 이를 대신하여 악성코드를 생성한 표준 라이브러리 코드 일부를 탐색하는 방법을 제시하였다. 제시한 방안을 실제로 구현하여 보다 신속히 분석할 수 있음을 증명하였다.
This paper classifies the self-defense techniques used by the malicious software based on their approaches, introduces the packing technique as one of the code protection methods and proposes a way to quickly analyze the packed malicious codes. Packing technique hides a malicious code and restore it at runtime. To analyze a packed code, it is initially required to find the entry point after restoration. To find the entry point, it has been used reversing the packing routine in which a jump instruction branches to the entry point. However, the reversing takes too much time because the packing routine is usually obfuscated. Instead of reversing the routine, this paper proposes an idea to search some features of the startup code in the standard library used to generate the malicious code. Through an implementation and a consequent empirical study, it is proved that the proposed approach is able to analyze malicious codes faster.