实验1缓冲区溢出调试和Superscan、X-scan、sniffer等工具的使用.ppt

实验1缓冲区溢出调试和Superscan、X-scan、sniffer等工具的使用.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验1缓冲区溢出调试和Superscan、X-scan、sniffer等工具的使用课件

缓冲区溢出调试和Superscan、X-scan、sniffer等工具的使用实验 主要内容 实验目的 实验环境 准备知识 实验内容 实验报告 实验目的 1.掌握OllyDbg调试工具调试可执行文件的方法和步骤; 2.利用OllyDbg进行调试,观察堆栈变化,主要是esp和eip以及ebp的状态变化,在调试状态下,通过理论与实践的结合,进一步加深对缓冲区溢出的概念和原理的理解。 3.学会调试利用栈溢出,通过构造特殊字符串通过溢出的方法改变程序执行流程。 4.学习掌握Superscan的使用,并能够进行一些简单的扫描。 5.练习用X-scan来进行一些实际的扫描过程。 6.学习并掌握利用Sniffer进行简单的抓包。 实验环境 操作系统:Windows XP操作系统 需要的软件:VC ++ 6.0编程软件,OllyDbg调试工具,X-scan、Superscan、Wireshark 准备知识 # %esp 是堆栈指针寄存器,它指向当前堆栈储存区域的顶部. # %ebp 是基址寄存器,它指向当前堆栈储存区域的底部. # %eip 是指令指针(在缓冲区溢出中对我们最有用的寄存器)? 缓冲区溢出原理简介 void fun(unsigned char *data) { unsigned char buffer[BUF_LEN]; strcpy((char*)buffer,(char*)data);//溢出点 } 实验内容 首先安装提供的VC ++ 6.0编程软件。 1、下载使用OllyDbg,熟悉OllyDbg调试的相关命令和操作。 在/detail/costa100/754198下载OllyDbg软件,并学习使用OllyDbg调试命令。比如:运行(F9)、暂停(F12)、单步进入(F7)遇见CALL进入、单步跳过(F8)遇见CALL不进去、执行到返回(CTRL+F9)、设置断点F2等命令。 实验内容 实验内容 常用命令使用介绍: 运行(F9)、暂停(F12)、单步进入(F7)遇见CALL进入、单步跳过(F8)遇见CALL不进去 、执行到返回(CTRL+F9)、设置断点F2等命令 实验内容 2、在VC ++ 6.0中,编译以下源代码,并生成exe文件。对编译生成的可执行程序利用OllyDbg进行调试,观察堆栈变化,主要是esp和eip以及ebp的状态变化。 #includestdio.h int main() { _asm { push 0 pop eax } } 实验内容 3、在VC ++ 6.0中,编译以下源代码,并生成exe文件。对编译生成的可执行程序利用OllyDbg进行调试,找出覆盖的返回地址,并结合学习的理论知识进行分析。 实验内容 #includestdio.h #includestring.h #includewindows.h void overflow(char *buf) { char des[5]=; strcpy(des,buf); return; } void main(int argc,char *argc[]) { LoadLibrary(user32.dll); char longbuf[100]=aaaaaaaaaaaabbbbcccccccccccc; overflow(longbuf); return; } 实验内容 4、在VC ++ 6.0中,编译以下源代码,并生成exe文件。对编译生成的可执行程序利用OllyDbg进行调试,找出覆盖的返回地址,并结合学习的理论知识通过对password.txt进行修改,构造特定的返回地址,使程序进入“printf(Congratulation! You have passed the verification!\n密码输入正确的流程进行执行。 实验内容 #include stdafx.h #include stdio.h #includestdlib.h #include windows.h #define PASSWORD 1234567 int verify_password (char *password) { int authenticated; char buffer[8]; authenticated=strcmp(password,PASSWORD); strcpy(buffer,password);//over flowed here! return authenticated; } 实验内容 int main(int

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档