2015. 5. 1. 09:19ㆍSecurity ★ Development/Reversing
http://codeengn.com/challenges/advance/08
Problem : What is Name when the Key is 5D88-53B4-52A87D27-1D0D-5B09
Hint : The name is 2 letters and it could be either alphabetic or numeric.
Verify your solution with the MD5 value of the Name(in CAPITALS).
문제에선 2글자라고 했는데 3글자 이상을 입력하지 않으면 Please Enter... 메시지가 뜹니다. 이 부분을 바꿔줍니다.
그리고 여기 CALL 부분을 지나면 key가 생성되므로 이부분을 중점적으로 봐줍니다.
위가 입력값으로 Key를 만드는 부분이고 아래가 key를 조합하는 부분입니다.
문제를 풀기 위해선 입력값에 대해 각각 어떻게 키들을 생성하는지 알아야합니다.
Co를 넣었을 때는 1938-749C-C2821EBB-E023-F94E라는 키를 생성합니다. 이를 바탕으로 각 생성 알고리즘을 찾습니다.
첫 번째 부분입니다. 위 루프를 통과하면 edx앞 4자리에 1938이 들어있습니다. 어떤 알고리즘을 통해 1938을 만들어내는 2자리 값은 하나일 수도 있고 여러개일 수도 있습니다. 5개를 전부 찾아야 할 수도 있지만 첫번째 알고리즘으로만 해결되길 기대하면서 복원해봅니다.
1938에대한 값을 찾아보면 Co가 나오는 것을 확인 할 수 있습니다. 그럼 문제 키인 5D88에 대해서 찾아봅니다.
C6이 나왔습니다. 이 값을 넣어보면
'Security ★ Development > Reversing' 카테고리의 다른 글
리버스엔지니어링 문제 Advance 10 (0) | 2015.05.03 |
---|---|
리버스엔지니어링 문제 Advance 9 (0) | 2015.05.02 |
리버스엔지니어링 문제 Advance 7 (3) | 2015.04.27 |
리버스엔지니어링 문제 Advance 6 (0) | 2015.04.19 |
리버스엔지니어링 문제 Advance 5 (0) | 2015.04.17 |