又一年LCTF结束了,不知道大家是否开心。连续出了三年逆向题,每年都犯小错误,某种意义上也算是不容易了。
今年的三道题,一道(Driver)是早有预谋但码力不足,只好将题目的核心逻辑拆分出来单独出题,把CUDA运算放到另一题(Driver)中单独出题(结果还出了错,唉)。而第三道则完全是看新一季《Mr Robot》时候的一个新思路,不值一提。此外和往年不同的是,今年出题没有在防护上做太多操作——只有聊胜于无的strip。主要的重点,都放在对算法的逆向上。这和我这段时间的经历有一些关系,但也是希望能尝试一下,逆向工程这一技术如何能在传统的反病毒方向以外,从算法这一新的角度在CTF中出题。
我自己过去会陷入一个误区:难题就一定能是好题嘛?在传统领域(比如数学)是有很大可能的,一道建立在合理理论基础上的数学题如果很难,那么对适合这个分段的做题者来说,是很有可能是一道好题。CTF比赛的特点就在于,没有特别特别强的理论基础,更多的是对于实操技术的考量。在这一背景下,难题未必是好题。一个极端的例子是,服务器上跑着一个伪随机数发生器,需要选手去砸机房拿到种子获取flag。难度当然很高,但显然不是好题,因为这种题目只是为了难而难,没有什么闪光点,对选手实操能力的提高也并没有什么好处(当然,如果你主要就是砸机房的,当我没说)。
现在的我觉得,一道好题应该给做题者以思考和启发。一道好题为参赛队伍带来的不是1000分2000分,而是对一种旧技术在新场景下的应用机会探索契机,抑或是出题人和参赛选手共同完成的、对一种新技术的初步研究机会。出题人和选手绝不是对抗关系,而更像是伙伴关系,互相传递一些知识,共享进步,才使得CTF不会成为任何一方的独家舞台。如果一道题目连出题人自己都做不出来,那显然不能说是一道成功的题目。
题目是CTF竞赛的一部分,而CTF竞赛不只是为了获取分数而诞生的。当第一场Defcon 举办时,这场小型聚会的参会者们或许只是将这些对底层技术作为茶余饭后的谈资,将这些比赛看作是了解计算机技术领域的一扇窗口。或许没有人会想到二十五年后的今天,网络安全和CTF会变的的这样火爆,火爆到每个人都像是在滚烫的油锅中翻腾浮动,忍受着刻骨的疼痛,又想体验被油滴炸入天空的快感。
去年负责了LCTF的一些组织工作,赛前和赛中突生各种变故,看见了一些人,也知道了一些事。赛后暗自感叹,明年也不知道还能不能和大家一起玩。今年多亏给力的小伙伴们,有幸能和Pwnhub共同举办这次LCTF。
絮絮叨叨写了这么多,都够一篇博客了(笑)。总之还是希望各位能在CTF中找到一些快乐,能多多支持LCTF当然是再好不过的了。
能和大家一起玩,实在是很开心啊。