Tuuna Computer Science

[Reversing.kr] Easy_ELF 비밀번호 찾기 (리버싱) 본문

Reversing

[Reversing.kr] Easy_ELF 비밀번호 찾기 (리버싱)

GuTTe 2018. 4. 15. 12:52
[Reversing.kr] Easy_ELF 비밀번호 찾기 (리버싱)

reversing.kr에서 받을 수 있는 쉬운 문제인 Easy_ELF를 풀어볼 것이다. 



먼저 이 실행파일을 IDA로 디버깅해보자 

main함수부분에 cmp eax, 1를 발견할 수 있다. 

이는 eax값이 1이냐 아니냐의 차이로 1이면 sub_80484f7주소로 

틀리면 Wrong을 내보낸다. 

syb_80484f7주소로 들어가보자 


Correct를 내보낸다. 

이제 본격적으로 비밀번호를 찾아보자 




일단 eax의 값을 1이냐 0이냐로 세팅해주는 

 sub_8048451주소로 들어가보자 




그 주소로 들어가보면  많은 XOR과 CMP를 볼 수 있다 

일단 CMP주로 보자

첫번째로 볼것은 byte_804A021메모리주소에 들어있는 값을 eax에 넣은 다음 
cmp al, 31h('1')과 비교하고 있다. 

즉 804A021의 주소에 들어있는값은 1이다 

다음은 byte_804A024주소에 들어있는 값을 eax레지스터에 넣고 
비교하고 있다. 

즉 804A024에 들어있는 값은 X다 

다음은 XOR연산을 봐야하는데 

자세히 보면 어떤값을 eax레지스터에 넣고 그값을 xor연산후 다시 레지스터에 넣고 있다. 

이를 이용해서 xor연산을 직접 해보면 값을 얻을 수 있다 

좀 더 자세히 설명하자면 



xor연산을 통해서 7Ch 78h 0DDh가 나왔으므로 저 값을 이용해서 xor하면 나온다

Comments