9行のコードによるシステム崩壊の分析整理について
現在多くのところで9行のコードを使ってwindowsの崩壊した文章を転載していますが、なぜwindowsを崩壊させたのかについての分析はないと思います。まず原文を見せます。そして具体的な詳細を話してください。
マイクロソフトはWindowsを公言しています。 XPはどんなに安定していますか? Tuchiyamaの外国のプログラミング愛好家はC言語コードの短い部分を発行しました。このプログラムは9行しかないですが、Windowsでは XP/2000で動作すると、システムが完全に崩壊し、再起動することができます。このプログラムは他のバージョンのWindowsには何の影響もありません。この無限ループ出力を発生するウィジェットのコードは以下の通りです。
ヽoo。ツ
要点 メーン void )
{
for(;
printf "hun up\t\t\b\b\b\b\b\b\b\b\b" );
print up\t\t\b\b\b\b\b\b\b\"
)
return 0;
)
Print文を削除すると、このプログラムはNTにつながります。 4.0システムにブルースクリーンエラーが発生しました。
マイクロソフトがこのバグを早く修理してほしいです。このコードは研究にしか使えません。不法な活動には使用してはいけません。
Print文を削除すると、このプログラムはNTにつながります。 4.0システムにブルースクリーンエラーが発生しました。
以上はインターネット上で次々に転載された原文です。
なぜミスをしたのかについては、以下の分析を見てみましょう。
\bは脱退です
コードはキャンセル符でconsolie内のカーソルをnullに戻します。
その後、どの文字(\tを除く)を表示しますか?崩壊します。
しかし、一般的な状況\bは規定のエリアを脱退することができません。
また、\bの前の文字が\tであれば、所定のエリア(bug?)を終了することができます。
ダブルクリックして実行すると、システムが新しいsolieを作成しますので、私達の表示はソロで行います。
の左上隅で、私達は二つの\bだけでスクリーンを終了できます。
理由はwin 32サブシステムが突然中止されてシステムが崩壊しました。sssはwindowsシステムの最初のユーザープロセスです。彼の仕事の一つはcsrssとwindlogonプロセスを創立して、この二つのプロセスのハンドルをずっと待っています。もしこの二つのプロセスが意外に中止されたら、
smsはシステムの崩壊を招きます。csrssプロセスはすべてのwin 32プロセスとシステムの通信プロセスを専門に担当します。すべてのwin 32プロセスのシステムコールはcsrssによって完了させられます。しかし、これはプロセスの切り替えが必要なので、効率が低いです。windowsNTが3.5から4.0にアップグレードされる時、多くの部分をユーザー状態からカーネルに移行します。win 32プロセスのシステム呼び出しは直接プロセスの切り替え時間を減らすために行われます。しかし、少量のシステム呼び出しはcsrssプロセスの完了が必要です。私が知っている限り、createprocessです。
このような関数です。すべてのコンサートでの表示はこのような関数です。
私達がprintfを呼び出したら、最終的にWriteFileを呼びます。 API.
WriteFile(HANDLE)7,\\t\b\ba,NULL,NULL)は
printf(\\t\b\ba)、7はconsosolie標準入力のハンドルです。
WriteFileはハンドルのタイプを判断して、ファイルのハンドルはntdl.dllの中のを呼び出します。
NtWriteFile関数.consolieハンドルの場合はWriteConsolieA関数を呼び出します。
WriteConsolieA関数は、ntdl.dllのcsr Client CallServerを呼び出します。
関数はcsrssプロセスを通知し、その後NtRequest WaitReplyPortを呼び出して結果を待つ。
csrssプロセスはこの要求を処理する過程でエラーが発生したと推定される。
数年前に侯傑先生が分析して整理しました。話したことがないので、簡単な分析さえしていないので、彼を訳しました。 :) 注意深い人はcsrssの間違いの細い点が説明していないことを発見して、誰が時間があったら補充してください。
マイクロソフトはWindowsを公言しています。 XPはどんなに安定していますか? Tuchiyamaの外国のプログラミング愛好家はC言語コードの短い部分を発行しました。このプログラムは9行しかないですが、Windowsでは XP/2000で動作すると、システムが完全に崩壊し、再起動することができます。このプログラムは他のバージョンのWindowsには何の影響もありません。この無限ループ出力を発生するウィジェットのコードは以下の通りです。
ヽoo。ツ
要点 メーン void )
{
for(;
printf "hun up\t\t\b\b\b\b\b\b\b\b\b" );
print up\t\t\b\b\b\b\b\b\b\"
)
return 0;
)
Print文を削除すると、このプログラムはNTにつながります。 4.0システムにブルースクリーンエラーが発生しました。
マイクロソフトがこのバグを早く修理してほしいです。このコードは研究にしか使えません。不法な活動には使用してはいけません。
Print文を削除すると、このプログラムはNTにつながります。 4.0システムにブルースクリーンエラーが発生しました。
以上はインターネット上で次々に転載された原文です。
なぜミスをしたのかについては、以下の分析を見てみましょう。
\bは脱退です
コードはキャンセル符でconsolie内のカーソルをnullに戻します。
その後、どの文字(\tを除く)を表示しますか?崩壊します。
しかし、一般的な状況\bは規定のエリアを脱退することができません。
また、\bの前の文字が\tであれば、所定のエリア(bug?)を終了することができます。
ダブルクリックして実行すると、システムが新しいsolieを作成しますので、私達の表示はソロで行います。
の左上隅で、私達は二つの\bだけでスクリーンを終了できます。
理由はwin 32サブシステムが突然中止されてシステムが崩壊しました。sssはwindowsシステムの最初のユーザープロセスです。彼の仕事の一つはcsrssとwindlogonプロセスを創立して、この二つのプロセスのハンドルをずっと待っています。もしこの二つのプロセスが意外に中止されたら、
smsはシステムの崩壊を招きます。csrssプロセスはすべてのwin 32プロセスとシステムの通信プロセスを専門に担当します。すべてのwin 32プロセスのシステムコールはcsrssによって完了させられます。しかし、これはプロセスの切り替えが必要なので、効率が低いです。windowsNTが3.5から4.0にアップグレードされる時、多くの部分をユーザー状態からカーネルに移行します。win 32プロセスのシステム呼び出しは直接プロセスの切り替え時間を減らすために行われます。しかし、少量のシステム呼び出しはcsrssプロセスの完了が必要です。私が知っている限り、createprocessです。
このような関数です。すべてのコンサートでの表示はこのような関数です。
私達がprintfを呼び出したら、最終的にWriteFileを呼びます。 API.
WriteFile(HANDLE)7,\\t\b\ba,NULL,NULL)は
printf(\\t\b\ba)、7はconsosolie標準入力のハンドルです。
WriteFileはハンドルのタイプを判断して、ファイルのハンドルはntdl.dllの中のを呼び出します。
NtWriteFile関数.consolieハンドルの場合はWriteConsolieA関数を呼び出します。
WriteConsolieA関数は、ntdl.dllのcsr Client CallServerを呼び出します。
関数はcsrssプロセスを通知し、その後NtRequest WaitReplyPortを呼び出して結果を待つ。
csrssプロセスはこの要求を処理する過程でエラーが発生したと推定される。
数年前に侯傑先生が分析して整理しました。話したことがないので、簡単な分析さえしていないので、彼を訳しました。 :) 注意深い人はcsrssの間違いの細い点が説明していないことを発見して、誰が時間があったら補充してください。