리버스 엔지니어링 (Reversing)/Wargame
Dreamhack(reversing) rev-basic-3
개인적으로 Dreamhack의 reversing 문제의 basic 파트 부분의 앞부분은 쉽다고 생각한다. 하지만 3번은 입문자에게 쉬운 난이도가 아니어서 풀어볼 것이다. x64디버거로 실행시키면 input 값을 받는다. IDA를 이용하면 main 부분을 좀 더 직관적으로 알아볼 수 있다. main 함수를 확인해보자. 디스어셈블 하면 친숙한 그림이 보일 것이다. Input 값을 v4에 저장하고 v4 값을 sub_140001000 함수에 실행해서 나오 값이 참이라면 Correct를 거짓이라면 Wrong을 출력한다. 그럼 이제 sub_140001000 함수를 살펴보자 0x18 = 24 번의 반복을 실행하는데, byte_140003000의 배열에 원소를 하나씩 비교하는 것 같다. 즉 함수(아규먼트1)로 실행하면..