문제 사이트에서 다운받은 flag파일을 헥스 에디터를 통해 열어줍니다. 그리고 내용을 확인해보면 UPX라는 단어와 ELF가 보입니다. UPX로 패킹이 되어있고, ELF 파일 형식을 가진다는 것을 알 수 있습니다. 그럼 압축이 되어있는 상태이기 때문에 언패킹을 해줘야 합니다.
위 사이트에서 UPX 패킹/언패킹을 할 수 있는 툴을 다운 받은 후에
upx 설치가 다 되면, 설치한 폴더에 가거나 환경변수에 upx파일 위치를 추가하고
./upx -d [flag 파일위치]
를 해줍니다. 여기서 -d
옵션은 언패킹 할 때 사용하는 옵션입니다. 이렇게하면 언패킹 된 파일이 나오는데 지금부터 disassemble해주면 됩니다.
main
을 확인해 보면 <flag>라고 하면서 0x6c2070
을 가르키고 있습니다. 그렇게 0x6c2070
을 까보면...
이렇게 플래그가 나오는 것을 확인할 수 있습니다.