Pwnablekr_Toddlers Bottle_flag

링크를 따라가면 ELF 실행 파일을 받을 수 있다. 이번 문제는 리버싱 문제이다.

readelf로 ELF헤더를 읽어보면 64비트 ELF 파일임을 알 수 있다.

실행하면 이와 같은 메시지를 띄운다. malloc하고 malloc한 곳에 strcpy를 할 것이라고 한다.
그렇다면 strcpy를 한 후에 메모리에 있는 값을 읽어보거나 strcpy하는 문자열의 주소를 찾아보면 되겠다.

DIE 툴을 이용하여 분석해보면 패킹이 적용되어 있다는 것을 알 수 있다. UPX 패킹이 적용되어 있으므로 언팩한다.

언팩한 ELF를 IDA에 올렸다.

IDA의 proximity browser로 전체적인 구조를 확인해보았다.

main 함수의 내용이다.
puts - malloc - sub_400320 순서로 호출된다.
sub_400320은 strcpy이다.
flag라고 이름붙인 문자열을 복사한다.

문자열을 찾아가 보았다.
해당하는 문자열, 즉 flag는 UPX...? sounds like a delivery service :) 이다.
tags: writeup, pwnable, elf file, linux, c lang, reversing, packing, upx packer, x86asm