Wargame & CTF/abex' crackme

[abex' crackme] 3번 문제 풀이

seomj 2020. 9. 26. 15:34

문제

crackme3.exe
0.01MB

 

풀이

 

파일을 실행시켜보았다. 

 

 

확인을 누르면 파일을 찾을 수 없다는 메시지창이 뜬다.

 

ollydbg로 파일을 열어보았다.

 

열자마자 우리가 아까 보았던 메시지창들이 보인다.

 

위에서부터 살펴보면 파일을 확인하려면 ok를 누르라는 메시지창을 띄운다.

 

그 밑에는 CreateFileA 가 보인다.

이는 파일 또는 I / O 장치를 만들거나 열어주는 기능을 한다.

 

 

Mode의  OPEN_EXISTING은 파일 또는 장치가 있는 경우에만 열어준다.

FileName은 "abex.l2c"이다.

 

즉, "abex.l2c" 파일이 있을 경우 이 파일을 열어준다.

 

 

하지만 현재 우리는 저 파일을 갖고 있지 않기 때문에 실행을 시키면

JE SHORT crackme3,00401075 가 실행되어 에러메시지를 띄운다.

 

 

그래서 "abex.l2c"의 파일을 만들어주고 실행을 하였다.

 

 

하지만 이렇게 실행을 하게 되면

JNZ SHORT crackme3.00401060 이 실행된다.

 

 

이 부분도 봐주어야 한다.

 

GetFileSize지정된 파일의 크기 (바이트)를 검색하여 리턴한다.

 

리턴값은 보통 EAX에 저장이 되니 EAX의 값을 확인해보았다.

 

 

EAX값이 4로 설정이 되어 있는 것을 확인할 수 있다.

 

입력한 바이트 수만큼 증가가 되어 있다는 것을 알 수 있다.

 

CMP EAX,12 를 충족해야 하므로 파일의 크기를 12로 바꿔주어야 한다.

12는 십진수로 18이다.

 

 

 

알파벳은 1바이트이므로 18바이트를 입력해주었다.

 

 

EAX가 12로 설정이 되었다.

 

 

'Wargame & CTF > abex' crackme' 카테고리의 다른 글

[abex' crackme] 5번 문제 풀이  (0) 2020.09.26
[abex' crackme] 4번 문제 풀이  (0) 2020.09.26
[abex' crackme] 2번 문제 풀이  (1) 2020.09.20
[abex' crackme] 1번 문제 풀이  (1) 2020.09.19