Haekt‘s log

[리버싱] reversing with lena-tutorial 3 본문

Reversing

[리버싱] reversing with lena-tutorial 3

Haekt 2022. 9. 25. 16:04

- 사용 툴

  • X32dbg
  • HxD32

 

RegisterMe.exe
0.00MB
RegisterMe.Oops.exe
0.00MB
RegisterMe1.exe
0.00MB
RegisterMe1.Oops.exe
0.00MB

 

이번에 할 리버싱 파일은 lena-tutorial 3 의 RegisterMe.exe 이다.

특정 메세지창을 제외한 자잘한 메세지창을 다 지우면 성공하는 문제이다.

 

- 01.  툴에서 메세지가 뜨는 부분 확인 

 

실행을 시켜주니 아래와 같은 두 창이 떴다.

Remove the nags
Wait no longer :))
Oops!

Remove the nags 창을 지우면 성공한다고 적혀있다.  마지막엔 Oops! 창이 뜨며 register 실패했다고 뜬다.

어떻게 이 창이 뜨는지 x32dbg에서 한번 확인해 봐야겠다. 

 

먼저 실행을 시켜서 EntryPoint 로 이동했다.

이번엔 문자열을 찾을 필요없이, 간단하게 메세지문이 순서대로 뜨게 되어있었다.

Message Box 순서대로 원리를 파악해보자.

 

 

2. Remove the nags

 

 

GetModulHandle 함수를 통해 핸들러를 가져오고, eax 의 값을 40311C 에 넣고, 0과 비교하여 같을경우 이 message box를 건너뛴다.

같지 않을 경우 정상적으로 Remove the nags 메세지 박스가 뜬다.  

 

GetModulHandle 함수는 무슨 용도일까. Google 에 검색해보니 모듈(프로그램)핸들을 가져오는 함수로, 성공하면 메모리상 프로그램의 시작위치를 반환한다. 실패하면 Null(0)을 반환한다고 한다.

 

eax에는 보통 반환값이 담긴다..  비교문까지의 eax 값을 살펴보자.

400000 이 들어간다. 성공적으로 핸들러를 불러왔다는 뜻(eax 가 0이 아니다)으로 이해할 수 있다. 

그럼 cmp eax, 0 에서 비교 후 je 문을 그냥 지나쳐 Remove the nags 메세지 박스를 띄우게 된다. 

 

그냥 간단하게 점프문을 고쳐서 무조건 점프하게 만들어 메세지 박스가 안뜨도록 해 보자. 

 

je 문을 클릭하고 스페이스바를 눌러 jmp 로 수정해준다. 

그럼 메세지를 띄우지 않고 건너뛰게 된다.

 

이제 oops! 부분을 지워보자.

 

2. Oops! 

 

이부분은 훨씬 더 간단하다.

그냥 간단하게 oops! 부분을 nop 으로 바꿔주면 된다 ㅋㅋㅋㅋ 

스페이스바를 눌러 nop으로 바꿔주자.

 

단, 프로그램의 크기를 맞추기 위해 잔존바이트를 nop으로 채워 크기를 맞춰줘야 한다.

x32dbg에는 해당 기능이 있으므로, 그냥 체크하고 수정하면 된다. 

 

이제 패치를 하고 실행시켜보자. 

 

https://haekt-log.tistory.com/22

 

X32,64 dbg 파일 패치방법

패치 방법은 매우 간단하다! 왼쪽 상단의 파일탭을 눌러 해주면 된다. 그러면 아래와 같이 창 하나가 뜨고, 자신이 패치한 내용이 뜬다. 파일 패치를 눌러준다. 패치한 파일의 이름을 정해주고

haekt-log.tistory.com

패치 방법은 위 링크에 적어놨다. 

 

이 메세지만 뜨면 성공..! 

 

 

Register.Oops.exe 파일은 아래에 작성해 놓았다. 

https://haekt-log.tistory.com/24

 

[리버싱] reversing with lena-tutorial 3 - Oops!

- 사용 툴 X32dbg pe-explorer(직접작성한 프로그램) HxD32 이번에 해볼 프로그램은 lena-tutorial 3 의 Oops 파일이다. lena-tutorial3 를 푸는 방법을 알고싶다면, 아래에 링크가 있다. https://haekt-log.tisto..

haekt-log.tistory.com

 

 

Comments