間違いだらけの備忘録

このページの内容は無保証でありこのページの内容によって直接、または間接に損害を受けられたとしても私は責任を取りません。

すべてがFになる

ASIN:4062639246
読了

コンピュータ屋として読んでしまうと(システム的に)微妙な本だった
が、
シンプルかつ奇麗(すぎる)なトリックではあった。
以下ネタバレ
読んでいる最中、ケン・トンプソンのバックドアを思い出して仕方がなかった。
http://www.ebimemo.net/diary/?date=20040413#p02

もし login.c にバックドアを記述しておいたらすぐに見つかってしまうだろう。氏はCコンパイラに仕掛けを作りこんでおき、login.cをコンパイルするときに、バックドアコードを挟み込むような特殊な仕掛けを用意しておいたのだ。それにもう一案、これだけではCコンパイラソースコードを見たときにインチキが発覚してしまう。そこで、Cコンパイラコンパイルするにはコンパイラが必要だという点に着目し、Cコンパイラソースコードの中に、『"login.c を見つけたら書き換える"コードを挟み込むコード』を挟み込んだ。そしてそのコンパイラコンパイルすると、コンパイルされた新しいコンパイラにもlogin.cを書き換えるバイナリコードが含まれるようになったのだ。そうすると、コンパイラソースコードにはlogin.cを書き換えるというインチキ部分が無くても、コンパイラのバイナリの中には未来永劫login.cにバックドアを挟み込むインチキ部分が含まれるようになったのだ。

ここまで凝ると普通の人にはついて行けないトリックになってしまうか...

このページにはhatena以外のサービスからのコンテンツが埋め込まれています。 hatenaによりGoogle AdSense 広告が埋め込まれています。