ruberman
驱动牛犊
驱动牛犊
  • 注册日期2003-04-08
  • 最后登录2011-04-06
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望15点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
阅读:3353回复:6

初学者问题

楼主#
更多 发布于:2007-08-03 17:30
小弟初学溢出,算是很晚了。希望斑竹不吝赐教。

目前正在阅读入门的教程,遇到了一些问题。
Windows 2000缓冲区溢出技术原理(http://blog.csdn.net/codeshell/archive/2005/04/25/361690.aspx
的第二部分给出了一个自己制造的溢出的例子。
在我本机上,我运用作者给出的方法在msvcrt中寻找jmp esp。但是很不幸,没有找到。不知道作者是怎么找出来的0x78024e02

更让我郁闷的还不止这个问题。
我用user32代替msvcrt,寻找到jmp esp地址后运行成功。突然试了一下直接把0x78024e02换进去,没想到也运行成功了。不知道为什么会出现这种情况。

可能问题对高手来说比较简单,但是现在它就是我的拦路虎,请大家给我一个详细的解释,谢谢!


gyzy1986
论坛版主
论坛版主
  • 注册日期2007-03-26
  • 最后登录2008-09-29
  • 粉丝0
  • 关注0
  • 积分332分
  • 威望36点
  • 贡献值0点
  • 好评度33点
  • 原创分2分
  • 专家分0分
沙发#
发布于:2007-08-03 17:45
0x78024e02所对应的汇编代码是什么,有的时候可能是push esp ret,不一定完全是jmp esp.
http://www.gyzy.org 已关闭
ruberman
驱动牛犊
驱动牛犊
  • 注册日期2003-04-08
  • 最后登录2011-04-06
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望15点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-08-03 17:53
BYTE* ptr = (BYTE*)h;
bool done = false;
for(int y = 0;!done;y++)
{
try
{
if(ptr[y] == 0xFF && ptr[y+1] == 0xE4)
{
int pos = (int)ptr + y;
cout<<"OPCODE found at 0x"<<hex<<pos<<endl;
}
}
catch(...)
{
cout<<"END OF "<<dllname<<" MEMORY REACHED"<<endl;
done = true;
}
}
看代码的话是在搜索ff e4。就是jmp esp吧。
但是在我的机器上没有找到。
windows xp sp2 en
gyzy1986
论坛版主
论坛版主
  • 注册日期2007-03-26
  • 最后登录2008-09-29
  • 粉丝0
  • 关注0
  • 积分332分
  • 威望36点
  • 贡献值0点
  • 好评度33点
  • 原创分2分
  • 专家分0分
地板#
发布于:2007-08-04 20:30
英文版Kernel32下是找不到Jmp esp的,user32下好像能找到
http://www.gyzy.org 已关闭
ruberman
驱动牛犊
驱动牛犊
  • 注册日期2003-04-08
  • 最后登录2011-04-06
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望15点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-08-06 08:32
我的是在msvcrt下找,也没有找到,不知道作者怎么找到的,并且他给的地址还真的能用,感到很奇怪。
gyzy1986
论坛版主
论坛版主
  • 注册日期2007-03-26
  • 最后登录2008-09-29
  • 粉丝0
  • 关注0
  • 积分332分
  • 威望36点
  • 贡献值0点
  • 好评度33点
  • 原创分2分
  • 专家分0分
5楼#
发布于:2007-08-06 19:29
.......不会吧

你的msvcrt那个地址不能访问?
http://www.gyzy.org 已关闭
ruberman
驱动牛犊
驱动牛犊
  • 注册日期2003-04-08
  • 最后登录2011-04-06
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望15点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-08-07 09:03
不好意思昨晚有事没上来。
我用了msvcrt中的一处push esp-ret,取得了成功。看来在xp en下确实没有jmp esp。
游客

返回顶部