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로 넣어서 실행 하는 것임을 생각 할 수 있습니다.
반응형
'Information Security > Reversing' 카테고리의 다른 글
[Code injection] 지뢰 찾기 핵 만들기 - 바로 승리 (7) | 2022.01.04 |
---|---|
[Code injection] 지뢰 찾기 핵 만들기 - 무적 (1) | 2022.01.03 |
[Code injection] 지뢰 찾기 핵 만들기 - 시간 고정 (4) | 2021.12.31 |
[Code injection] 지뢰 찾기 핵 만들기 - 지뢰 보이기 (0) | 2021.12.30 |
[리버싱 핵심원리] 실행 파일에서 .reloc 섹션 제거 하기 (3) | 2021.12.24 |
댓글