衝突 (컴퓨팅)

위키百科, 우리 모두의 百科事典.

衝突 을 誘發하는 深刻한 에러를 겪고 블루스크린 을 보여주는 空中 電話.

衝突 [1] , 크래시 (crash), 또는 시스템 크래시 는 컴퓨터 프로그램( 應用 소프트웨어 또는 運營 體制 )이 適切하게 기능하는 것을 멈췄을 때이다. 種種 이것은 이러한 誤謬를 맞닥뜨린 後에, 影響을 받는 프로그램을 終了 하게 된다. 責任을 갖는 프로그램은 크래시 리포팅 서비스가 크래시와 潛在的으로 關聯된 仔細한 事項을 報告할 때까지 프리징 된다. 萬若 프로그램이 運營 體制 의 重要한 部分이라면 컴퓨터 全體가 크래시될 것이고 種種 커널 패닉 또는 深刻한 시스템 誤謬를 惹起한다.

많은 衝突들은 不正確하게 實行되는 單一 또는 多衆 機械 命令語의 結果이다. 典型的인 原因들은 프로그램 카운터가 不正確한 住所로 設定되거나 버퍼 오버플로 가 버그 때문에 影響을 받는 프로그램 코드의 한 部分을 겹쳐쓰는 것이다. 各 境遇에 CPU 가 데이터나 無作爲 메모리 값들에 接近하려고 試圖하는 것이 普通이다. 모든 데이터 값들이 選擇될 수 있지만 恒常 要請에 有效한 값은 아니므로 이것은 틀린 命令語 例外를 惹起한다. 때로는 이러한 데이터나 無作爲 값들이 有效한 命令語가 될 수 있다. 元本 프로그램 問題는 衝突을 惹起하는 것으로 여겨지지만, 實際 缺點은 不正確한 命令語이다. 이러한 衝突들을 디버깅하는 過程은 이벤트들의 체인을 始作하는 코드와 함께 衝突의 實際 原因에 連結하는 것이다. 이것은 種種 明白함과는 距離가 멀다; 元來 버그는 普通 프로세서에게 보여지는 完璧하게 有效한 코드이다.

애플리케이션 衝突 [ 編輯 ]

세그멘테이션 誤謬 로 因해 크래시 된 윈도우 XP 에서 프로그램을 돌리는 畵面을 보여주는 프랑크푸르트 空港

應用 소프트웨어 는 一般的으로 運營 體制에 許諾받지 않은 演算을 遂行할 때 衝突된다. 運營 體制는 그 때 例外  또는 시그널 을 그 애플리케이션에 보낸다. 유닉스 애플리케이션들은 傳統的으로 덤핑 코어 에 依한 시그널에 反應한다. 大部分의 윈도우와 유닉스 GUI 애플리케이션들은 對話 箱子를 보여주는 것으로 對應한다. 萬若 디버거가 設置되었다면 디버거를 어태치할 것인가를 묻는 옵션도 함께 보여준다. 이 行動을 "크래싱"이라고 한다. 몇몇 애플리케이션들은 에러에서 回復하고 衝突 代身 實行을 繼續하려고 試圖한다.

애플리케이션 衝突을 誘發하는 一般的인 에러는 다음과 같다:

  • 읽거나 쓰기 用으로 割當되지 않은 메모리에 對한, 애플리케이션에 依한( 세그멘테이션 誤謬 ) 또는 x86에 依한( 一般 保護 誤謬 ) 읽거나 쓰려는 試圖
  • 權限이 附與된 또는 有效하지 않은 命令語들을 實行하려는 試圖
  • 接近 權限을 갖지 않은 하드웨어 디바이스에서 I/O 演算을 遂行하려는 試圖
  • 有效하지 않은 人者를 시스템 呼出 市에 보내기
  • 애플리케이션이 接近 權限을 갖지 않은 다른 시스템 資源에 接近하려는 試圖
  • 안좋은 因子와 함께 機械語를 實行하려는 試圖: 0으로 나누기  等

웹 서버 衝突 [ 編輯 ]

웹사이트 뒤에서 소프트웨어를 實行하는 웹 서버 도 完全히 接近 不可能하게만들면서 또는 正常的인 內容 代身 오직 誤謬 메시지만 提供하는 狀態로 衝突될 수 있다.

運營 體制 衝突 [ 編輯 ]

運營 體制 衝突은 處理될 수 없는 하드웨어 例外가 發生할 때 主로 發生한다. 運營 體制 衝突은 또한 內部 正常 테스트(sanity-checking) 老職이 運營 體制가 內部 自己 一貫性을 잃은 것을 探知했을 때 發生할 수 있다.

衝突의 保安 影響 [ 編輯 ]

衝突을 誘發하는 많은 소프트웨어 버그들은 또한 任意 코드 實行 權限 擴大 에 對한 脆弱點 攻擊 이 可能하다. [2] [3]  例를 들면 스택 버퍼 오버플로는 서브루틴의 返還 住所를 有效하지 않은 값으로 겹쳐쓸 수 있으며, 이것은 서브루틴이 리턴할 때 세그멘테이션 誤謬 를 誘發한다. 그러나 萬若 익스플로잇이 返還 住所를 有效한 住所로 겹쳐쓴다면 그 住所의 코드는 實行될 것이다.

같이 보기 [ 編輯 ]

各州 [ 編輯 ]

  1. “衝突 : 知識百科” . 韓國情報通信技術協會.  
  2. “Analyze Crashes to Find Security Vulnerabilities in Your Apps” . Msdn.microsoft.com. 2007年 4月 26日 . 2014年 6月 26日에 確認함 .  
  3. “Jesse Ruderman ≫ Memory safety bugs in C++ code” . Squarefree.com. 2006年 11月 1日 . 2014年 6月 26日에 確認함 .  

外部 링크 [ 編輯 ]