문제
풀이
파일을 실행시켜보았다.
확인을 누르면 파일을 찾을 수 없다는 메시지창이 뜬다.
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 |