人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統 > 網絡技術教程 > 詳細頁面

9行代碼導致系統崩潰的區分整理

9行代碼導致系統崩潰的區分整理

更新時間:2020-12-15 文章作者:未知 信息來源:網絡 閱讀次數:

網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。
目前很多地方都轉載著利用9行代碼史windows崩潰的文章,不過我發現沒有關于為什么會使windows崩潰的分析。我先把原文給大家看看。然后把具體的細節說一下。

  微軟一直聲稱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系統出現藍屏錯誤。

  但愿微軟趕快修補這一漏洞。同時提醒大家,此代碼只可用于研究,不得用于任何非法勾當。
  

  以上是網上紛紛轉載的原文。

關于為什么會導致錯誤,就在看下面的分析吧。

\b是退格
代碼是用退格符把console里的光標退成null,
然后顯示任一字符(除\t),即崩潰.
但是一般情況\b是不能退出規定的區域的,
而如\b的前一個字符是\t則可以退出規定的區域(bug?).
雙擊運行時,系統將新建一個console,所以我們的顯示在console
的左上角,我們只需兩個\b就可退出屏幕(第一個吃掉\t).
原因是win32子系統意外中止導致系統崩潰.smss是windows系統建立的第一個用戶進程,他的工作之一是建立csrss和winlogon進程,然后一直等待這兩個進程的句柄,如果這兩個進程意外中止,
smss將導致系統崩潰.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進程在處理這個請求過程中出錯了.


網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 磐石市| 佛坪县| 申扎县| 肃宁县| 武功县| 武宁县| 始兴县| 孟津县| 博兴县| 长汀县| 北辰区| 临西县| 扬州市| 伊金霍洛旗| 德兴市| 博客| 洞口县| 石台县| 静宁县| 南乐县| 高台县| 苏州市| 蒙山县| 台南县| 大悟县| 屯留县| 湖口县| 萝北县| 罗山县| 苍溪县| 紫金县| 保山市| 新龙县| 攀枝花市| 南岸区| 洛宁县| 鸡泽县| 琼中| 西贡区| 博白县| 嘉峪关市|