CSAPP大名鼎鼎了,网上许多人都完成了其独具特色的实验,特别是二进制炸弹、缓冲区炸弹等。
二进制炸弹实验,主要锻炼学习者使用反汇编工具对二进制可执行程序调试、分析的能力。学习者首先需要使用调试器调试bomb可执行文件,对其进行反汇编分析,找出炸弹逻辑,并输入正确的密码,以便顺利拆除炸弹。
由于许多学习者对Linux不熟悉、对英文不熟悉,所以存在较大的畏惧心理。据此,我依据CSAPP二进制炸弹的原理,自行设计了一个可在windows下面运行的二进制炸弹,重新设计了关卡,并进行中文提示。这个二进制炸弹,主要面向大量学生的课堂,每个学生拿到的炸弹逻辑是不同的,这样每个学生的答案应该是不一样的。
一、基本环境介绍
Windows下最好用的调试器、反汇编器,应该是IDA Pro。不幸的是,这个是一个商业软件,不过网上应该都能下到。不行的话,也可以用Ollydbg。
二、炸弹逻辑
bomb.exe的逻辑如下:
可以看到,由于随机数发生器与学号是绑定的,所以每个学生的执行路径应该都不相同。而且以后可以方便的扩展炸弹逻辑。
phase_1:简单的字符串比较(每个学生的字符串都不一样)
p