Windows of Opportunity 문제
이 대회에서 나온 첫번째 리버싱 문제이다.
리버싱이란 reverse engineering 의 약자로 역공학 이라는 뜻이다.
모든 프로그램은 개발자가 소스코드를 짜고, 그것을 컴파일해서 완성을하게 되는데
리버싱의 경우 완성된 프로그램의 동작을 분석하여 소스코드가 '어떻게 구성되었을것이다' 라는것을
추측하는 작업을 말한다.
문제설명을 보면 무슨 superior operating system 으로 만들어진 프로그램을 분석하라고 한다.
그게 바로 이 프로그램이다. 윈도우에서 돌아가는 exe 파일이다.
실행을 시켜보면 cmd 창이 하나 뜨면서 이 프로그램에서 플래그를 얻을 수 있냐?
라고 물어본다.
보통 이런 리버싱 문제들을 디스어셈블러를 이용해서 열어보면서 시작한다.
사람마다 다르지만 x64dbg, ollydbg, IDA 등 여러 종류의 프로그램들이 있다.
나는 IDA라는 프로그램을 자주 쓰는 편이다.
가장 중요한 유저인터페이스가 다른 도구들보다 압도적으로 뛰어나기 때문이다.
IDA는 이렇게 생겼다. PRO 버전도 있지만 무료버전도 쓰기엔 충분하다.
https://hex-rays.com/ida-free/
위 링크에서 무료버전을 다운받을 수 있다.
IDA를 실행시키고 문제파일을 IDA로 열어주면
별다른 노력을하지 않아도 바로 플래그가 보인다.
이 문제같은 경우 String 으로 플래그를 프로그램 내부에 저장해두고,
사용자의 입력값과 strcmp으로 비교하기 때문에 이렇게 플래그가 바로 보이는 것이다.
반응형
반응형
'CTF > 리버싱' 카테고리의 다른 글
[RiftCTF] Reversing 0x0002 - 리버싱 / IDA (38) | 2022.03.30 |
---|---|
[angstromCTF] Inputter - 리버싱 / argument (50) | 2022.03.21 |
[angstromCTF] Taking Off - 리버싱 / IDA (46) | 2022.03.15 |
[angstromCTF] Revving Up - 리버싱 / argument (43) | 2022.03.14 |
[Aero CTF] Eldery File - 리버싱 / 파이썬 (7) | 2022.03.02 |