讓 Windows 2000 /XP 掛點的 C 程式碼





ROACH
2001-10-31, 08:22 AM
我一試~果然重新開機!!

可是這段程式碼~我看起來覺得很簡單阿!!很正常阿!真奇怪!!


#include <stdio.h>

int main( void )
{
for(;;){
printf( "hung up\t\t\b\b\b\b\b\b" );
}
return 0;
}




Star69
2001-10-31, 04:19 PM
最初由 ROACH
我一試~果然重新開機!!

可是這段程式碼~我看起來覺得很簡單阿!!很正常阿!真奇怪!!


#include <stdio.h>

int main( void )
{
for(;;){
printf( "hung up\t\t\b\b\b\b\b\b" );
}
return 0;
}
for(;;) <-- 無限迴圈
就算是 Unix 也一樣掛

ROACH
2001-10-31, 04:57 PM
最初由 Star69

for(;;) <-- 無限迴圈
就算是 Unix 也一樣掛


對喔!!無限迴圈
ㄏㄏ!

Arik
2001-10-31, 06:29 PM
最初由 Star69

for(;;) <-- 無限迴圈
就算是 Unix 也一樣掛

別亂講,無限迴圈哪會掛 ? 頂多是程式沒有回應一直跑而已,
你還是可以把它砍掉,不論 winxp 或 unix。

那個程式是 visual c++ 的一個 bug,只要在 IDE 裡面執行,
整個 OS 就會 crash 並重新開機,windows 2000 已經試過了,
的確是 reboot。

就 windows 2000/xp 設計來看,這是很糟糕的,一個 ap 可以
讓整個 OS 當掉!?

Star69
2001-10-31, 09:46 PM
最初由 Arik


別亂講,無限迴圈哪會掛 ? 頂多是程式沒有回應一直跑而已,
你還是可以把它砍掉,不論 winxp 或 unix。

那個程式是 visual c++ 的一個 bug,只要在 IDE 裡面執行,
整個 OS 就會 crash 並重新開機,windows 2000 已經試過了,
的確是 reboot。

就 windows 2000/xp 設計來看,這是很糟糕的,一個 ap 可以
讓整個 OS 當掉!?
系統會高負載 資源吃光 當機 不就 "掛" <-- 又不是指 整個系統死了
形容詞 ok? 別想的太嚴重~
不過 要是 系統不當掉 這樣粉傷硬體 損耗率提高

Arik
2001-10-31, 10:51 PM
最初由 Star69

系統會高負載 資源吃光 當機 不就 "掛" <-- 又不是指 整個系統死了
形容詞 ok? 別想的太嚴重~
不過 要是 系統不當掉 這樣粉傷硬體 損耗率提高

無窮迴圈倒不至於有吃光資源的問題,比較現代的 OS,
在設計上都不會讓單一程式佔掉所有的 CPU 時間,winxp
也是,unix 也是,當然,你把它的 priority 調到最高,
整個系統就會像死了一樣,回應很慢。但不是每個人都有
權利調整 priority 到最高。

話又說回來,上述的程式,重點是在 printf 那行,而不是
for loop,你把 printf 那行改成別的,系統並不會 crash。
而且,這次的 case 是系統 reboot,並不是由於 for loop
吃光 CPU 的問題。若這個程式變成木馬,可以遠端執行,
或是變成 mail 到處寄,問題就會比較大了。

前兩天就在網路上看過這段 code,但沒有 for loop,只有
printf,狀況是只有在 vc++ ide 底下執行才會當,試過
bc++ 並不會,但加了 for loop 後,不管有沒有在 ide 下,
不管 vc++ or bc++ 做出來的,系統一律 reboot....

真希望可以趕快 fix 這個

Arik
2001-10-31, 10:52 PM
最初由 Star69

系統會高負載 資源吃光 當機 不就 "掛" <-- 又不是指 整個系統死了
形容詞 ok? 別想的太嚴重~
不過 要是 系統不當掉 這樣粉傷硬體 損耗率提高

無窮迴圈倒不至於有吃光資源的問題,比較現代的 OS,
在設計上都不會讓單一程式佔掉所有的 CPU 時間,winxp
也是,unix 也是,當然,你把它的 priority 調到最高,
整個系統就會像死了一樣,回應很慢。但不是每個人都有
權利調整 priority 到最高。

話又說回來,上述的程式,重點是在 printf 那行,而不是
for loop,你把 printf 那行改成別的,系統並不會 crash。
而且,這次的 case 是系統 reboot,並不是由於 for loop
吃光 CPU 的問題。若這個程式變成木馬,可以遠端執行,
或是變成 mail 到處寄,問題就會比較大了。

前兩天就在網路上看過這段 code,但沒有 for loop,只有
printf,狀況是只有在 vc++ ide 底下執行才會當,試過
bc++ 並不會,但加了 for loop 後,不管有沒有在 ide 下,
不管 vc++ or bc++ 做出來的,系統一律 reboot....

真希望 MS 可以趕快 fix 這個問題...

飄然似雪
2001-11-10, 06:53 PM
最初由 Arik 發表


無窮迴圈倒不至...

呼呼.......可是這段程式碼我用TC v3.0編譯出來的EXE
執行後卻不會造成windows2000和windowsXP重新reboot..........這是為啥阿?

Arik
2001-11-10, 07:23 PM
最初由 飄然似雪 發表


呼呼.......可是這段程式碼我用TC v3.0編譯出來的EXE
執行後卻不會造成windows2000和windowsXP重新reboot..........這是為啥阿?

要做出 win32 console 的執行檔,TC++ 3.0 有支援 win32 console 的程式嗎 ?
不清楚...至少 borland c++ / visual c++ 做出來的都會讓 windows 2000/xp
crash 掉。

森藍
2001-11-14, 09:19 PM
微软一直声称Windows XP多么多么稳定可靠,但日前一位名为Masaru Tsuchiyama(留在程序下方,所以应该是他的昵称)外国编程爱好者刊出了一小段C语言代码。这一只有9行的小程序如果在Windows XP/2000下运行,则可导致系统完全崩溃,并重新启动。但此程序对其他版本的Windows没有任何影响。这一产生无限循环输出的小程序的代码如下:

  #include <stdio.h>
  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系统出现蓝屏错误。

  但愿微软赶快修补这一漏洞。同时小编提醒大家,此代码只可用于研究,不得用于任何非法勾当。本站对由此产生的后果不负任何责任。

(轉輾於大陸太平洋電腦網站)