My Study/CrackMe

CrackMe (abex's 2nd crackme)


abex's 2nd crackme.exe


크랙미를 열어보자.


이름과 시리얼을 아무거나 입력해보자.

3글자만 넣었더니 위와 같이 최소 4글자를 입력하라고 떴다. 그래서 다시 4글자를 입력하고 확인을 눌렀더니 아래와 같이 틀렸다고 떴다.



크랙미를 올리디버거에 올려서 All reference text string 을 살펴보자.



그럼 보았던 글자들이 보인다. 우리의 목적인 Congratulations 문자열을 따라가보자.


이동한 뒤 분기점을 찾아 위로 올라갔더니 조건 점프문이 있다. 분기점을 기준으로 실패 메세지와 성공한 메세지를 볼 수 있다.



이제 시작점을 알기 위해서 위로 올렸더니 함수 시작점을 확인할 수 있었다.


그리고 아래로 천천히 실행을 시켜보자.



먼저 보이는건 내가 name에 입력한 글자가 보였다. 



그 아래로 실행시켜 보면 무슨 유니코드를 볼 수있다. 이게 무엇인지는 아래를 더 읽다보면 알 수 있을 것 같다. 

반복문을 처음 돌렸을 땐 ???????? 으로 나올 것이다. 반복문을 2번째이기에 이렇게 저장이 되어 있는 것이다.



인자를 EBP -D4에 저장하는데 hex값이 65이다. 65는 아스키코드표로 'e' 의 hex 값이다. 이것으로 EBP-D4에 입력한 문자열 중 한개가 들어간 것을 알 수 있다.



위 사진에서는 EBP-D4 에 0X64를 넣는다.. 그런데 아래 함수가 더하는 함수가 있다. 

0X65 + 0X64 = C9

이 숫자를 기억해보자.


이렇게 반복을 하다 반복이 끝나면 아래 사진처럼 내가 입력한 시리얼을 불러와 아까 생성한 시리얼키와 비교를 한다.


그리고 점프문 위에서 비교를 한다는 것을 스텍 영역에서 확인할 수 있다. 그런데 아래 사진에서 C9 가 있는 것을 알 수 있다. C9는 위에서 계산 값(0X65+ 0X64 = 0XC9) 이다. 이것으로 시리얼은 입력한 문자의 아스키코드에 0X64를 더한다는 것을 알 수 있다.



이제 구한 시리얼키를 입력 해보자.





간단한 크랙미 였다.















'My Study > CrackMe' 카테고리의 다른 글

CrackMe(abex'5th crackme)  (0) 2015.05.24
CrackMe(abex'4th crackme)  (0) 2015.05.24
CrackMe (abex's 2nd crackme)  (0) 2015.05.24
CrackMe(RegisterMe)  (0) 2015.05.21
CrackMe (abex's 3rd crackme)  (0) 2015.05.20
CrackMe (Project1)  (0) 2015.05.19

최근 트랙백

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.