Reversing.kr Easy ELF
by St1tch실행을 하고 아무거나 입력을 하면 Wrong이 뜬다.
IDA로 킨 후 살펴보았다.
간단한 구조로 되어있는 것을 볼 수 있다.
출력을 한 후, 2개의 함수를 거치고 eax가 1이면 Correct가 출력이 된다.
두 함수를 살펴 보았다.
첫번째 함수인데 scanf를 호출한다.
byte_804A020에 버퍼가 있다는 것을 확인한 후 다음 함수로 넘어갔다.
다음함수의 일부이다.
byte_804A020가 첫번째 글자이므로
두번째 글자는 0x31이고,
첫번째 글자와 34를 xor하고 al을 다시 그 자리에 대입한다.
세번째 글자와 32를 xor하고 al을 다시 그 자리에 대입한다.
네번째 글자와 0xffffff88를 xor하고 al을 다시 그자리에 대입한다.
다섯번째 글자가 0x58인지 확인을 한다.
byte_804A025가 0인지 확인을 하므로 총 5글자임을 알 수 있다.
다음 흐름을 보면 세번째 글자가 0x7c인지 확인,
첫번째 글자가 0x78인지 확인,
네번째 글자가 0xdd인지 확인을 한다.
따라서 1,3,4 번째 글자만 xor연산을 해주면 간단하게 나온다.
블로그의 정보
튜기's blogg(st1tch)
St1tch