반응형

abex' crackme1.exe
0.01MB
abex' crackme1_patched.exe
0.01MB

 

 

 

crackme #1 프로그램을 실행하면 위의 사진과 같이 뜬다.

 

  • 자신이 너의 HD가 CD-Rom 이도록 생각하겠끔 만들라고 한다.
  • 이어서 CD-ROM Drive가 아니라고 한다.

 

 

x32dbg를 사용해 quizq_abexcm1.exe 파일을 열고 EP로 이동하면 위의 사진과 같이 나온다.

 

화면을 보면 프로그램을 실행했을 때 봤던 “Make me think your HD is a CD-Rom” 문구가 보인다.

 

이어서 밑에 “Error”와 “Nah… This is not a CD-ROM Drive” 문구도 보인다.

 

그리고 “YEAH!”와 “Ok, I really think that your HD is a CD-ROM! :P” 문구가 있다.

 

 

EIP를 40100E까지 위치시키면 스택에는 위의 보이는 것과 같이 402000주소와 402012 주소가 쌓인다.

 

402000 주소에 있는 값을 확인하기 위해 dump 창에서 이동해보면 위의 사진과 같이 “abex’ 1st crackme.” 문자열이 있고

 

402012 주소부터는 “Make me think your HD is a CD-Rom..” 문자열이 있다.

 

이어서 “Error Nah”, “This is not a CD-ROM Drive!”, “YEAH!”, “ok, I really think that your HD is a CD-ROM!” 문자열이 있다.

 

 

40100E 주소의 call 명령을 실행하면 messagebox가 뜨고, 확인을 누르면 401013 라인으로 EIP가 이동한다.

 

 

이어서 401018 주소의 call 명령어로 Drive의 type 정보를 가져오는데 이 함수의 결과로 eax에는 3이라는 값이 담긴다.

 

 

이후 위의 명령을 통해 eax의 값은 1이 되고, esi의 값은 401003되며

 

 

dump 창에서 401003의 값을 보면 402000주소를 가리키고 있고, 이 주소에는 “abex’ 1st crackme” 문자열이 담겨있다.

 

 

그 다음 401024 주소의 cmp 문을 통해 eax와 esi의 값이 같은지 비교하고, 값이 같다면 ZF 플래그가 1로 설정된다.

 

ZF 플래그가 1로 설정되면 je 명령어는 40103D 주소로 jmp 하는데 40103D 주소에는 “YEAH” 문자열이 있는 곳이다.

 

하지만 401018 주소의 call 명령어의 결과로 담긴 eax의 값과 esi의 값은 다르기에 ZF 플래그가 1로 설정되지 않고, 그러므로 401026 주소의 je 명령어가 실행되지 않고 401028 주소로 간다.

 

이어서 실행 하다보면 “Error” 문구과 “Nah… This is not a CD-ROM” 문구가 있다.

 

 

풀이

 

그렇다면 491026 주소의 je 명령어가 실행되어야 한다.

 

je는 cmp 명령의 결과로 ZF 플래그의 값이 1로 설정되었을 때 실행되는 명령어이다.

 

그렇다면 ZF 플래그의 값이 0일 때 실행하는 명령어 jne를 사용하면 된다.

 

 

위의 사진과 같이 401026 주소의 je 명령을 jne로 바꾼다.

 

 

그리고 Ctrl+p 키를 눌러 패치한 파일을 저장한다.

 

 

위의 사진과 같이 창이 뜨면 오른쪽 하단에 있는 파일 패치를 누른다.

 

 

그리고 파일의 이름과 저장될 경로를 지정하고 저장한다.

 

패치된 파일을 실행하면 위의 사진과 같이 뜨고 확인 버튼을 누르면

 

 

문구가 바뀐 것을 확인할 수 있다.

반응형

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

crackme #6(ReWrit's Crackme#1)  (0) 2022.06.21
abex' crackme #5  (0) 2022.06.14
abex' crackme #4  (0) 2022.06.14
abex' crackme #3  (0) 2022.06.14
abex' crackme #2  (0) 2022.06.05

+ Recent posts