본문 바로가기
Security_/Reversing

[풀이] abex' crackme #3

by 낭람_ 2021. 9. 16.
반응형

abex' crackme.zip
0.01MB

 

abex' crackme #3

 

분석하기 전에 실행을 해보자.

 

 

"Click OK to check for the keyfile." 문구가 나온다.

 

 

확인을 누르니 "Hmmmmm, I can't find the file!" 문구가 나온다.

 

keyfile을 생성한 뒤 key값을 파일 안에 넣는 문제일 것 같다..

 

 

OllyDbg로 열면 바로 나와있다.

 

CreateFile 함수의 인자부터 알아보자.

FileName : "abex.l2c" (영어 l)

Access : GENERIC_READ (읽기 권한)

ShareMode : 0 (모든 프로세스의 접근 차단)

pSecurity : NULL (사용하지 않을경우 NULL)

Mode : OPEN_EXISTING (파일이 존재할 경우에만 파일 열기, 존재하지 않을경우 에러 발생)

Attributes : NORMAL (모든 속성을 지정하지 않는다)

hTemplateFile : NULL (사용하지 않을 경우 NULL)

 

참고 블로그 Luiten Lab [CreateFile 함수]

 

CreateFile 함수

이 내용은 MSDN을 바탕으로 작성되었습니다. Microsoft Visual C++ 2008 기준으로 작성되었습니다. ...

blog.naver.com

 

"abex.l2c" 파일을 생성해 주어야 할 것 같다.

 

 

밑으로 내려오면 GetFileSize 함수로 파일 크기를 확인한다.

 

GetFileSize 함수의 인자부터 알아보자.

hFile : 파일 사이즈를 알기위한 해당 파일에 대한 핸들 (GENERIC_READ, GENERIC_WRITE로 생성해야 사용가능)

pFileSzieHigh : 32비트가 넘을 경우 사용하는 파라미터 (32비트가 넘지 않는다면 NULL)

 

Return값 : 파일 사이즈 리턴

 

CMP EAX. 12

 

함수 호출 뒤 리턴값을 12랑 비교하므로 "abex.l2c"파일에 18바이트를 채워넣어야 한다. (Hex 12 = Dec 18)

 

 

"abex.l2c" 파일에 아무 문자 18 byte를 채워주고 "abex' crackme3.exe" 파일과 같은 폴더에 넣어준다.

 

 

반응형

'Security_ > Reversing' 카테고리의 다른 글

[풀이] abex' crackme #5  (0) 2021.09.19
[풀이] abex' carckme #4  (0) 2021.09.19
[정리] 함수 호출 규약 cdecl, stdcall, fastcall  (0) 2021.09.16
[풀이] abex' crackme #2  (0) 2021.09.15
[풀이] abex' crackme #1  (2) 2021.09.15

댓글