WEB_HACKING/Reversing.kr
Reversing.kr - Easy Keygen
harry595
2020. 6. 13. 17:28
이번 문제는 터미널에서 name을 입력받고 특정 알고리즘을 통해 key를 만드는 keygen 문제다.
대충 사악 보면 Input Name 후 scanf가 있다.
그 후 ecx에 10,20,30, edx에 input한 값을 집어 넣고 xor을 한다.
abcdefgh를 넣었다고 가정할 때
그렇게 10 xor a, 20 xor b , 30 xor c, 10 xor d ~ 의 방식으로 xor를 열심히 한 후
아래와 같은 특정 주소에 xor한 값을 저장한다.
그 후에 input serial이 나올때 까지 f9를 통해 돌린 후 값을 입력하고 enter를 누르기 전에
위와 같은 알고리즘으로 만들어진 값에 hardware bp를 걸고 돌리면 아래와 같은 구문을
확인할 수 있는데 dl에는 내가 만든 serial이 들어가고 [esi]에는 입력한 serial이 나와 비교한다.
이를 통해 name을 찾을 수 있는데 시리얼 값은 문제의 요구 조건인 5B134977135E7D13이므로
input name 길이가 8이 되야 한다는 것을 알 수 있다. 따라서 1020301020301020과 해당 시리얼 값을
xor하면 name의 hex값을 얻어낼 수 있다는 것을 알 수 있다.