Abstract
Malicious codes uses generic unpacking technique to make it hard for analyzers to detect their programs. Recently their has been several researches about generic packet to prevent or detect these techniques. And they try to focus on the codes that repeats while generic packing is doing compression because generic packing technique executes after it is decompressed. And they try to focus on the codes that repeats while generic packing is doing compression because generic packing technique executes after it is decompressed. Therefore, this makes a interesting performance which shows a similar address value from the codes which are repeated several times what is different from the normal program codes. By dividing these codes into regularly separated areas we can find that the generic unpacking codes have a small entropy value compared to normal codes. Using this method, it is possible to identify any program if it is a generic unpacking code or not even though we do not know what kind of algorithm it uses. This paper suggests a way of disarming the generic codes by using the low value entropy value which comes out from the Opcode addresses when generic unpacking codes try to decompress.
악성코드는 분석가가 탐지 및 분석을 어렵게 하기 위하여 실행 압축 기술을 이용하고 있다. 최근에는 실행 압축 기술이 적용된 코드에 대응하기 위하여 실행 압축 기술에 대한 연구가 진행되고 있다. 실행 압축 기술은 압축된 실행코드를 해제해야 동작이 가능하여 실행 코드를 압축하는 과정에서 반복되는 코드를 이용한다. 따라서 일반 코드와 비교하여 반복되는 코드가 많아서 동일한 코드가 유사한 주소 값을 가지고 수행되는 특성이 있다. 코드영역을 일정한 영역으로 구분하면 실행 압축이 해제되는 코드는 원래의 코드와 비교하여 낮은 엔트로피값을 갖는다. 이를 이용하면 실행 압축 알고리즘을 알지 못한 상태에서 실행 압축 여부를 판단할 수 있으며 실행 압축코드를 해제할 수 있다. 본 논문에서는 압축이 해제되는 코드에서 명령어의 주소 값이 작은 엔트로피값을 갖는다는 것을 이용하여 실행압축을 해제하는 방법을 제안한다.