我第一次真正意识到自己遇到瓶颈,不是在平时做题的时候,而是在一次线上面试里。
当时我嘴上说自己已经学到堆利用、UAF 之类的内容,但真正面对一道并不复杂的栈溢出题时,还是做不出来。那一刻我才发现,自己以为已经掌握的东西,其实并没有沉到能独立解决问题的程度。
我的问题出在哪
问题不只是“不会做题”,更是学习方式出了偏差。
在 AI 和现成 WP 的辅助下,我逐渐养成了一种很危险的习惯:一旦卡住,就直接去看答案、去问模型,而不是先把题目本身真正吃透。久而久之,思考过程被外包了,剩下的只是“看懂了别人怎么做”,却不是“我自己能做出来”。
这会带来一个错觉:好像学了很多,实际上真正能调用出来的东西并不多。一旦题目稍微拐一下弯,就会立刻暴露出来。
这段时间也并非毫无收获
虽然结果不理想,但也不能简单地说这段时间白学了。
至少我已经开始理解 ELF 文件的组织方式,理解函数调用、栈帧、寄存器和程序运行时的一些基本结构,也对栈、堆这些原本很抽象的概念有了更具体的认识。这些东西不是没有价值,只是离“真正会用”还差一段距离。
接下来怎么学
我打算先把心态放正。
与其急着往前追新的名词、新的利用手法,不如先承认自己还只是初学者,然后把最基础的部分重新过一遍。把 ret2text、ret2libc、栈溢出、格式化字符串这些内容重新做扎实,比继续追着更复杂的题型跑更重要。
接下来要做的不是“看过更多 WP”,而是:
- 多自己调试
- 多自己写 exp
- 多自己复盘题目的关键点
- 卡住时先思考,再去看资料
结语
我并不是完全没有在前进,只是前进的方式出了问题。
现在发现这个问题,还不算晚。后面把节奏放慢一点,把基础打牢一点,下次再遇到类似的题,我希望自己给出的不再是“我看过”,而是“我能做”。