본문 바로가기
Information Security/Reversing

[리버싱 핵심 원리] 실행 압축 및 UPX 툴 설명

by 이키마스 2021. 12. 21.

UPX 실행 압축된 notepad 디버깅

실행 압축이란 PE 파일을 대상으로 파일 내부에 압축 코드를 포함하고 있어서 실행되는 순간에 메모리에서 압축을 해제 시킨 후 사용하는 기술을 의미합니다.

그 실행 압축을 할 수 있게 해주는 프로그램 이름이 UPX 입니다.

UPX 툴은 아래와 같은 링크에서 다운로드 받을 수 있습니다.

UPX 프로그램의 옵션들

위와 같은 옵션을 통해서 PE 파일을 실행 압축 할 수 있습니다.

upx -o 실행 압축된 파일.exe 실행 압축 전 파일.exe를 해서 실제로 실행 압축을 위와 같은 옵션으로 해보면

파일의 크기가 줄어 들었음을 알 수 있습니다.

파일의 크기가 줄어 들었으므로 PE 구조에서 어딘가가 없어졌을것 이라고 예상 되는데

notepad_upx.exe 파일을 PEview로 열어 보면 Virtual Size(메모리에 올라 갈때의 크기)는 존재 하는데

Size of Raw Data (파일에서의 크기)는 0이라고 나오는 것을 확인 할 수 있습니다.

아까 실행 압축은 실행 될때 압축을 풀어서 실행 한다고 했는데 압축 된 곳이 필요한데 그 곳에 UPX1 입니다.

UPX1을 통해서 압축 해제 후 해제 된 값을 UPX0로 넣어서 실행 하는 것임을 생각 할 수 있습니다.

반응형

댓글