반응형
반응형

 

02.exe
0.13MB
patched_02.exe
0.13MB

 

 


분석 1

 

 

이 프로그램은 MFC로 만들어진 것 같다.

 

 

프로그램을 실행하면 위와 같이 창이 뜨다가 그대로 종료해버린다.

 


분석 2

 

 

x32dbg를 이용해 프로그램을 열고 문자열 찾기 기능을 이용하니 위와 같이 패스워드를 입력하라는 문자열이 있다.

 

그렇다면 원래는 프로그램을 실행했을 때 WHO CAN CRACK THE CRACKME!? 문자열과 패스워드를 입력하라는 문자열이 떠야 하는데, windows 11에서 실행해서 그런지 저런 문자열이 뜨지 않았다.

 

 

Enter password 문자열을 띄우는 부분으로 가면 위와 같은데 4012C0 주소에서 401D80 주소의 함수를 호출하면서 패스워드를 입력하라는 문자열이 뜨는 것이다.

 

4012C0 주소에 BP를 걸고 F9를 눌러보면 4012C0 주소에서 멈춰지지 않고 프로그램이 종료된다.

 

 

그렇다면 Ctrl + F8 키와 F2 키 그리고 Ctrl + F2 키를 이용해 참조하는 함수 하나 하나 마킹하면서 따라간다.

 

40657C -> 40662B -> 401024 -> 402CE5 -> 402CA4

 

위의 402CC3 주소의 조건 분기가 2번 진행되다가 402CA4 주소에서 40653C 주소의 함수를 호출하면서 프로그램이 종료된다.

 

 

그렇다면 jne를 je로 바꾸고 진행한다.

 

 

그러면 위와 같이 4012C0 주소에 도착한다.

 

 

그리고 F8 키를 눌러 진행하다보면 4012D2 주소에서 멈추게 되고

 

 

CMD 창을 확인해보면 위와 같이 떠 있고, 패스워드를 입력할 수 있다.

 

12341234를 입력한다.

 

 

그리고 F8 키 또는 Ctrl + F8 키를 이용해서 진행하다보면 4013C5 주소의 call edx 명령에서 프로그램이 종료된다.

 

4013C5 주소에 BP를 걸어두고

 

 

4013C5 주소 내부로 들어가면 코드는 위와 같다.

 

입력한 패스워드 값과 특정 문자들을 비교하고 서로 일치하지 않으면 19F876 주소로 점프한다.

 


풀이

 

 

40657C -> 40662B -> 401024 -> 402CE5 -> 402CC3 주소의 jne 명령어를 je 명령어로 바꾼다.

 

 

F9 키를 눌러 진행하고 값을 입력해준 뒤 

 

 

4013C5 주소에 BP를 걸고 F9 키를 눌러 진행한다.

 

 

edx가 가리키는 주소의 함수 내부러 가서 cmp 부분에 있는 값들을 합치면 아래와 같다.

 

더보기

CRAAACKED!

반응형

'전쟁 > codeengn' 카테고리의 다른 글

[codeengn] Advance RCE 04  (0) 2022.10.20
[codeengn] Advance RCE 03  (0) 2022.10.20
[codeengn] Advance RCE 01  (0) 2022.10.19
[codeengn] Basic RCE 20  (0) 2022.10.17
[codeengn] Basic RCE 19  (1) 2022.10.14

+ Recent posts