荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: fast (快), 信区: Security
标  题: 9行代码废掉Windows XP/2000(zz)
发信站: 荔园晨风BBS站 (Sun Nov 18 14:01:37 2001), 转信

发信人: gyt (虚心), 信区: hacker
标  题: Re: 9行代码废掉Windows XP/2000
发信站: 交大兵马俑BBS站 (2001年11月14日20:46:49 星期三), 站内信件

这是某一位高手的调查结果以及个人的判断:(转载的)

  调查结果公布如下:

  #include "stdio.h"
  int main()
  {
   printf("\t\b\ba");
  }

  即可崩溃(需双击运行,命令行运行需更多的\b).

  表面原因如下:
  \b是退格符,
  首先使用退格符将console上的光标退没,
  然后显示任一字符(除\t),即崩溃.
  但是一般情况\b是不能退出规定的区域的,
  而如\b的前一个字符是\t则可以退出规定的区域(bug?).

  双击运行时,系统将新建一个console,所以我们的显示在console
  的左上角,我们只需两个\b就可退出屏幕(第一个吃掉\t).

  内在原因:
  windows subsystem system process(win32子系统) 意外中止导致系统崩溃.
  会话管理器(smss)是windows系统建立的第一个用户进程,
  他的工作之一是建立win32子系统进程(csrss)和winlogon进程,
  然后永远等待这两个进程的句柄,如这两个进程意外中止,
  smss将导致系统崩溃(进程中止时会返回进程句柄).

  win32子系统(csrss)是什么东西哪?
  windows系统号称使用一部分微内核机制就体现在这里,
  微内核机制要求操作系统将大部分功能做为进程运行在用户态,
  如mm(memory menage),fs(file system)等等,
  csrss进程就是专门负责所有win32进程和系统进行通信的进程.
  所有win32进程的系统调用都会由csrss进程帮你完成,
  但是这样做的效率太低(需要进程切换).
  所以在windowsNT从3.51升级为4.0时将许多部分从用户态移入
  核心态,win32进程的系统调用将直接进行以减少进程切换时间.
  但是仍有少量系统调用需要csrss进程完成,据我所知createprocess
  是这样的函数,所有console上的显示是这样的函数(还有其他的).

  当我们调用printf("\t\b\ba")最终将调用WriteFile API.
  WriteFile((HANDLE)7,"\t\b\ba",NULL,NULL)等同于
  printf("\t\b\ba"),7是console标准输入的句柄.

  WriteFile判断句柄类型,如是文件句柄将调用ntdll.dll中的
  NtWriteFile函数.如是console句柄将调用WriteConsoleA函数.
  WriteConsoleA函数将调用ntdll.dll中的csrClientCallServer
  函数通知csrss进程,然后调用NtRequestWaitReplyPort等待结果.
  估计是csrss进程在处理这个请求过程中出错了.

  跟踪csrss进程和系统调用VC就搞不定了,恐怕要上softice了.
  至于csrss进程怎么出的错,还是等其他高手继续吧:-)

  大家也探讨一下,到底是什么原因.



【 在 gyt (虚心) 的大作中提到: 】
: 微软一直声称Windows XP多么多么稳定可靠,但日前一位名为Masaru Tsuchiyama的外
: 国编程爱好者刊出了一小段C语言代码。这一只有9行的小程序如果在Windows XP/2000下
: 运行,则可导致系统完全崩溃,并重新启动。但此程序对其他版本的Windows没有任何影
: 响。这一产生无限循环输出的小程序的代码如下:
:   #include
:   int main( void )
:   {
:   for(;;){
:        printf( "hung up\t\t\b\b\b\b\b\b" );
:        print("hung up\t\t\b\b\b\b\b\b");
      }
  return 0;
  }
  如果去掉Print语句,此程序还会导致NT 4.0系统出现蓝屏错误。
  但愿微软赶快修补这一漏洞。同时提醒大家,此代码只可用于研究,不得用于
任何非法勾当。

--
※ 修改:·fast 於 Nov 18 14:02:32 修改本文·[FROM: 192.168.0.103]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.103]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店