상세 컨텐츠

본문 제목

[HackCTF-Reversing#3] Handray - 100 points

Reversing/HackCTF

by bing_su 2021. 1. 3. 05:40

본문

반응형
SMALL

HackCTF reversing에서 세 번째 문제는 Handray이다.

 

파일 포맷을 확인해 본 결과 ELF 64bit 실행 파일이었다.

 

파일을 실행시키기 전 권한을 부여해 주자. 이 권한에 대해 자세한 내용은 여기서 다루겠다.

파일을 실행시키면 바로 flag를 뛰어넘었다는 문구가 뜨면서 프로그램이 종료된다. IDA로 분석을 해 보자.

main 함수 부분을 먼저 살펴보자.

애초에 설정된 것이 loc_40058D로 점프해 flag를 뛰어넘고 프로그램이 종료되고 있음을 확인할 수 있다. 따라서 저 부분으로 점프하지 못하게 분기문을 수정해 주면 될 것 같다.

gdb로 본 main 함수 부분이다. 

이 부분이 문제의 부분이다. <main+103>의 위치로 가게 되면 flag를 뛰어넘었다는 문구를 출력하면서 프로그램이 종료되므로 아래와 같이 [rbp-0x4] 값을 0x0으로 설정해 주면 <main+103>으로 점프하지 않는다.

분기문에서 <main+103>으로 점프하지 않으면 loc_400571 부분에서 반복문을 돌아 플래그를 구하고, 플래그를 출력하게 된다. 이 반복문에서는 string 배열과 array 배열, 2개의 배열을 이용한다. 두 배열의 값을 더한 값을 다시 string 배열에 넣어 flag가 출력된다. 이제 flag가 어떻게 출력되는지 알았으니 프로그램을 실행시켜 보자.

플래그를 성공적으로 구할 수 있고, 인증해 주면 된다.

반응형
LIST

관련글 더보기

댓글 영역