제출 코드는 두 가지로 구성됩니다. 1. 가장 크리스마스트리다운 프로그램 (C code) 2. IDAPython 플러그인 (Python code)
제출 코드 1. 가장 크리스마스트리다운 프로그램
안녕하세요 푄님들! 우리가 개발하고 있는 수많은 프로그램들은 사실 트리와 닮았다는 것, 알고 계셨나요?
프로그램의 구조는 추상 구문 트리(AST, Abstract Syntax Tree)[1]구조를 따르고 있습니다. 예를 들어 흔히 사용하는 토렌트 프로그램 utorrent.exe 의 AST를 확인해 볼까요?
utorrent 프로그램의 AST
바이너리 트리가 맞긴 한데... 흠..🤔 우리가 생각하는 크리스마스 트리 모양은 아니죠? 우리는 크리스마스 트리를 보고 싶은데 말예요.
프로그램의 구문을 적절히 조합하여 설계하면 크리스마스트리 AST를 볼 수 있습니다!
그러면 크리스마스 트리를 만들기 위해서는 어떻게 해야 할까요? 1. 먼저 if-else 구문을 적절히 사용해야 합니다. 이건 트리의 이파리들을 만들어 준답니다. 2. 컴파일러 최적화를 고려하여 프로그램을 작성해야 합니다. 최적화 과정에서 사라져버리는 이파리가 없도록 주의해야 해요.