北邮 软件安全实验1
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件安全实验
北京邮电大学信息安全系 张淼
zhangmiao@bupt.edu.cn
软件安全试验一
实验目的
学习OllyDbg基本使用知识 通过破解一个认证小程序学习与理解软件
安全漏洞的基本原理
理解PE程Leabharlann Baidu运行原理
进入虚拟机
打开VM workstation或vmplayer
点击文件->打开->选择我们要使用的WIN2000的VMX 文件
运行ollydbg
反汇编后的结果,形成的汇编语言处在ollydbg的左上角
运行ollydbg
寄存器的值的情况,处在ollydbg的右上角
运行ollydbg
内存的地址和数据的值,处在ollydbg的左下角
运行ollydbg
堆栈窗口,显示堆栈的地址和相应的数据,处在ollydbg的右下角
运行ollydbg
说明我们通过改变判断条件修改了程序执行的顺序
,得到了我们想要的结果
验证修改后的程序
Thanks! Q&A
右键点击我们要修改的语句
选择二进制->编辑
我们会看到这个语句的操作码,74代表着JE 我们把74修改为75(代表JNE) 我们就成功把这个汇编语言进行了修改。
修改分支判断
修改分支判断
验证修改后的程序
我们将内存中的汇编语句进行修改后,我们再来接
着运行下程序 点击运行,我们现在在输入框中输入正确的密码, 观察程序反应,发现程序提示我们输入密码错误 ! 然后我们随便输入一个错误的密码,程序提示正确 ,并自动退出
congratulations 两个字符串,他们所代表的是两个互斥的结果。 而判断密码是否正确的判断就是这句话 JE TEST SHORT ********(不同的环境可能会不同) 我 们 来 修 改 下 这 个 条 件 , 将 它 改 成 JNE TEST SHORT***
password 和
修改分支判断
生成工程
之后再新建->文件->C++ Source File
右侧设定好添加到的项目 ( 我们刚才新建的项目 ), 文件名和路径
完成新建文件后,在新建的文件下编写或复制刚才 我们看到的 crackme 程序,然后点击右上的红色 感叹号执行
生成工程
生成工程
运行程序
程序运行后我们简单的测试一下
输入错误的密码,看判断是否正确
点击上面的执行按钮,播放的图标的那个按钮,开
始运行程序 可以进行若干的密码尝试,假如要是输入了正确密 码则程序自动结束 我们可以再继续打开这个exe来执行 当输入一次错误的密码后,我们看 ollydbg 的调试 走到了判断的区域,我们可以着重看这部分的代
码
运行ollydbg
修改分支判断
我 们 可 以 看 到 incorrect
之后我们就可以在虚拟机内进行操作了
进入虚拟机
研究代码
用VC打开概述实验文件夹下的stack_show.c的文件
点击桌面上的VC的快捷方式,点击文件->打开->选 择“概述实验”文件夹下的crackme.c的文件
先对 c 文件中的代码进行研究,弄懂之后可以编译 成工程运行或者先绘制程序的结构图(流程图)
输入正确的密码看,看能否出现成功的提示
简单测试完毕后关闭程序,也可以关闭VC
运行程序
运行ollydbg
打开 ollydbg 的文件夹,打开 ollydbg 的可执行 exe
文件
然后点击文件 -> 打开 -> 选择我们刚才编译生成的 exe文件
这个exe文件在我们项目文件夹下的Debug文件夹下
运行ollydbg
研究代码
生成工程
在 VC 中 , 点 击 新 建 -> 工 程 (projects)-> 选 择
projects类型为win32 console application
右上角设置好project的名称和存放路径
点击确定新建项目 -> 选择 empty project-> 新建项 目完成
生成工程
北京邮电大学信息安全系 张淼
zhangmiao@bupt.edu.cn
软件安全试验一
实验目的
学习OllyDbg基本使用知识 通过破解一个认证小程序学习与理解软件
安全漏洞的基本原理
理解PE程Leabharlann Baidu运行原理
进入虚拟机
打开VM workstation或vmplayer
点击文件->打开->选择我们要使用的WIN2000的VMX 文件
运行ollydbg
反汇编后的结果,形成的汇编语言处在ollydbg的左上角
运行ollydbg
寄存器的值的情况,处在ollydbg的右上角
运行ollydbg
内存的地址和数据的值,处在ollydbg的左下角
运行ollydbg
堆栈窗口,显示堆栈的地址和相应的数据,处在ollydbg的右下角
运行ollydbg
说明我们通过改变判断条件修改了程序执行的顺序
,得到了我们想要的结果
验证修改后的程序
Thanks! Q&A
右键点击我们要修改的语句
选择二进制->编辑
我们会看到这个语句的操作码,74代表着JE 我们把74修改为75(代表JNE) 我们就成功把这个汇编语言进行了修改。
修改分支判断
修改分支判断
验证修改后的程序
我们将内存中的汇编语句进行修改后,我们再来接
着运行下程序 点击运行,我们现在在输入框中输入正确的密码, 观察程序反应,发现程序提示我们输入密码错误 ! 然后我们随便输入一个错误的密码,程序提示正确 ,并自动退出
congratulations 两个字符串,他们所代表的是两个互斥的结果。 而判断密码是否正确的判断就是这句话 JE TEST SHORT ********(不同的环境可能会不同) 我 们 来 修 改 下 这 个 条 件 , 将 它 改 成 JNE TEST SHORT***
password 和
修改分支判断
生成工程
之后再新建->文件->C++ Source File
右侧设定好添加到的项目 ( 我们刚才新建的项目 ), 文件名和路径
完成新建文件后,在新建的文件下编写或复制刚才 我们看到的 crackme 程序,然后点击右上的红色 感叹号执行
生成工程
生成工程
运行程序
程序运行后我们简单的测试一下
输入错误的密码,看判断是否正确
点击上面的执行按钮,播放的图标的那个按钮,开
始运行程序 可以进行若干的密码尝试,假如要是输入了正确密 码则程序自动结束 我们可以再继续打开这个exe来执行 当输入一次错误的密码后,我们看 ollydbg 的调试 走到了判断的区域,我们可以着重看这部分的代
码
运行ollydbg
修改分支判断
我 们 可 以 看 到 incorrect
之后我们就可以在虚拟机内进行操作了
进入虚拟机
研究代码
用VC打开概述实验文件夹下的stack_show.c的文件
点击桌面上的VC的快捷方式,点击文件->打开->选 择“概述实验”文件夹下的crackme.c的文件
先对 c 文件中的代码进行研究,弄懂之后可以编译 成工程运行或者先绘制程序的结构图(流程图)
输入正确的密码看,看能否出现成功的提示
简单测试完毕后关闭程序,也可以关闭VC
运行程序
运行ollydbg
打开 ollydbg 的文件夹,打开 ollydbg 的可执行 exe
文件
然后点击文件 -> 打开 -> 选择我们刚才编译生成的 exe文件
这个exe文件在我们项目文件夹下的Debug文件夹下
运行ollydbg
研究代码
生成工程
在 VC 中 , 点 击 新 建 -> 工 程 (projects)-> 选 择
projects类型为win32 console application
右上角设置好project的名称和存放路径
点击确定新建项目 -> 选择 empty project-> 新建项 目完成
生成工程