Mid Station

Modern Binary Exploitation

假如有一天要我写关于大学生活的回忆录,关于这一个月来的记录一定会是这样的:

申请GSoC被拒绝以后,我一蹶不振。不知是不是感应到了夏天的召唤,体内却隐隐有股洪荒之力作动,难以把持之下竟然没日没夜地沉迷网络游戏难以自拔。。。

当初结果出来后,mhils反复强调Don’t let you down by this,千叮万嘱你们年轻人不要因为一次失败就放弃啊,继续投身开源社区呀你不是一个人在战斗云云。话犹在耳边,我却沉迷另一个网络游戏中,实在是愧对各位师长殷切期望。

本着“技多不压身”的观点,我好像是从来都不在乎点错技能树的。前端后端,算法数据库逆向焊电路板,只要有什么点子能搅动混乱的大脑使它沸腾上一段时间,我都义无反顾地投身其中。那天突然想起很久以前在Github上Star的一个项目,就是叫Modern Binary Exploitation 的这么个玩意儿, 是RPI(伦斯勒理工学院)开设课程的相关材料,试着玩了一下,就上瘾了。

MBE提供了一个Warzone,就是在预设的Linux环境下安排了很多关卡,作为配合课程使用的实验平台。说白了就是搭建了一个网游服务器,各位玩家的任务是用尽学到的只是Pwn掉系统,拿到flag。好比升级打怪抢装备,一颗赛艇。

本着由浅入深的原则,关卡从基本的逆向分析开始,涵盖了内存溢出,编写shellcode,字符串格式化等内容。但到了Lab6之后,由于邪恶的ASLR(Address Space Layout Randomization)机制强势介入,难度突增。先前几个Lab好比稀松平常的远足观光,看看幻灯片查查资料足以应付。开启了ASLR的Lab就像——珠穆朗玛峰我不敢说,至少也是悬崖峭壁级别,高手们可以如履平地,而我等鼠辈只能狼狈地见一步走一步。

也是昨天才刚刚解决了Lab6的关卡,经过一番内存泄露内存溢出内存覆盖内存重写偏移值计算再内存泄露内存溢出内存覆盖内存重写,整个过程就像这句话一样难以琢磨,足足折腾了将近一个星期,终于见到了久违的$, 喜悦之情真是难以言表。对于每一个关卡我都简单写下了writeup记录,但是发布课程的教授有言在先:把答案发上网就坏规矩了哈,这就相当与剥夺了他人享受游戏的乐趣。

话虽这样说,但是你都不知道一个关卡解决不了的时候那种挠心挠肺的感觉,问baidu问google问天问地都没有线索,突然想到一个点看到胜利曙光就恨不得马上上写Exp验证。也许Exploitation变换莫测的绮丽风光就正在于此吧。:P

最后给出项目的地址:Modern Binary Exploitation以及
适度游戏益脑,沉迷游戏伤身。