In Univ. (2021)
4 min read
※ 과거 일을 회상하는 글이라 일부 과장, 왜곡, 축소가 있을 수 있습니다.
1. 2021-1
PS로의 일탈
21년도는 제 기억에 그리 선명하게 남아있는 해가 아닙니다. 당시 3년 졸업을 꿈꾸던 사람이었기에 학업에 신경을 쏟았기 때문일까요? 지금 7학년을 하고 있는 걸 보면 참으로 우스운 일입니다.
다른 연도들에는 인상적인 에피소드가 1개 이상 있었는데 21년도에는 특이하게 크게 떠오르는 게 없군요. 유일하게 기억하는 건 Arcaea를 잘하고 싶어서 하루에 n시간 씩 박았던 것 정도입니다. 아마 12.3을 찍었던 것 같은데, 아쉽게도 사단장은 못 가고 별텐에서 마무리했습니다. 이 때 12.5를 찍었어야 하는데 아쉽군요.
다시 돌아와서, 1학기 때 알고리즘 과제로 PS 문제들을 풀게 되었는데 생각보다 재미있었습니다. 고등학교 때 NYPC에 한 번 참여해 본 것 말곤 알고리즘에 조예가 없었는데 이 참에 공부해봐야겠다는 생각을 가지고 POSCAT 동아리에도 들어갔습니다. 이로써 학술 동아리만 2개가 됐네요.
물론 CTF를 주력으로 뛰었지만 CTF의 Crypto가 PS랑 겹치는 부분들이 종종 있어서 좋은게 좋은거란 식으로 공부하자는 마인드였습니다.
들어갈 당시 qjatn0120, slah007, leo020630등 잘하는 사람이 이미 많았고, 제 뒤로 들어온 kwoncycle, petamingks, astilate, PLUS 동기였던 greydra_k 모두 저보다 뛰어났기 때문에 PS를 주력으로 하지 않은 건 자연스러운 현상이었습니다.
들어갈 당시에도 CTF를 주력으로 하되 ICPC를 나갈 정도로만 해볼 심산으로 PS? CP?를 시작했습니다. 당시엔 백준도 열심히 풀고 Codeforces란 사이트도 들어가서 열심히 참여했습니다만 실력이 그렇게 빠르게 늘지는 않았습니다.
그래서일까요? 어느 순간 PS를 잘 하고 싶다는 마음은 온데간데없고 다시 CTF로 복귀한 제 모습을 볼 수 있었습니다.
2. Summer Vacation
RE. Summer Camp
PS보단 CTF를 더 잘 한다는 걸 깨달은 좋은 일탈이었습니다. 솔직히 PS를 버린 건 아니지만 CTF만큼 하려면 더 어려울 것 같다는 생각이 들어 해킹이나 열심히 공부하기로 했습니다.
PLUS는 2학년 때 여름합숙 수업을 진행합니다. 그 말은 즉슨 이번 방학도 놀기엔 글렀다는 겁니다.
처음 해 보는 수업은 그리 쉽지 않았습니다. 제가 당시엔 Pwn을 그렇게 잘 알지 못한다는 이슈도 있었고, 이해가 아니라 단순 암기로 해결하는 부분도 있어서 발표 시 미숙한 부분도 많았습니다. 그 때 수업을 들으신 분들께 심심한 사과를 드립니다.
이런 경험 덕분에 정확히 어떤 부분을 잘 이해하지 못했는지 객관적으로 깨달을 수 있어서 개인적으로는 좋은 경험이었으나 수업을 듣는 입장에선 조금 힘든 부분이 있었겠다란 생각이 듭니다. 요청하시면 지금이라도 AS해 드리겠습니다. 그때보단 잘할 수 있으니...
수업을 하면서 glibc 코드도 열심히 읽고 하다 보니 실력은 확실히 많이 늘었습니다. 역시 이해의 끝은 남에게 설명할 수 있게 될 때인가 봅니다.
1. 2021-2
Learn Kernel
시스템을 하다 보니 OS를 모르면 안되겠다는 생각이 들어 OS 수업을 당겨듣겠다는 선택을 했습니다. 이건 지금 생각해도 잘한 선택 같습니다. PintOS를 짜 보니 확실히 보는 시각이 달라지더라고요. 여러분들도 시스템 해킹을 한다면 OS 수업은 빨리 듣도록 하십시오.
그리고 카이스트는 KeOS라는 게 있는데 우리 학교도 이런 게 하나 있으면 좋겠다는 생각을 했습니다. PintOS도 괜찮긴 한데, 너무 오래되서 현대 운영체제를 이해하기엔 조금 부족함이 있다는 느낌입니다. 배울게 많아진다는 건 좋은 거 아닐까요? 언제 한 번 시간이 남는다면 교육용 OS를 하나 짜보고 싶다 생각 하고 있습니다. 시간이 '매우' 많다면 말이죠.
제가 Kernel을 보기 시작한 기점이 이 때인데, OS를 배우고 나니 Kernel도 내가 아는 ELF랑 크게 다를 거 없다는 생각을 가지게 된 게 그 이유인 듯 합니다. 막상 시작하면 별거 없는데 괜히 어려울거라 예단했던 듯 하네요.
그래서 언젠가 도전해보겠다던 kpwnote를 해결한 뒤, ELF 한 두 문제 푼 다음에 CTF에 나오는 Linux Kernel 문제를 깨작거려 봤습니다. 이 당시엔 ret2usr 같은 테크닉도 CTF에 나오던 시절이라 어떻게든지 해 볼 만 했습니다. 솔직히 지금은 문제가 너무 어려워졌다고 생각해서, 커널을 배우고자 하는 뉴비들은 쉬운 문제나 강의부터 보고 와야 할 듯 합니다. 제가 하던 당시엔 바로 CTF 문제를 풀어도 크게 상관 없었는데 지금은 아닌 것 같아요.
CTFer's Dream
CTF하는 사람의 꿈이라고 하면 정말 다양하겠지만, 저는 4가지 목표가 있었습니다.
메이저 CTF에서 1문제 풀기- 메이저 CTF에서 퍼블하기
- 메이저 CTF 본선 참여하기
- DEF CON CTF 참여하기
어찌저찌 1번은 이뤘는데 당시 저로써는 2, 3, 4번 목표를 내가 CTF 하는 동안 이룰 수 있나 싶었습니다. 매주 주말에 정말로 열심히 참여했지만 퍼블은 커녕 10솔 이하 문제도 못 푸는 경우가 다반사였으니 말입니다.
그러다 Balsn CTF 2021에서 정말로 운 좋게도 언인텐을 써서 퍼솔을 땄었습니다. 이렇게 보니 지금도 Balsn CTF네요. 이정도면 Balsn이 저를 위해 CTF를 열어준게 아닐까 싶습니다 ㅋㅋㅋㅋ 돌아보니 저 CTF에서 좋은 추억이 정말로 많네요. 정말로 고마운 CTF입니다. 그렇게 2번째 목표도 어영부영 하다 보니 이루게 됐네요.
저 쯤부터 자신감이 좀 붙었습니다. 뭔가 증명했다는 기분도 들고, 0솔 문제더라도 내가 풀 수 있다는 생각이 들게 되었다고나 할까요. 실제로 이 이후로 새로운 유형이나 어려운 문제도 거리낌 없이 잡기 시작한 걸 보면 확실히 성취 경험이 중요하다는 걸 깨달았습니다.
그리고 2021년도 2학기부터 PLUS 회장을 맡았습니다. 멀리서 봤을 땐 할 게 많아보이지는 않았는데 생각보다 할 게 있었습니다. 오리가 평안하게 떠 있는 것 처럼 보여도 하루 종일 물갈퀴를 젓는다고 했는데 PLUS도 그랬나봅니다.
사실 저건 과장이 좀 섞여 있지만 아무튼 블로그 적 허용인걸로...
그리고 가장 많이 달라진 건 시험 공부 기간이었습니다. 대학교 1학년 때는 고등학교 공부할 때 처럼 3주 정도를 잡고 했는데 점점 해이해지더니 어느새 시험 전 1주만 시험 공부 기간으로 보이고 나머지는 다 자유 시간으로 느껴지더라고요. 그렇게 느껴지는 것 뿐만 아니라 실제로 그렇게 생활했습니다. 평일은 수업 듣기(?) 및 Dreamhack 워게임 풀기 + 롤한 뒤 취침이란 기본 과업을 수행했으며, 주말은 CTF를 뛰었습니다. 아주 행복한 생활이었죠.
4. Winter Vacation
RE. Winter Camp
겨울방학도 똑같습니다. 제가 수업 해야 한다는 점만 빼면요.
이하 생략입니다.
Comments
Loading...