본문 바로가기
리버싱

리버싱 16

by 윤라경 2024. 8. 30.

[2024.08.30]

 

 

 

지난 강의에서 16 부분이 급하게 끝났기 때문에 복습할 겸 추가로 진행한다

성공 메시지만 띄우고 끝났기 때문에 값을 변경하여 조작하는 방법을 공부했다

처음으로 JNE로 되어 있던 구문을 JE로 변경시킨다

 

ex)

CMP EAX, EBX ; EAX와 EBX를 비교

JE label ; EAX == EBX일 때 label로 점프

 

이 코드에서 EAX와 EBX가 같다면, 프로그램 실행 흐름은 label로 이동하게 된다

 

하지만 값이 같지 않기 때문에 이동하지 않고 그대로 명령을 수행하게 되면서 성공 메시지를 띄운다 

 

 

이번에도 마찬가지로 CMP 부분에서 브레이크 포인트를 걸고 확인했을 때,

내가 입력한 1234의 값이 헥사 값으로 EAX에 저장되어 있다

그런 EAX의 값을 9F163957로 변경시키면 비교했을 때 값이 일치하기 때문에

 

 

이 방법 또한 성공 메시지를 띄울 수 있다

 

 

또 반복문 부분에서 Zero Flag를 1로 변경하게 되면 성공 메시지를 확인할 수 있다

 

 

다른 방법으로는 스택 값의 EBP-3C에 나와 있는 9F163957의 값을

내가 입력한 1234에 맞춰 4D2로 변경시킨다

 

 

그럼 또 성공 메시지가 나타나는 걸 확인할 수 있다

이런 식으로 다양한 방법으로 값을 조작하는 연습을 통해 실습을 진행했다

 

 

01. 분석 도구 다운로드

 

1) PEiD

2) UPX Packer

3) 샘플 파일: crackme16_2.exe

4) Strings

5) VMUnpacker

 

> 분석 도구

c:\strings Crackme_16_2.exe

 

 

 

 

실습에 필요한 분석 도구들을 다운로드받는다

 

 

현재 PEiD로 Crackme_16_2.exe 파일을 확인했을 때

upx로 패킹되어 있기 때문에 언패킹을 시켜 줘야 된다

 

 

CMD 창으로 Strings의 디렉터리로 이동하여 파일들을 확인한다

 

 

그런 다음 파일들을 Strings 명령어를 이용하여 실행시킨다

 

 

그럼 strings 명령어를 사용할 수 있게 되는데 명령어를 통하여 Crackme_16_2.exe 파일을 Crackme_16_2.txt로 저장한다

 

*이때 화면처럼 디렉터리 경로를 모두 기입해야 되기 때문에

쉬운 이름의 디렉터리를 생성하고 한 곳에 모아두는 것을 추천합니다

 

 

그렇게 되면 다운로드 디렉터리에 Crackme_16_2.txt 파일이 생겼다 

 

 

그 파일을 열어 확인했을 때 사용하지 않는 쓸데없는 코드와

맨아래에서는 사용하기도 하고, 가끔 보이는 명령어를 확인할 수 있었다

 

 

다음은 VMUnpacker를 실행시켜 Crackme_16_2.exe 파일의 언패킹을 진행한다

파일을 지정하고 오른쪽 상단의 Unpack을 누르게 되면 진행이 완료되었다고 뜬다

 

*원래 upx로 진행하려고 했지만, 되지 않는 경우도 있어서 이번에는 VMUnpacker 프로그램으로 진행다 

 

 

Crackme_16_2 디렉터리에서 확인 시 unpacked.exe 파일이 생성된 걸 확인했다 

 

 

언패킹을 진행하지 않은 경우에는 아래에 upx로 패킹되어 있다고 나타났었지만,

현재는 언패킹을 진행하였기 때문에 화면과 같이 나온다 

 

 

이번에도 strings의 명령어로 unpacked.exe 파일을 Crack1.txt 파일로 생성한다

 

*현재의 명령을 진행하기 위해서는 같은 디렉터리에 있어야 되는 점 참고

 

 

이번에는 unpacked.exe의 문자열을 추출한 Crack1.txt를 확인했다

이전과는 다르게 알 수 있는 문자들이 많았다

 

 

다시 ollydbg로 돌아와서 unpacked.exe를 열고 실행 시

화면과 같은 형태의 실행창을 확인할 수 있었다 

 

 

이 화면의 힌트는 왼쪽 아래의 빨간색 박스 부분을 누르면 화면에

This device seems broken,maybe a patch would fix this?

라는 문구가 나타나게 된다

 

 

하지만 이 파일의 경우도 Strings과 함수가 길어 찾을 수 없었지만,

문장이 나타나는 부분을 통하여 이동해 보았다

 

 

 

강의 소감

오늘은 언패킹을 진행하기 위해 분석 도구들을 알아봤다

cmd 창에서 디렉터리를 지정할 때 디렉터리가 길어 너무 힘들었다

앞으로는 편리를 위해 디렉터리를 하나 만들어 한 군데에서 다 수행해야겠다

또한, 언패킹 진행 시 문자열이 달라지는 것을 확인할 수 있었고

언패킹을 진행한 파일로 ollydbg로 실행해 보는 실습도 진행하였다

'리버싱' 카테고리의 다른 글

리버싱 18  (0) 2024.09.03
리버싱 17  (0) 2024.09.03
리버싱 15  (0) 2024.08.30
리버싱 14  (0) 2024.08.29
리버싱 13  (0) 2024.08.27