본문 바로가기
Wargame Write-Up/HackCTF

[HackCTF] (Reversing) Reversing Me 풀이

by snwo 2020. 2. 29.

문제를 보면 c언어 코드 하나를 던져줍니다.

    [소스분석]

 

  1. 키를 입력하고 키의 길이가 serial의길이와 같아야한다
  2. i < strlen(serial) 과 enter[i] xor (i%2) == serial[i] 를 만족하면 i 를 증가시킨다
  3. i-1 과 enter의 길이가 같아질때까지 반복을했으면 (enter 문자열이 모두 조건에 맞는다면) 정답일세! 를 출력해준다.

    [문제풀이]

 

serial과 복호화루틴이 나와있으니 이를바탕으로 쉽게 복호화프로그램을 만들수있다. 

enter[i] xor (i%2) == serial[i] 이기때문에 serial[i] 와 (i%2) 를 xor해준다면 조건에 맞는 enter[i] 를 얻을수있다. 

이를 바탕으로 복호화프로그램을 제작하면 다음과같다

 

    [소스코드]