Security&Hacking/리버싱

Lena Reversing - tutorial 20_6

Dior2ky 2020. 3. 11. 18:46
반응형

Lena Reversing tutorial 20_6

6번째 프로그램은 UnPackMe_NoNamePacker.d.out 이다. 

Ollydbg로 열어준다. 

실행을 해보면 다음과 같은 이상한 창이 나온다. 

아무 문구도 없다.. 이상해서 디버거를 종료시키고 실행해보았다.

아까와는 다른 창이 나온다. 

실행중인 디버거를 탐지하는 코드가 내부에 들어있는 것으로 보인다. 

따라서 이번 프로그램은 안티 디버깅 기법을 우회하고 언패킹도 해주어야 한다. 

쭉 진행하다보면 다음과 같이 IsDebuggerPresent 함수가 Call 된다.

이 함수를 통해 디버거가 실행중인지 판단하여 분기하는 것으로 보인다.

여기서 OR EAX, EAX 수행 전 EAX는 1이다. 디버거가 실행중임을 나타낸다.

이 값을 0으로 바꾸어 진행해준다. 프로그램은 디버거가 수행중이 아니라고 판단하고 진행된다. 

이제 F9를 눌러 진행시킨다. 

 디버거가 탐지되지 않았을 때의 창이 출력된다. 

이제 F12를 눌러 정지시키고 Debug -> execute till user code를 눌러준다.

그 후 창을 닫으면 다음과 같은 주소로 이동한다. 

K 버튼을 눌러 CALL 스택을 살펴준다. 

가장 먼저 호출된 0041BB18는 004272FD에서 Call 되었다.

004272FD로 가준다. 

위로 올리다보면 함수 프롤로그가 보인다. 

이 주소가 OEP라고 추정할 수 있다. 

그럼 ollydump를 통해 dump 해준다.

Entrypoint를 정확하게 입력해주고 dump 해준다.

끝. 

반응형

'Security&Hacking > 리버싱' 카테고리의 다른 글

Lena Reversing - tutorial 20_8  (0) 2020.03.11
Lena Reversing - tutorial 20_7  (0) 2020.03.11
Lena Reversing - tutorial 20_5  (0) 2020.03.11
Lena Reversing - tutorial 20_4  (0) 2020.03.10
Lena Reversing - tutorial 20_3  (0) 2020.03.10