generated at
The Ken Thompson Hack

Unixのオリジナルの開発者のKenneth Lane Thompsonが、Unixのコンパイラに情報を埋め込むことで、任意のUnixにloginできるようにしたもの
チューリング章を受賞した時に暴露した


登場人物は2つある
コンパイラ
Unix (ターゲット)
コンパイラ側にハックを施すことで、Unixのlogin処理を改変している
コンパイラのコード生成部分をハックする
特定の処理部分をコンパイルする時に、
予め用意したアセンブリを吐き出すようにする
セルフホストする際の根幹のバイナリにバックドアが仕込まれている
ハック済みCコンパイラバイナリ A
正常なCコンパイラコード B.c
A B.c をコンパイルして、 B を生成
この B の結果も仕込まれている
正常なCコンパイラコード C.c
B C.c をコンパイルして、 C を生成
この C の結果にも仕込まれている
...



Quineが出てきたところから理解できなくなったmrsekut
>そしてこれをコンパイルして出来たアセンブリファイル (gen_func_def_very_evil.s) をクワインになるように書き換えます。 gen_func_def という関数が出てきたら自身と全く同じ文字列を出力するというアセンブリに書き換えたものが gen_func_def_very_evil_quine.s です。
この辺がわからない
「自身」というのは何を指している?




3ページ
Thompson Hackを再現している記事
解説が具体的でわかりやすい