본문 바로가기

모의해킹/리버싱

패커와 프로텍터 : 레나 챌린지 (Level 20)

728x90

최초 패커의 등장 : "압축"  -> exe 파일을 패커를 통해 압축한다. 

프로텍터 : 패커에서 진화한 게 프로텍터이다. 패커와 목적이 다르다. "exe 파일 보호" 

 

오늘 풀어볼 문제의 프로그램이다.

 

올리디버그로 프로그램을 열면 경고창이 뜬다.

PE헤더에 나와있는 엔트리 포인트가 코드 섹션 밖에 있다는 내용이 적혀있다. (압축된 게 풀려야 된다는 의미?)

 

메모리 영역을 UnPackMe의 .text에서 실행이 되어야 하는데  46B000 주소부에서 실행되었다.

 

F8로 하나씩 실행시키다보면 4271 B0 주소로 점프를 한다.. 여기 부분은 어디인지 모르기 때문에 메모리 영역을 확인해 보자.

 

메모리 영역을 보면 UnPackMe의 code 섹션 부분이다.

 

DB라고 해가지고 데이터가 나와있는데 볼륨을 분석하기 위해서는 Ctrl + A를 누르면 위 사진처럼 나오게 되면 아까 초반에 F8을 누르면서 이게 압축이 풀려서 여기에 압축이 써졌구나라고 생각할 수 있다.

즉, 실제적으로 프로그램이 실행되는 그 진입점이라는 뜻이다.

 

Plugins의 OllyDump로 덤프를 떠준다.

 

덤프 한 프로그램을 올리디버그로 실행을 시키면 OEP라고 지정해던곳부터 실행이 된다.

 

Ctrl + N을 눌러 MessageBoxA에 전체 브레이크 포인트를 걸어준다.

 

F9로 실행을 시키면 해다 브레이크 포인트에 걸린다. 

스택을 보시면 메시지 박스의 내용을 확인할 수 있다. 이렇게 보기 어려운 패킹된 프로그램을 보기 쉽게 푸는 방법이다.

 

 

두 번째 문제이다.

 

올리디버그로 프로그램을 실행시킨 다음 메모리영역에 들어가 code 섹션까지 F8을 누르면서 이동해 보자.

 

F8을 하나씩 실행시키다 보면 너무 많은 시간이 걸려서 F9을 눌렀는데 코드섹션까지 바로 오게 되었다.. 뭐지..?

해당 부분을 덤프를 떠준다.

덤프 뜬 프로그램을 실행시키면 정상적으로 실행이 되지 않는다.

 

LordPE 툴을 사용해서 정상적으로 실행이 되게 만들 것이다.

OllyDbg에는 덤프 하지 않은 정상적인 프로그램을 올려야 한다.

 

RebuildPE을 눌러 언팩 했던 파일을 필드 해준다.... 정상적으로 실행이 안됨,, 원래 이렇게 하면 되는 건데,,,,