时至暑假,好好回忆下上个学期ICS课程中CSAPP那本书上的6个lab。
Lab 1 : 位运算
貌似没什么好说的,学会SVN提交代码,然后就是智力题了。当时不清楚规则以为有30分是比谁的操作符少,最后几个人丧心病狂到用离散的知识,语法的顺序,简化操作符,最后总数竟然从120+到了90+...最后发现只要下于规定个数就是满分,sign~。不过在简化的过程中还是略有所得的。
Lab 2 : 二进制炸弹
加深对汇编的理解,根据汇编代码推测程序要干的事情,所谓的”逆向工程“,或许破解大概就是这种过程吧。难度不是太大,一步一步慢慢推敲都能搞定,乐趣是在过程中用gdb修改寄存器各种jump过关以及一个叫”卓神“的人在发送给服务器信息之前用gdb修改信息篡改别人的分数,其乐无穷。
Lab 3 : BufferOverflow
一个原来黑客攻击的方法,加深对栈的理解,这个lab算栈的位数打草稿,意思感觉不是很大。
Online Test:
Lab2和Lab3的上机测试,Lab2和Lab3老老实实自己做过的人一般都没什么问题,但是我Lab2跳过,在test过程中除了Secret phase的跳了服务器报错吓出一身冷汗,还好在之后只跳secret phase成功过了。
Lab 4:模拟器
开始觉得工程量很大,其实后来发现就是按部就班写代码,很轻松,不怎么说了。
Lab 5:编译器
慢慢上手,难点