pwnable.kr (flag)

c0wb3ll ㅣ 2020. 12. 3. 03:54

pwnable.kr (flag)

이번 문제는 리버싱인 것 같다. 바이너리 파일만 제공하고 있다.

wget을 이용하여 바이너리 파일을 받아오자.

flag 파일에 실행권한을 주고 실행시켜보았다.

malloc() 과 strcpy에 플래그가 있다고한다.

gdb를 이용하여 디버깅을 하려 하였으나 실패하였다.

마찬가지로 다른 디버거를 이용해도 디컴파일에 실패했다고 한다.

이유를 찾아보자.

strings 명령어를 이용하여 바이너리 파일에서 문자열만 볼 수 있다.

여기에서 제일 하단에 UPX!가 눈에 띈다.

UPX?

UPX란 패커 중 하나이다. 패커란 패킹을 해주는 도구를 말한다.

패킹?

패킹이란 실행 파일 압축을 의미한다.

패킹을 하는 이유는 다음과 같다.

  1. PE 파일의 크기를 줄이고자 하는 목적
  2. PE 파일의 내부 코드와 리소스를 감추기 위한 목적
  3. 등등

풀이

다음과 같이 grep UPX를 하면 이 파일은 UPX에 의해 패킹되었다고 알려준다.

따라서 언패킹을 진행해주면 된다.