728x90

이번 ctf에서 가장 많이 풀린 리버싱 문제이다. 일단 어떤 파일인지 먼저 보자.

 

 

file 명령어를 통해 이 문제는 64비트 ELF파일임을 알았다. 이제 한번 실행을 시켜보자.

 

 

보면 flag를 입력하는곳이 있고 틀린 값이 들어오면 그냥 종료시켜버린다.

 

 

gdb-peda를 통해 종료시키는 함수를 찾았다. 일단 angr를 이용해서 풀것이기 때문에 이 주소를 적어두고 main문을 보자.

 

 

gdb-peda로 보면 0x4012aa에 보이는 func1처럼 밑으로 쭉 내리면 여러 함수들을 거치게 되어있다. 0x401277을 보면 글자수가 26글자인것을 알수있다. 일단 그걸 기억해두고 다시 내려보자.

 

 

여기부분이 일단 가장 괜찮아 보였다. 한번 코딩해보자.

 

 

이렇게 angr를 이용하여 코딩을 해주었다. angr 사용법은 나중에 자세히 포스팅 하겠다. 한번 돌려보자.

 

 

 

돌리면 저렇게 flag값이 나온다. 그런데 저게 인증이 안되었다. 그래서 happiness노래 가사를 찾고 b를 a로 바꾸어서 인증을 하니 성공했다.

 

 

이건 gdb-peda를 이용하여 푼것이고 아이다같은 디버거가 편하면 그걸로 풀어도 상관없다.

 

'ctf write-up > Codegate CTF 2018' 카테고리의 다른 글

Miro - crypto  (0) 2018.02.09
BaskinRobins31 - pwn  (0) 2018.02.09

+ Recent posts