Easy_Keygen
Serial이 5B134977135E7D13일 때의 Name을 찾는 것이 문제이다.
F7과 F8을 누르다 보면 name을 입력 받는 부분을 찾을 수 있다. 그 곳에 BP를 건 후 name을 입력한다.
그러면 입력한 값이 들어가는 것을 확인할 수 있다.
그 아래에는 루프가 있다. 루프를 살펴보았다.
위의 두 MOV 명령을 통해서 ECX에는 10이, EDX에는 73이 들어간다. 그리고 ECX와 EDX를 xor한 결과가 ECX에 들어간다.
그렇게 루프를 한 번 돌면 위에서 계산한 63이라는 값이 저장된다.
그 다음에는 ECX에는 20이, EDX에는 75가 들어간다. 그리고 xor한 값 55가 63 뒤에 붙어서 6355가 저장된다.
루프는 총 5번을 돌게 되고, 635552794E라는 값이 저장된다.
그리고 이 것이 serial이 된다.
serial이 만들어지는 방법은 다음과 같다.
subin의 Hex 값인 73, 75, 62, 69, 6E를 각각 10, 20, 30, 10, 20과 xor한다. 그리고 그 값을 연결한 것이 최종 serial이 된다.
5B134977135E7D13의 name도 각각 10, 20, 30과 xor한 후, Hex 코드를 ASCII로 변환하면 알 수 있다. xor을 진행하면 4B337967336E6D33이라는 결과가 나온다. 이것을 바꾸면 K3yg3nm3이 된다.
'CTF > 리버싱' 카테고리의 다른 글
picoCTF 2018 learn gdb (0) | 2020.06.25 |
---|---|
CTFLearn PIN (0) | 2020.06.25 |
reversing.kr Easy_CrackMe (0) | 2020.06.25 |
CodeEngn(코드엔진) advance 04 (0) | 2020.06.25 |
CodeEngn(코드엔진) advance 03 (0) | 2020.06.25 |