当前位置:
首页 >
用过C#的朋友可能认为它是一种十分安全的语言,其实C#也可以做到经典的缓冲区溢出。 本文章将用一个实例来描述C#究竟是如何发生缓冲区溢出的! 首先建立一个C# Console工程,并开启工程的“允许
发布时间:2023/11/30
67
豆豆
生活随笔
收集整理的这篇文章主要介绍了
用过C#的朋友可能认为它是一种十分安全的语言,其实C#也可以做到经典的缓冲区溢出。 本文章将用一个实例来描述C#究竟是如何发生缓冲区溢出的! 首先建立一个C# Console工程,并开启工程的“允许
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
用过C#的朋友可能认为它是一种十分安全的语言,其实C#也可以做到经典的缓冲区溢出。
本文章将用一个实例来描述C#究竟是如何发生缓冲区溢出的!
首先建立一个C# Console工程,并开启工程的“允许不安全代码”选项
键入代码:
[csharp] view plaincopy print?
程序在找到‘A’的ASCII码后跳出循环。
其实程序的原理是:
p指针指向int数组的第一个元素,指针每次增加一个int的内存空间,由于数组的大小为1,所以两次循环后就溢出并指向在其前面的内存变量。最终找到ori所在的内存地址。
下面我们尝试修改ori的值,将其从‘A’修改为‘!’,there we Go:
这样修改代码:
经过这样的修改,再次运行:
可以看到ori被彻底修改为‘!’了。如果用这种方式将函数的地址进行修改就可以达到执行远程代码的目的了。
总结
以上是生活随笔为你收集整理的用过C#的朋友可能认为它是一种十分安全的语言,其实C#也可以做到经典的缓冲区溢出。 本文章将用一个实例来描述C#究竟是如何发生缓冲区溢出的! 首先建立一个C# Console工程,并开启工程的“允许的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 在使用win 7 无线承载网络时,启动该
- 下一篇: C#怎么用代码模拟手机去访问手机网站抓取