本文写于期末考试前两天的凌晨,在复习时突有想法,故撰此文
光阴若清风,飞度寂无声。不知不觉,自己进入大学已有一年,对CTF和逆向的接触也已经将近一年。回想一年十二个月以来自己的经历,虽然不能说是单调乏味吧,至少也可以称得上是丰富多彩了,由于记性不好,所以决定写点东西来记录一下自己都干了什么,就有了这篇文章。
过往~开学:未识
去年这个时候的我应该还沉浸在考试失利的颓丧氛围中,不过也确实是不可抗因素了,谁叫我倒霉考前三天生病考试坠机呢,对CTF还完全没有概念,那时候我更多投入时间的大概是我之前一直在写、当时在写、直到现在也还在断断续续地写的游戏模组(已经大概写了四年了吧,可惜没几个东西),抑或是在捣鼓我的质数(博客左边链接里的Primegrid,纯粹的私人小众爱好),反正应该不是在B站发视频(以前还发点游戏视频和自己做的调音鬼畜,后来嫌工作量太大又没人看就渐渐放弃了),总之是完完全全没有听说过CTF的(哪怕某大型CTF比赛举办的场地就在我家附近,十八年来我和它构成的Matrix也一直都维持着完全可逆的状态),按当时的情况看,我更有可能以后会去当个程序猿。
开学~10月:偶遇
大一上刚开学时,我的家长似乎还不完全了解现在大学的真实情况,抑或是对我的能力抱有某种迷信,总觉得我似乎应该有能力成为同学里面的佼佼者,能一手抓绩点,一手抓竞赛的那种,我当时也觉得自己考的很烂,想着在大学拿出点什么来证明自己,一雪前耻。就这样,我开始了解各种竞赛(但仍然没轮到CTF,当时更想尝试的是数学建模或者算法之类的),但我渐渐发现自己貌似不是很擅长或者不是很感兴趣(本人做事完全由兴趣驱动,有兴趣的事情效率达到114514%也不是问题,没兴趣的事情属性里面效率那一栏是否能被init都是个问题),正有点拿不定主意时,可能是本人一生中最重要的、最需要感谢的人和一句话出现了——
——本人的某个室友
是的没错,我就这样和CTF相遇了,当时打的是NewStarCTF 2024,一开始的那么几天我确实是奔着学分去的,但我很快便发现我对其产生了兴趣,当时那是什么样的一种心情,我已然忘却,但我依然能够提供足量的侧面描写——我还记得我在军训时带着手机用手机打比赛、连续熬夜5个week熬到半夜两三点还在上分的样子,更忘不了我为了一个arm架构的题目去花了三天自己捣鼓出来一个qemu的能联网的armlinux虚拟机成功时的激动和成就感。不管是新领域、新知识、能通过这个结识到的新朋友甚至哪怕是超越榜上的其他人,无一不比功利性的学分有意思。参赛过程中我逐渐发现自己貌似在Reverse、Crypto和Misc这三个方向感兴趣,其中Reverse似乎更擅长,就此确定了我的方向(其实我也不切实际地想过当全栈手),当时我虽然已经有了一些写代码的基础,但是对反编译出来的东西还是如睹天书,几乎每一道题目我都需要数个小时去搞明白,因此那五周在现在的我看来和长线坐牢没区别,不知道当时是怎么撑下来的,可能这就是初识时候的兴趣和热情吧,现在已经没有了(悲)
比赛过程中认识了校内的一些同学和学长学姐等,而在校外认识了一个选手——Joker(这个byd抢了我好多一血😡)和一个出题人,这时我才知道我的信息差——学校的CTF协会在暑假就已经开始招人和培训了,而我则是开始比赛了才知道,包括比赛大群我都没进,(当时很长的一段时间我都是这种蒙在鼓里的状态,这曾引起了我不小的恐慌),再加上我有点社恐,当时的情绪其实不是很稳定(这下更不知道我是怎么坚持五周的了),总之最后比赛结束了,我以一个比较小的分差险胜我同学,拿下了我们学校的第一和总排的第五(貌似是),那时候我觉得之前的一切努力都是值得的,此外确实也算“拿出点什么”了,就此走上了CTF的道路。
11月~寒假:挫折与迷茫
众所周知,人是不擅长被从高处往低处贬的动物,因此在新生赛取得第一名并不完全是好事,毕竟新生赛题目太简单,完全不能和大一点的比赛相提并论,再加上我直到现在都有从不刷题和从不复现的恶习(我也不知道为什么,可能是当时还没形成习惯,或者还没确定好是不是真的要搞CTF,因为我家长当时有点歧视这个比赛,觉得没有数学建模和ACM正规),很快我便开始在其他比赛中受挫,这其中有大比赛也有小比赛,我在这些比赛中的表现都有一个共同点——爆零了。对于这段时间我的记忆已经趋于模糊,但我有印象即使是出于那种情况,我依然没有去做刷题练习和复现之类的工作(为什么?),同时当时还有的一个大问题就是信息差,有很多我不知道的比赛,或者说比赛开始,甚至即将结束火矢已经结束了我才知道,而这些比赛的信息往往由别人告诉我,这很快让我感到了恐慌,因此我后面采取了一个措施,在今天看来也是最重要和有用的措施之一(下文再提)。总之,我大概是以一种浑浑噩噩的状态度过大一上的下半个学期的。
寒假~4月上旬:转机、狂热、失控
到了寒假,我决定改变这一现状,当时我已知的比赛是HGAME和VNCTF、N1CTF junior,并且这三个比赛几乎是连着甚至是重合的,同时期还有明日方舟的危机合约,因此我的寒假过的格外“充实”,几乎每天从早忙到晚,甚至在VNCTF和N1CTF junior连着的那两天还出现了因体力不支累倒的情况(当时通宵了将近40小时),不过最后还是成功加入Nu1L junior了。通过加入联队我意识到了自己和其他人的差距,因此我开始打更多的比赛来弥补,在寒假的下半部分我还参加了NPC²CTF,最后成功实现了所有逆向题目的AK。开学后,我一直想着把我们学校大一这一届的同学聚起来,建立一个群去一起参加比赛来练练手并增强团队合作能力,因此成立了OTSASumuvior这个队伍(也叫星寰),并参与了GHCTF,当时我们知道的时候比赛已经到后半场将近要结束了(那时候还没有解决信息差的问题),我们当时个个像打了鸡血一样,最后硬是冲到第二名,成就感自然也很强。在那之后我们就打算一直以这个形式多去参加一些比赛,来提升我们的水平,事实证明这个方法确实有用,我们确实在后来的各种比赛中得到了历练和提升。到了4月时我已经陷入了比赛的狂热成为了赛棍,搞了两个我认为很重要的东西——一个是不断更新的CTF竞赛日程表,我开始在上面记录各种比赛,看着这个表格一天天扩大;同时我建立了一个群用于交流讨论和学习CTF,并在其中分享比赛信息,这一阶段我已经深陷了各种CTF比赛之中,并且显得有点盲目,各种比赛不论大小都参加,成了彻头彻尾的赛棍,但这很快就带了问题——
4月下旬~7月:深谷与再次思考、成长与拓宽视野
4月下旬时我和几个朋友组队参加了一个比赛,然后被彻头彻尾的坑到和被恶心到了,并且由于是线下赛导致每个人都损失巨大,那是对我的第一次打击,因为我距离那里最远,并且期待最大,甚至申请了期中考试的缓考,最后落得一个这样的结果,让我不得不开始思考:是否所有比赛都值得参加?很快另一个贯穿了整个5月上旬的比赛以它的臭名昭著和我的亲身体验告诉了我答案:当然不是,粪赛的数量并不在少数。自那以后我对CTF的热情确实被削减了不少,不过我对比赛以及题目的选择也更加明智了一些。除了国内的这些比赛,我也开始拓宽视野,投向国际比赛,不得不承认这些比赛的题目难度确实很高,一开始我只能爆零,但这时的我已经不会像之前一样逃避,我开始逐渐尝试和学习,从爆零到能做出签到再到能做出来一些更难一点的题,情况已经在一步步改善。
在做题的同时,我也开始尝试出题,在做题过程中找到并解出知识点是一回事,出题的过程中用好知识点是另一回事,在出题过程中涌现出的很多新的研究思路和设计灵感,也让我得到了成长。
至今:携永续的兴趣与热情,向着更好的明天进发
写到这里,外面的天已经开始泛亮,望着初生的太阳,我相信我能在以后的每一天都继续进步,并永葆在这里的兴趣和热情,在成长的道路上不断前行,向着更好的明天进发。
我都写了什么啊,写完自己都不敢看