최대 1 분 소요

문제파악

이번 문제는 리버싱을 해야 한다는 것을 친절하게 문제에서 알려준다.

image

해당 바이너리를 실행해 보면 malloc을 한 후 strcpy를 통해 flag를 복사할 것이라고 알려준다. 이를 힌트로 문자열 검색을 통해서 함수의 진행을 파악할 생각으로 IDA를 켰다.

image

IDA로 분석을 시도 했는데.. 함수는 4개 뿐이고 내용이 심히 보기 힘들었다. 나름 분석을 한다고 시도는 했지만 분기문이 너무나도 많고 결정적으로 실행 했을 때 보여준 문자열을 찾을 수가 없었다. 하지만 뭔가 의미 있어 보이는 upx.sf.net 문자를 살펴보는데 UPX executable pecker라는 문자열을 hex view에서 확인할 수 있었다. 검색을 해보니 UPX라는 바이너리 패킹 툴이 있었고 이 툴을 사용하면 언패킹 또한 가능한 것을 알 수 있었다.

image

언패킹을 수행하면 다음과 같은 창이 뜨고 원래의 바이너리가 언패킹 되면서 수정된다. 이 수정된 파일을 IDA로 분석 해보면 아래와 같이 분석이 아주 용이한 평범한 바이너리 파일 내용을 볼 수 있다. 이제는 별 어려움 없이 플래그를 찾을 수 있다.

image

댓글남기기