トップ 追記

日々の破片

Subscribe with livedoor Reader
著作一覧

2021-09-20

_ ネットワークプロトコルハッカーズガイド

アスキーの鈴木さんからもらったネットワークプロトコルハッカーズガイドを読了。途中間が空いたが久々に技術書を完読した。えらくおもしろかった。

本書は、題名からはネットワークプロトコルをハックするためのガイドに見える。が、実際のところカバーしている分野はネットワークプロトコルには限定されない。どうも筆者は各種脆弱性ハンターでIEや.NET Frameworkの脆弱性をばんばん見つけていた人らしい。筆者の偉業については「まえがき」でマイクロソフトセキュリティ部隊のメンバーだったらしいキャティ・ムースリ(良くわからないからフランス語読みしてみた)という人が書いていて、これも興味深い。

カバーしている分野が広範なのは、ネットワークプロトコルをハック(解析したり介入したり)するには、パケットの構造を調べ、個々のパートをぶつ切りし、送るデータを変えてみて、中間者を入れて暗号を復号して解析して再暗号化する必要があり、そのためには送り元のプログラムが何をしているか調べ、その動作に介入し、送り先のプログラムが何をしているか調べ、その動作に介入する必要があるからだ。

早い話がコンピュータソフトウェアのバイナリーレベルでのデバッグ技術が必要なのだ。

というわけで、本書はバイナリーハックの本なのだった。しかもガイドなので、これこれするにはこういう技術が必要で、そのためのツールはこれこれで、こんな使い方をする、という内容をすごい勢いで紹介していく。そのため完全に理解するには、常に本書には書かれていない「その先」が必要となる。

とはいえガイドなので、「こんな使い方をする」を実際に試してみて自分向きではないと思えば、後回しにすれば良い。最終的には、何か不可思議な障害が発生したときに当たりをつけたり、当たりをつけるための調査をするために必要な見取り図が頭の中にできるだろう。

Binary Hacks ―ハッカー秘伝のテクニック100選(高林 哲)

(バイナリーハックという点ではオライリーのバイナリーハックも抜群だが、こちらは15年前の本なのか。とはいえELFはELFだしバイナリーはバイナリーだが、DEPやメモリカナリなどの普及は現在ならではの気がする)

本書は付録を除くと10章を約300ページにまとめている。

各章は以下の内容を持つ。

第1章は、「ネットワーキングの基礎」という題で、レイヤ構造(さすがにOSIは出てこない(物理は層ではなく切り離しているし、セッションとプレゼンテーションは捨てているので4階層)のはTCP/IP時代では正しい)とパケットのカプセル化とルーティング(重要)について解説。

第2章は「アプリケーショントラフィックのキャプチャ」で、Wiresharkを使って、までは本書のタイトルからは当然だが、続いてstrace、DTraceを使ったシステムコールのキャプチャに移る。ここまでは受動的なキャプチャだが、さらに能動的なキャプチャとしてプロクシを使った介入に進む。おれが驚いたのは現在でもSOCKS(というプロクシのためのプロトコル)が生きていることだった。知らなかった。

2章では、DTrace用に.dスクリプトの例(動く)や、C#を使った簡単なプロクシのサンプル(動く)が出てくる。いずれも断片だったりするのだが、動作させるために必要な情報は含まれている。DNSサーバー(ターゲットをブラックボックスのままにして接続先を無理やり変えるために必要)についてはC#の動作するリストもある(たかだか15行)。

第3章は「ネットワープロトコルの構造」と脱字がある(誤字脱字などについては、本日記の最後にまとめる)のはともかくとしてパケットを構成するデータ型についての解説などになる。この章はすごくおもしろい。可変長にするための方法としてWASMと同様なMSB待ちのデータは、おれにとっては今年になって(WASMが先だったが)初めて知った方法だった(JavaのUCS-2エンコードがこれに近かったかな)。さらにテキスト系としてMIMEやBase64なども本章で説明される。

第4章は「アプリケーショントラフィックの高度なキャプチャ」で、冒頭の「本書の使い方」ではスキップして読むことになっている(ということは、本書は構造的に書かれているので、位置は第4章であるべきだが、内容の詳細度では別格ということになる)。2章の深堀りなので、DHCPをだましてDNSサーバーを入れ替えたりARPに毒を入れてキャプチャを仕掛けたノードをルータに見せかけたりする方法を説明する。

第5章は「ネットワークからのプロトコルの解析」。実験台用のC#で作ったチャットアプリケーションを素材として、パケットを受動キャプチャしてプロトコルを解釈したり(そのために、Wireshark用のクラックスクリプトをLuaで記述する例が出ている)仮説を検証するために、キャプチャしたバイナリデータをPythonスクリプトで検証する(ちょうど低レベルのユニットテストコードのように目検アサートさせる)。チェックサムらしきものが本当にチェックサムか計算させたりするところは抜群。最終的にC#でリアルタイムプロトコル解析用のプロクシを開発する。この章も抜群におもしろい。

第6章「アプリケーションのリバースエンジニアリング」では、一転、実際に動作しているクライアント、サーバーをハックするために、アセンブリの基礎(なぜかx86だが元の出版年代の2017だとわかりやすさ優先でおかしくもない)、ソースコードがどうバイナリとなるかの説明(そもそもインタプリタとはコンパイラとは、のような議論は当然しない)、実行ファイルの形式の簡単な説明(PEとELF。さすがにCOFFは無い)、介在するためにソケットの基礎、IDA Freewareを使った逆アセンブルの速習(操作方法や画面の読み方解説つき)などが続く。アセンブリが終わると、今度は.NETとJavaのVM言語のリバースエンジニアリングについての簡単な解説(ただしツールの使い方の説明は画面つきである)。そして参考資料へのポインタとなる。
これ以上くだくだしく書いてもしょうがないし、この先へ進みたい人間には必要十分な取っ掛かりとなる。

第7章が「ネットワークプロトコルのセキュリティ」として機密性、整合性、偽装耐性(サーバ、クライアントそれぞれ)についてPKIに至るまでの要素技術を解説する。内容に対してえらく説明が短いので、とにかく読んでいて頭を使う必要があって、これもまたおもしろい。あまりにおもしろいので、自分でパディングオラクル攻撃の実装をしてみた。要は、データ復元処理は次のように書けということだ(自分で書くのであれば)。

data_is_valid?(data)
  start = Time.now.to_f
  valid = false
  begin
    encrypted = decrypt(data)
    if encrypted
      valid = validate(encrypted)
    end
  rescue => e
  end
  waiting = 1.0 - (Time.now.to_f - start)
  if waiting > 0
    sleep(waiting)
  end
  valid # どこで失敗したかは応答には含めない。経過時間も常に一定以上(ここでは1秒)となるようにする。
end

第8章「ネットワークプロトコルの実装」では、ターゲットとなるトラフィックへの介在方法について解説する。キャプチャした実データをプロクシを使って改竄して送信したり、元のプログラムを再利用したりする。再利用といってもバイナリーハックの世界なので、.NETやJavaではリフレクションを駆使し、アンマネージドではPython+ctypesを使って元プログラムの関数呼び出しを再構成する(Rubyならばfiddleを使う)。この章も普通におもしろい。さらにTLSをごまかすための中間者攻撃の方法についても解説する。

第9章「脆弱性の根本原因」は白眉かも知れない。たった24ページだが、要はそういうことですな、という脆弱性のパターンを解説してある。アンマネージドでのスタックオーバーフローに始まりディレクトリトラバーサル(びっくりすることに2021年でも出てくる)、ユーザーの列挙(これはイントラネットとインターネットで作法を変えるべきやつだ。でイントラ流儀しか知らない人がちゃちゃを入れたりする)、SQLインジェクションまでの主な脆弱性のパターンについて疑似C言語(直接メモリをいじることができるのでCのはずだが、型や関数定義が微妙に簡略化されている)のコード片で説明している。

第10章「セキュリティの脆弱性の検知とエクスプロイト」は、9章の対となる章で、9章のようなバグを見つけるためのテスト方法、クラッシュしたプログラムの原因を探る方法と、プログラムのクラッシュを防ぐための最近のCPUとOSの仕組みについて解説する。ここで利用されるのは、GDB、CDB、LLDBの各バイナリデバッガー(主にGDB)。特に主眼となるのは、スタックとヒープ破壊によるエクスプロイトの解析で、デバッガの使い方とあわせて実に参考になる。そして、具体的にエクスプロイトがどう悪用されるのかの例として、送り込まれたアセンブリの断片を実行するためのCコードと各種システムコールを行う例をexit(DoS用)write(データ破壊)execve(Unixらしく自分で作らずにコマンドを組み合わせる)を呼び出すx64アセンブリ(ここではnasmを使う)の書き方(相対アドレスの求め方を含む)が解説される。で、DEPやメモリカナリ、ASLR(スタック上の変数位置を実行の都度変更する)といったCPUやOSが行う対抗措置について解説する。痺れるなぁ。

というわけで、網羅性、簡潔性、奥が深い(解説は広過ぎて浅いが、こればかりはどうしようもなく、よくも300ページでまとめたと感動すらする)の3拍子が揃ったすごい本だった。

ネットワークプロトコルハッカーズガイド キャプチャ、解析、エクスプロイトの理論と実践(James Forshaw)

_ ネットワークプロトコルハッカーズガイド(正誤)

おれが気づいた点。

P.25「もう少し創造力」→「もう少し想像力」

目次,P.41「ネットワープロトコルの構造」→「ネットワークプロトコルの構造」

P.47 3Fの「?」のフォントが妙過ぎる気が……

P.53 7ビットの可変長とされた16ビット分「0x80, 0x00」→「0x80, 0x01」(P.44ではそうなっている)

P.61 MIMEエンコードされたデータ。間違っているのではないが、text/plainのHello World!に対してHTML片とは考えなかったので長すぎるのでバグかと思った。(メールらしいのでOKなんだけど)

P.131 リスト5行目「inet_pton("0.0.0.0", ...)」→「inet_pton(AF_INET, "0.0.0.0", ...)」

P.187 「PFS(Perfect Forward Secrecy)」間違っているのではないがさすがにぶっきらぼうに過ぎるのでは……(本書の性格上、自分で調べられないなら読んでも意味ないだろ、という感じなのかも知れないが自分にとって初耳系はやはり気になる)

P.206 「.NETの型はJavaのクラスであり」→(これは一般語ではなく構文要素なので)「.NETのTypeに相当するのはJavaではClassであり」

P.213「中間者攻撃を積極的に仕掛けて」→(どうも気になる日本語。というのは対語となる「消極的に仕掛ける」というのがあり得ないからだ。activeの訳なのかな)「中間者攻撃を仕掛けて」で良いような。もしかすると2章の受動的/能動的キャプチャに類する能動的中間者のような用語なのかも知れない(原文みないとわからん)。

P.222 「ファジング」→ ボルドにするなら「ファジングについては10章で解説する」という脚注を入れたほうが良いのでは? ここでは何も説明されていない。

P.224 「をを」→「を」

p.242 「疑問符(?)は英数字に置き換えられる」→ うーん、ワイルドカードの意味なのだろうけど、意味が不明過ぎる。次ページに主な指定子が表で示されているから「?の部分はデータに合わせて置き換える(表 9.2参照)」かなぁ。

P.280 「最後のNUL」→「最後のNULL」

P.289 図10.11の← → は4バイト分のはずなのに右端2バイト分のみを指している。


2021-09-05

_ 三体Ⅲと火の鳥未来編

そういえば三体Ⅲを読了しているのだが記録していなかった。どうも6月中には読み終わっているらしい。

三体Ⅱまでのおもしろさは、特にが抜群だったが、世界を変えるのは憎悪なのか愛(いや尊厳と言ったほうが正確かな。自己の尊厳を持つ者のみが他者の尊厳を尊重できるわけだから)なのか(それはすべてを破壊したいという衝動なのか、今あるものを護るという決意なのかと置き換えられる)という人類にとっての大命題を、人類の向こう側に正直者(極端な経済合理主義者と呼んでも良い)の三体人を配置することで最初は中国、そして全世界、さらには遥か数100年後の未来までの人類について考えてみた、ということにある。

が、Ⅲの死神永生はそこを遥かに通り過ぎて行ってしまってびっくりした。範囲を本当に宇宙規模に拡大しているのだ。

どんなに小さな星であっても、見上げた空のそこにあるということは美しい。

三体Ⅲ 死神永生 上(劉 慈欣)

が、おれはこれを小学生の頃に読んだな、という思いがどうしても残る。

火の鳥はラッキーなことにまだCOMの別冊(今でいうところのコンビニ漫画形式の総集編みたいにまとめたやつ。ただし判型はでかい)で1から順番に読むことができた。ただ、3だけは単行本化された正方形に近い妙な判型ので買った覚えがある。いずれにしても手元にはもう無い。が、死ぬほど読み返したので大体記憶している。

【カラー版】火の鳥 1(手塚治虫)

1の黎明編は、南方からやってきたナミとナギの姉弟(だと思うがさすがに曖昧だ)から始まる。多分、イザナミとイザナギで、ナギは素戔嗚尊の役回りも持っていたし、それにあわせてナミは当然天照大御神の役回りも持っていた(と記憶している反面、卑弥呼の役回りの人が天照大御神の役回りを兼ねていて、かつ卑弥呼とナミは別人だったような)。あと、弓彦というグリーンアローのようなロビンフッド(反体制派ゲリラ)と、猿田彦、そして半島から騎馬軍団を引き連れて侵攻してきた邇邇芸命(神武天皇でもある。本筋とは関係ないが、現在の大和民族起源説とは異なる起源説が元ネタになっているのだろう)がすべてを薙ぎ倒して国家を建設する。

(ここまで書いて書影を取るのでアマゾンを見たら紹介文にヒナクとナギの姉弟と書いてあって、??となった。ヒナクというのは確か穴の中で弓彦と生活することになるのではなかったか。ということはナミというのはおれの想像による補完で、あくまでも天照大御神の役回りは卑弥呼だな。)

と言う具合に、古事記と日本書紀と当時の古代日本史観を混ぜた大きな物語(憎悪と愛の物語である)に永遠の生命を与える火の鳥(卑弥呼が渇望し、弓彦が射に行き、邇邇芸命は断固として無視する)を絡ませて抜群におもしろかった。

で、未来編を買って読み始める。

というか、なぜ1の黎明編(日本の黎明という意味だろうということはわかる)の次が未来編なのだ? とは不思議に思うのだったが(その後、過去-未来を交互に繰り返して最後に現在へつなげる大構想の下に書かれた作品だと知る)。

火の鳥2 未来編 (角川文庫)(手塚 治虫)

で読み始めると5大陸それぞれがコンピュートピア化されていてあっという間に世界大戦がはじまり人類が滅亡してしまう。

はぁ?と思う間もなく、火の鳥の血を飲んだため永遠の生命を持つことになった男がさまざまな試行錯誤の末、人類を再創造する(アミノ酸を海に流すシーンは忘れられない)。この作品の時間のスケールには本当にびっくりした。

まさに、三体Ⅰ、Ⅱに対してⅢだ。


2021-08-29

_ padding-oracleはおもしろい

例によってアスキードワンゴの嘉平さんにネットワークプロトコルハッカーズガイドをもらった。

この本は、抜群におもしろい。

たかだか300ページ強にこれでもかとネットワークプロトコル(といっても物理層はさすがに無い)の諸要素について解説している。

当然、やたらとすっ飛ばしているので、読者はこの本をガイドとして自力で深堀りする必要はある。

とはいえ、読むだけでもえらくおもしろい。

おもしろいのは、(最初に戻って)これでもかと諸要素について解説しているからだ。本当に奥が深くてネットワークはおもしろい!

無くても良いとはいえ、直接実行するスクリプトはPython、Wireshark(キャプチャを取るので必須)に自力で解析処理を記述するためにLua、サンプルの解析用のちゃちなチャットプログラムにC#を使っているので、これらは読めたほうが良い。(とはいえ、Java、C、Ruby、Perl、PHPあたりをまじめに使っていれば読めるはず)

というか、そもそもおれがRubyを使い始めたのは、C++でネットワークアプリケーションのクライアントやサーバーを書きまくっていたころに、手軽にソケットを叩いてテスト用のクライアントやサーバーを作れるWin32で実行できるスクリプト言語が必要だったからなのだった。というわけでネットワークプログラミングにはC系(今だとGoやRustなのだろうけど)とスクリプト(RubyとかPythonとか)の両方が使えるほうがいずれにしても良いと思う。

で、こちらも考えながら読んでいたりするので、まだ全体の2/3くらいなのだが、途中、セキュリティについての解説がある。最終的にはPKIになるとはいえ、これまた諸要素について乱数、暗号、署名、証明書などについて解説がある。

暗号化の中でブロック暗号化としてECB(使うな)とCBCが出てくる(これは当然なのだが、当然とは言わずに説明してある)。で、ブロックということはブロックに満たない場合にどうするかとしてパディングについて説明が続く。

で、CBC+PKCS#7の弱点としてパディングオラクル攻撃について2ページ程度の説明がある。おそらく、パディングオラクル攻撃について説明することで、CBCに必要となるIV(初期化ベクタ)やパディングについて明確に説明できるからだろう。と同時に、作法としてナイーブに成功失敗をクライアントに返してはならないことの説明にもなる。

というわけで、おもしろいので、以下、パディングオラクル攻撃(パディングを答えを教えてくれる水晶玉として利用する攻撃)のサンプルコードを書いてみた。実装はP.108に書いてあるとおり。下の例はAES-128で暗号化した16バイト1ブロックの暗号文とIVから平文を求める。複数ブロックの場合はIVではなく直前のブロックを利用することになる。

# coding: utf-8
require 'openssl'
 
# 攻撃者は知らない
KEY = "\f\xC0\xCE+\x04\xE8\x99Fe\xEF\xE6\xB1\xB9\x93\xDB!".force_encoding('ASCII-8BIT')
# 暗号化されたメッセージ(攻撃者は当然知っている)
CRYPTED = "\x9B\xF2;\xFD.\x92\x1F\x0F\x9C\x13\xA2\x8B\x9EY\xE5\xF9".force_encoding('ASCII-8BIT')
# IVはメッセージと共に拾えるものとする
IV = "6\xBCYZ\xA4\xB6\xAD)cat\xFB\x9F\xC9\xC5\xB2".force_encoding('ASCII-8BIT')
 
# 復号の成功、失敗を返すサーバー側のAPI
def blackbox(iv, crypted)
  cipher = OpenSSL::Cipher.new('aes-128-cbc')
  cipher.decrypt
  cipher.key = KEY
  cipher.iv = iv
  cipher.update(crypted) + cipher.final
  true
rescue
  false
end
 
# paddingを作成するヘルパ
def dummy_iv(offset, encoded)
  ret = ''.force_encoding('ASCII-8BIT')
  return ret if offset == 1
  (1...offset).each do |i|
    c = encoded[i - 1] ^ offset
    ret = c.chr + ret
  end
  ret
end
 
encoded = []  # IV適用前の暗号化ブロック
plain = []    # 平文(padding付き)
# IVを変形してパディング1から16に相当するIV適用前のブロックを得る
(1..16).each do |padding|
  org = IV[16 - padding]
  result = []
  tail = dummy_iv(padding, encoded)
  # 総当たりで暗号文とキーにマッチするパティング相当のコードを得る
  (0..255).each do |x|
    new_iv = IV[0...(16 - padding)] + x.chr + tail
    if blackbox(new_iv, CRYPTED)
      result << x
      break if result.length >= 2
    end
  end
  if result.length == 1
    plain << (result[0] ^ padding ^ org.getbyte(0))
    encoded << (result[0] ^ padding)
  else # 2回出現するのは実際のパディングと一致する場合
    r = result.find {|e| e != org}
    encoded << (r ^ padding)
    plain << (r ^ padding ^ org.getbyte(0))
  end
  puts plain.inspect if $DEBUG
  puts encoded.inspect if $DEBUG
end
puts plain[plain[0]..-1].reverse.map(&:chr).join()
ネットワークプロトコルハッカーズガイド キャプチャ、解析、エクスプロイトの理論と実践 (アスキードワンゴ)(James Forshaw)

2021-08-18

_ シャーマンキングがいろいろおもしろかった

アマゾンを訪れたら妙なデコ坊の書影が出て来て、絵柄が良いのでクリックするとシャーマンキングだった。確か、昔、少年ジャンプで読んだ覚えがあるが講談社だなぁと不思議に思ったりしたが、なんとなく1~5巻まで買って読み始めて、最終的に全巻買って読んでしまった。

いろいろな意味でおもしろかった。

ジャンプ(努力・友情・勝利)漫画とはいろいろな意味で異なるし、大して読んではいないとはいえそれでもある程度の傾向は掴んでいるはずの「普通の」マンガの文脈とえらくずれているし、画が好きだ。

極端な特徴は次の3点だろう。

・生殖としてのセックス

・本気の多様性受容(リアルの表出)

・表明しない結論

特に最初の点があまりに特徴的に思える。

ジャンプといえば最初の飛躍はハレンチ学園なわけだが、そこに書かれているハレンチというのは、小学生の男子の、女子の裸を見たいとか、おっぱい触ってみたいとかの、要は好奇心ベースものだ。で、これは少年マンガというジャンルにおけるコードとしては問題なく許容されている。

で、それより上の層用のマンガになれば、普通にセックスが出てくるし、少年誌でもチャンピオンでバキが徹底的に書いてみせたし、おそらく援交と虐待というリアルによって少女マンガでも扱われなくもない。

が、これらは少年誌の好奇心ベースのセックス(未満)に対して、快楽ベースのセックスと言える。

それが虐待やレイプのような一方的なものであれ、愛し合った二人の結果であれ、快楽としてのセックスという視点からの書き方だ。

が、シャーマンキングの場合、(少年誌のコードと、おそらく作者自身の考えから)一切直接的には書かれないが、明白に子孫を残すための生殖行為として描かれている。(徹底的にほのめかしだけにしているのは、上であげた3つの特徴の3点目でもある本作の特徴。たとえば、それまで「婚約者」と主人公のことを周囲に告げていた女主人公が「夫」と呼ぶように変えていたりする)

そのわりに、露悪的にリアルな小道具は持ち込んでいて、高速道路のサービスエリアを書けば背景にラブホテルが林立するし、北海道から東京に来ている兄と妹が宿泊するのはラブホテルだし(こちらは全く怪しい関係ではないようだが)こういった説明抜きの設定は多い(その極端な例が、アイアンメイデンの変身後の鍵穴)。

こういった、もろもろの少年マンガのもろもろのコードの外し方が、最終的には人気投票最下位になり打ち切りになったのだろうと想像されるが(おそらく最大の原因は、ハオという最後の敵に対してどう対処するかについての説明をしていないことと(おそらく作者はぼかしたつもりはなくて自明の選択だと思ったのではなかろうか?)で読者が物語のゴールを見失ったこと、全チームが決勝戦に出場することになって勝負が曖昧になったこと、意外と戦闘のバリエーションが乏しいこと(これは作者本人の興味が完全にそれてしまったのではないかと思う)、死んでも簡単に蘇生できるような仕組みを導入したこと(それも含めた戦略が出て来ているわけだが小学生にはわかりにくいだろう)で戦闘のスリルのようなものがなくなったこと、女性主人公たちの立ち位置がほぼジェンダーを無視していること(普通の漫画の登場人物の感性を持つ主人公の役割をアイヌの少年と中国人の少年(途中まで)に負わせているが、主役が全然そのつもりがないのは読者にはわかるのだろう)といった、もろもろのカタルシスを読者に与える仕組みをなくしてしまったことが原因だろう。ちょうど、セックスの扱いから快楽が完全に抜け落ちていることと軌を一にしている。

が、そこが良いのじゃないかな。というか、だからおもしろい。

20世紀の最後から21世紀の最初への架け橋として強烈な時代性を持つ作品だ。

SHAMAN KING ~シャーマンキング~ KC完結版(1) (少年マガジンエッジコミックス)(武井宏之)


2021-08-15

_ 世界を売った男

陳浩基の世界を売った男読了。2日かからなかった。

網内人が結構おもしろかったので買ったのだがなかなか読まずに先延ばしにしていたのを読んだのだった。

いきなりボウイの世界を売った男の歌詞が出て来て鼻白む。嫌いな曲ではないが、どういう了見の作品なんだ?

読み始めると、いきなり殺人事件の現場でオカルトっぽく終わり物語が始まる。

記憶(6年分)を失った刑事が冒頭の殺人事件の取材をする記者と2人で過去を追いかける。

刑事は現場の違和感から犯人は公的に犯人とされている男(逃走中に運転している車を暴走させて数人殺している)では無いのではないか、と疑っている。その疑いは徐々に確信に変わる。

物語は刑事と記者2人の取材に合わせて章分けされているが、各章の最後に刑事と一見無関係なスタントマン2人のPTSD治療のための医者の記録が挟まる。

徐々にこの2つが合わさってくる。

真犯人は途中でわかるし動機もわかってしまう。

だが、それを大団円させるための仕掛けは思いもつかなかった。きれいに円環が閉じる。見事なものだ。

ドンデンドンデン(Rシュトラウスのツァラトゥストラの冒頭のチャーンチャチャーチャーンチャチャーの後の部分の打楽器)

特に車の落ちのつけ方はおもしろい。愉快ではないが、タイヤ吹っ飛ばしたり隠したり、まあそういわれてもしょうがなさ過ぎる。

ボウイもそれなりに物語にからんでくるのだが、冒頭の引用部分の

Oh no, not me

I never lost control

You're face to face

With the man who sold the world

売ってしまった世界が何であるかとか(というか世界とは人生そのものであるわけだ)、確かに制御を失ってはいないとか、世界を売った男と顔を見合わせているとか、完全に作品そのものを説明しきっていて感心した。

最後、島田荘司という作家(つまらん短編小説集で唯一余情に溢れていた名品の作家としか知らん)が、本格派の登場だ、歓迎するとか書いていて、なるほど確かに整合性が取れているから、確かに推理小説なのだなとわかった(普通にミステリーとして読んでいた)。

世界を売った男 (文春文庫)(陳 浩基)


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|

ジェズイットを見習え