Simples Crackme 5
- Question
· 문제를 보고 유추해봤을 때 알맞은 Serial을 찾아서 넣는 문제로 판단된다.
· Serial이 맞는 경우 위와 같은 성공 Message를, 맞지 않으면 위와 같은 실패 Message가 출력된다.
- Solve
· Code를 살펴보면 위와 같은 Code가 보인다.
· lstrcatA와 lstrcmpiA가 있는 부분이 비교할 Serial을 생성하고 비교하는 구간으로 파악되며 그에 따른 결과 값으로 인해서 성공 Routine과 실패 Routine이 나타나게된다.
· Serial 생성
◦ Serial 생성 및 비교를 진행하는 구간부터 살펴보면 lstrcatA 함수를 이용해 'L2C-5781'이라는 문자열을 String2 변수에 저장한다.
◦ 이후 결과 값을 Stack에 저장된 문자열을 PUSH 명령어로 다음 lstrcatA 함수를 이용해 String2에 저장한 값을 꺼내 'L2C-5781' 문자열 뒤에 'F"Ftive4562-ABEX' 문자열을 이어 붙여 String2 변수에 저장한다.
· 비교
◦ 입력한 Serial(String2)과 'L2C-5781F"Ftive4562-ABEX'(String1)을 비교해 결과 값(0 또는 1)을 EAX에 저장한다.
◦ lstrcmpiA 함수는 비교 값이 서로 같을 경우 0을 서로 다를 경우 1을 EAX에 저장한다.
◦ CMP 명령어로 0과 EAX 값을 비교해 성공 또는 실패 Message를 출력한다.
- Answer
· Serial : L2C-5781F"Ftive4562-ABEX
'Reversing > Simples Creckme' 카테고리의 다른 글
Simples Crackme 7 (0) | 2015.08.16 |
---|---|
Simples Crackme 6 (0) | 2015.08.16 |
Simples Crackme 4 (0) | 2015.08.16 |
Simples Crackme 3 (0) | 2015.08.16 |
Simples Crackme 2 (0) | 2015.08.16 |