1. 개요
파일과 함께 지문이 주어짐
시리얼이 5B134977135E7D13일때 이름을 구하시오.
2. 분석
먼저 CFF로 본 결과,
패킹이 되어있지 않다.
Olly로 한번 돌려보고 스택을 따라서 HxD덤프를 떠본결과
7D415E66415E가 떳다.
참고로 12글자이다. 이로 유추할수 있는게, 이름을 입력하면 키길이는 그 두배 만큼 나온다는 것이다.
그리고 나는 이곳이 키를 만드는 구간이라고 생각했다.
그럼 저부분을 역추적해서 5B134977135E7D13가 나오게 하면될것이다.
우선 키 길이는 16이므로 입력된 이름은 8글자일 것이라는 것은 알고 가자.
우리의 목표는 5B134977135E7D13을 띄우는 것이기에 일단..
HEX :
ASCII: 5 B 1 3 4 9 7 7 1 3 5 E 7 D 1 3
이름 : K???????
그럼 다음 숫자는 13+20을 한 33, 16진수로 3 까지 하면 맞다.
K3abcdef를 입력해보자.
사실 여기서 나는 특별한 규칙을 찾았다.
이곳에서 연산이 되는 것이다!!! 고로 이곳에서 BP를 걸어주고 계속 연산한 값을 추측해볼 수 있다.
그럼 3번째는 어떻게 되냐면
EDX=a ECX=30이 되었다! 여기서 XOR연산을 하면
예상대로 51이 나왔다..
그럼 이미 답은 유추할 수 있게 되었다 ㅋㅋㅋ
다시말하지만 우리의 목표는 5B134977135E7D13을 띄우는 것이기에
5B 13 49 77 13 5E 7D 13이 숫자들을 각각 10 20 30 40 50 60 70 80으로 xor를 해준다.........
인줄 알았으나 다시 돌려보면 ECX가 싸이클당 10,20,30순으로 루프한다.
다시 계산하면
5B 13 49 77 13 5E 7D 13
10 20 30 10 20 30 10 20
각 연산하면 4B 33 79 67 33 6E 6D 33
16진수 아스키 변환하면 K3yg3nm3
클리어!
'Reversing > Reversing.kr' 카테고리의 다른 글
Reversing.Kr 001 Easy Crack 풀이 (0) | 2017.07.04 |
---|