Windows上的缓冲区溢出攻击导致访问冲突
发布时间:2020-12-14 02:07:41 所属栏目:Windows 来源:网络整理
导读:我刚刚开始研究 buffer overflow攻击是如何工作的,并尝试使用Visual C 2010模拟对Windows 7的攻击.缓冲区溢出攻击是非常人为的,它只是将返回地址覆盖到“缓冲区”局部变量的地址.缓冲区包含shellcode字符串. 无论我是否在Visual Studio 2010 Debug中运行程序
我刚刚开始研究
buffer overflow攻击是如何工作的,并尝试使用Visual C 2010模拟对Windows 7的攻击.缓冲区溢出攻击是非常人为的,它只是将返回地址覆盖到“缓冲区”局部变量的地址.缓冲区包含shellcode字符串.
无论我是否在Visual Studio 2010 Debug中运行程序,程序都会跳转到shellcode并几乎开始执行它,但是我遇到了Access Violation错误,程序将不会继续执行shellcode. 为什么我收到此错误?这是否可以防止Windows中的缓冲区溢出? 你如何让程序在缓冲区中执行shellcode? 编辑: 汉斯(回答)是对的.这在Windows Internals 5th的安全章节中讨论,错误的原因是Microsoft的Executable Space Protection实现. 如果这个问题对任何人都有帮助,那么任何赞成票都会受到赞赏 void execute_my_shellcode() { char buffer[24]; memcpy(buffer,"x6Ax21xFFx15x40x62x40x00x83xC4x04x6Ax0AxFFx15x40x62x40x00x83xC4x04xC3",24); printf("current return address: %pn",*(int*)((char*)&buffer + 24 + 4)); *(int*)((char*)&buffer + 24 + 4) = (int)&buffer; printf("return address is now : %pnn",(int*)*(int*)((char*)&buffer + 24 + 4) ); } 解决方法
这可能在10年前就有效了.这些明显的安全漏洞已被修补,现在处理器支持的
no-execute bit是对策之一.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 用于临时阻止远程用户在停机期间登录Windows服务器的脚本
- 用于Unity(windows\iOS\安卓)的纯C版LZMA压缩算法库
- .net – Microsoft.Scripting.Core.dll在哪里?
- Windows Workflow Foundation(WF)的最佳资源是什么?
- windows-server-2008 – 如何使用PowerShell脚本来更改SQL
- Windows:调整共享内存大小
- .net – Windows XP和7之间发生了什么变化,导致我的Mono C#
- windows-server-2008-r2 – 在Windows Server 2008 R2下查看
- windows-phone – Windows Phone appBar在键盘上方添加额外
- Windows支持Jane Street OCaml Core?
推荐文章
站长推荐
- x86 – 如何在Windows上解决GHC错误“Unknown PE
- windows-installer – installshield和windowsin
- Skype for Business Server 2019公开预览版发布
- windows-server-2003 – 将SQL Server监控与CPU-
- windows – 从txt中扫描所有文件夹和子文件夹(带
- 如何强制执行Office 365自定义“角色分配策略”默
- windows – 甚至在MessageBox期间应用程序GetMes
- lisp – 试试Windows中“The Little Schemer”一
- Windows键击/组合你不能没有
- 从Windows机器提交时,Mapreduce作业失败
热点阅读