2015년 11월 25일 수요일

crackme 16

리버싱
- crackme(abexcm16) -

아래 화면이 프로그램이 실행되었을때 화면.
Name을 입력받고 입력하면 Password를 입력하는 문자열이 뜬다.
Name과 그에 맞는 Password를 찾아내는 크랙문제이다.


 출력되는 문자열을 검색해보면
Good Job! / Wrong password!
라고 출력되는 문자열이 보인다.


해당위치로 가보면
아래 코드중에서 004015A2 부분이 조건분기를 통해
Good job과 Wrong password 문자열을 띄우는 부분으로 점프하게 된다.



 그래서 이부분을 자세히 살펴보았다.

이 부분에서 MOV IMUL LEA ADD MOV연산을 통해 Password를 만들어내고
마지막에 CMP로 비교하여 점프시키는 것으로 추측했다.

EAX 와 SS를 CMP하게 되는데 여기서
0040159C 부분을 지날때 EAX에 입력한 패스워드가 들어간다.
그것으로 보아 SS:LOCAL.16에 입력한 패스워드가 들어있는 것으로 볼 수 있다.

Name에 a와 Password에 1을 입력하였을때

CMP 부분에서 EAX에 있는 1과 스택에 있는 49EA7457과 비교하는 것을 볼 수 있습니다.
 49EA7457를 십진수로 변경해보면. 1240101975가 나옵니다.





댓글 없음:

댓글 쓰기