Write Up/CodeEngn
UPX packing / unpacking
jxxwxx
2022. 11. 22. 18:35
upx 패킹과 언패킹에 대해 말씀드리겠습니다.
먼저 패킹이란, "실행 압축"과 같은 표현으로 실행 파일 내부에 있는 코드를 압축한 상태로 저장하고 있다가 파일을 실행하면 메모리에서 압축을 해제한 후 파일을 실행 시키는 기술입니다.
패킹을 하면 파일의 크기를 3~4배 가량 줄일 수 있으며 크래커의 리버싱으로부터 보호할 수 있다는 장점이 있어 리버싱 문제에서 자주 사용됩니다.
UPX 언패킹을 하기 위해서는 먼저 PEiD와 같은 패커 탐지 툴을 사용하여 파일의 패킹 여부를 확인해야합니다.
PEiD와 확인해볼 샘플 파일을 동일한 폴더에 넣고 PEiD에 샘플 파일을 불러옵니다.
EP section을 통해 샘플파일이 UPX로 패킹 되어 있는 것을 확인할 수 있습니다.
언패킹을 위해서는 먼저 해당 경로에서 운영체제에 맞는 UPX 툴을 다운로드 받아야합니다.
UPX 는 무설치 방식이기 때문에 Cmd 창에서 경로와 옵션만 잘 입력해주면 사용할 수 있습니다.
다운로드가 완료되면 cmd창에서 upx -d "파일명" 을 입력해줍니다.
실행이 완료되면 다음과 같이 unpacked 1 file이라는 문구를 확인할 수 있고 언패킹이 완료되었음을 확인할 수 있습니다.