베지밀
[리버싱] abex' crackme #3 본문
👾분석 환경 : Ollydbg
우선 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