베지밀

[리버싱] abex' crackme #3 본문

개인 공부/리버싱

[리버싱] abex' crackme #3

vegimil 2024. 7. 6. 00:19

👾분석 환경 : Ollydbg

 

abex' crackme3.zip
0.00MB

 

 

 

우선 crackme3 파일을 실행시켜보자

이렇게 프로그램은 끝난다.

Ollydbg 분석

파일을 열자마자 CreateFileA라는 API 함수 호출이 보인다.

CreateFile 함수의 인자를 확인해보자

FileName = “abex.l2c”

Access = GENERIC_READ (읽기 권한)

ShareMode = 0 (다른 프로세스에 공유 불가)

pSecurity = NULL

Mode = OPEN_EXISTING (파일이 존재할 때만 파일을 엶)

Attributes = NORMAL

hTemplateFile = NULL

 

 

GetFileSize로 파일의 크기도 확인함 → 리턴값 = 파일 사이즈

hFile = NULL (파일 사이즈를 알기 위한 해당 파일에 대한 핸들. GENERIC_READ 또는 GENERIC_WRITE로 생성되어야 함)

pFileSizeHigh = NULL (32비트 이상일 때 파일 크기를 리턴함. 32비트보다 작으면 NULL)

 

함수 호출 뒤 리턴값(파일 크기)을 12와 비교함

 

→ abex.l2c 파일을 생성하고 파일 크기를 12로 만들어야 함

→ 컴퓨터는 16진수를 사용하니까 12는 HEX값임

→ HEX에서 12는 DEC에서 18이므로 18개의 문자로 채워주면 됨

abex.l2c를 abex crackme3과 같은 폴더에 넣어주고 실행시키면

 

크랙 성공

 

 

 

참고 링크

GetFileSize()함수 : https://irontooth.tistory.com/97