CSAPP深入理解计算机系统实验2-二进制炸弹(Windows版本)
来源:互联网 发布:多线程编程c 编辑:程序博客网 时间:2024/06/07 15:30
CSAPP大名鼎鼎了,网上许多人都完成了其独具特色的实验,特别是二进制炸弹、缓冲区炸弹等。
二进制炸弹实验,主要锻炼学习者使用反汇编工具对二进制可执行程序调试、分析的能力。学习者首先需要使用调试器调试bomb可执行文件,对其进行反汇编分析,找出炸弹逻辑,并输入正确的密码,以便顺利拆除炸弹。
由于许多学习者对Linux不熟悉、对英文不熟悉,所以存在较大的畏惧心理。据此,我依据CSAPP二进制炸弹的原理,自行设计了一个可在windows下面运行的二进制炸弹,重新设计了关卡,并进行中文提示。这个二进制炸弹,主要面向大量学生的课堂,每个学生拿到的炸弹逻辑是不同的,这样每个学生的答案应该是不一样的。
一、基本环境介绍
Windows下最好用的调试器、反汇编器,应该是IDA Pro。不幸的是,这个是一个商业软件,不过网上应该都能下到。不行的话,也可以用Ollydbg。
二、炸弹逻辑
bomb.exe的逻辑如下:
可以看到,由于随机数发生器与学号是绑定的,所以每个学生的执行路径应该都不相同。而且以后可以方便的扩展炸弹逻辑。
phase_1:简单的字符串比较(每个学生的字符串都不一样)
phase_2:符合既定规律的六个数
phase_3:三个数
phase_4:两个数
phase_impossible:该级难度,在代码上设置了调试器检测(反调试器)、执行时间检测(反调试器)、输入代码校验(简单的异或校验)等防范措施,当然不是专业级的。学生输入的密码,实际是可执行的机器码。需要分析程序的行为,才能够顺利抵达出口。
phase_secret:隐藏任务,程序中无法直接抵达。如果学生完成了phase_impossible,那么才可能抵达此任务。
此炸弹采用lcc-win32编译器编译的。至于为什么不用VC的强大的编译器编译,主要是因为它们做了许多优化,甚至把函数名都去掉了,不方便调试啊。
炸弹下载:
http://download.csdn.net/detail/kbkpbot/9048839
- CSAPP深入理解计算机系统实验2-二进制炸弹(Windows版本)
- csapp lab2 bomb 二进制炸弹《深入理解计算机系统》
- 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_1)
- 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_2)
- 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_3)
- 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_4)
- 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_5)
- 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_6)
- CSAPP深入理解计算机系统实验datalab解析
- 【CSAPP】二进制炸弹 实验分析
- CSAPP的二进制炸弹实验
- csapp 实验二 二进制炸弹
- CSAPP(深入理解计算机系统)
- CSAPP 深入理解计算机系统 Buflab实验,缓冲区溢出攻击实验(2)
- CSAPP 深入理解计算机系统课程实验 bomb实验 反向编译 汇编(4)
- CSAPP 深入理解计算机系统 Buflab实验,缓冲区溢出攻击实验(1)
- CSAPP(深入理解计算机系统) 实验——实现shell
- 逆向工程实验---二进制炸弹(CSAPP Project)
- 后端分布式系列:分布式存储-HDFS DataNode 设计实现解析
- Java IO常见类总结
- 清理mac垃圾文件的软件
- 十三、通过浙大上机复试试题学SPFA 算法
- gdbus服务端客户端使用详解 - 客户端
- CSAPP深入理解计算机系统实验2-二进制炸弹(Windows版本)
- C程序中对时间的处理——time库函数详解<转>
- NYOJ 119 士兵杀敌(三)(RMQ)
- Android 集成支付宝SDK实现快捷支付--详解
- 玩转cpu topology
- CAN 报文信号编码规则 intel & motorola
- 【Unity】Unity物体上下反复漂浮效果
- 内存简介
- STL源码剖析 [特殊的空间配置器](内存配置stl_alloc.h)