안 쓰던 블로그

UPX 패킹된 프로그램 분석 및 툴없이 언패킹하기 본문

CTF/Reversing

UPX 패킹된 프로그램 분석 및 툴없이 언패킹하기

proqk 2020. 10. 1. 16:05
반응형

UPX 다운로드: upx.github.io/

최신 버전을 다운로드 받은 뒤 압축을 풀고 system32 폴더의 notepad.exe를 복사해서 같은 작업 폴더에 넣는다

그리고 cmd를 실행한 뒤에 upx -o 명령어로 실행 압축을 진행한다

UPX를 이용한 압축은 결과물이 PE파일이므로 PE헤더와 압축 해제를 위한 코드가 추가된다

 

참고로 UPX로 압축된 프로그램은 첫번째 섹션은 비어있고 두번째 섹션에 압축된 원본 코드와 압축 해제를 위한 코드가 들어있다. 이 프로그램이 실행되면 먼저 압축 해제를 위한 코드가 실행되어 원복 코드를 압축 해제한 뒤 첫번째 섹션에 저장하게 된다.

 

패킹된 notepad2.exe에서 OEP(패킹된 파일의 실제 시작 부분)를 찾아 하면 툴없이 패킹을 풀 수 있다

 

디버거로 notepad2.exe를 열고 EP코드로 이동한다

혹시 이와같이 나오지 않는다면 분석->모듈분석을 클릭

 

EntryPoint의 주소는 01015330이며 이곳이 윈도우즈 실행파일의 코드 시작점이다

pushad를 통해 EDX, ESI, EDI 레지스터 값을 스택에 저장한뒤에(1번줄)

ESI 레지스터를 두 번째 섹션 시작 주소로 한다(2번줄)

EDI 레지스터를 첫 번째 섹션의 시작 주소로한다(3번줄)

 

 

반응형

'CTF > Reversing' 카테고리의 다른 글

32bit EAT 로딩 과정  (0) 2020.10.05
32bit IAT 로딩 과정 2  (0) 2020.10.05
VA, RVA, RAW 개념  (1) 2020.09.29
Ghidra 기드라 분석 오류 해결 방법  (0) 2020.09.24
dreamhack rev-basic-5 풀이  (0) 2020.09.22
Comments