kensyou_jikenboのブログ

yahoo!ブログの同名ブログを移行しました

pdbファイルへのパス

ネットで以下の情報があった。
Visual Studioのリリースビルドだけど、デバッグ情報の出力がデフォルトでonになってて、デバッグファイルへの絶対パスが入るみたい」

それで先日参考用に用意した「HelloWorld」のフォルダ構成を眺めてみると、「Release」フォルダの中に「HelloWorld.exe」以外に「HelloWorld.pdb」というファイルも出来ている。
pdbの拡張子は、「プログラムデバッグ情報」が入ったファイルを表す。このpdbファイルを参照する時のために、exeファイルの中にpdbファイルへのパスが埋め込まれていると云うのである。

HelloWorld.exeの中身を見てみると、確かにパスが入っていた!
以下の図で、pdbファイルの入っている「Release」フォルダの内容と、exeファイルの中を調べてパス名があった状態を示す。
[Releaseフォルダの内容]
イメージ 2

[HelloWorld.exeの中にpdbファイルへのパスが入っている]
イメージ 1

Visual Studioコンパイルするためのビルドの詳細設定で、デバッグ情報無しにしたらpdbファイルは作成されなくなったが、デフォルトではデバッグ情報有りになっている。
デフォルトのままだとexeファイルに保存ドライブのパスが含まれることになるから、仮想ドライブの話は例えばEドライブになっていたということなのかもしれない。
ただし、昨日も書いたように、保存ドライブが仮想ドライブ化されていたかまで分かるかどうかは現在不明。

だが、もし犯人がデフォルトのデバッグ情報有りのままコンパイルしていたら、exeファイルにログイン名やフォルダ名が残るわけだから大きな手がかりになる。(但し、Projectフォルダの下にフォルダを作らなければフォルダ名の方は出ない)
例えばログイン名に名前の一部などを使っていたりしたら、使用PCや使用者を特定しやすくなる。

しかし、これも記者会見では言及がなかったし、証明予定事実記載書第三部で検察側がそれを決め手にしているというような報道も出てきていない。
犯人はデバッグ情報なしに設定して上手く消していたのか。
被疑者が犯人だとするとC#初心者で、普段はVisual Studioも使っていなかったようなのに、デフォルトで使うとパス名が残るというようなノウハウまでどうして知り得たのだろうか。
或いはログイン名やフォルダ名が、例えば"abc”というような特定できないようなものだったのか。犯人はそこまで用心深かったのか。
pdbファイルへのパスの検証はできたが、また謎は増えた感じである。

今回の事件は突っ込んで検討していくと、技術的に詳細な話になって相当ややこしくなりそうである。
公判においても、検察側にはサイバー捜査官がいるが、裁判所にもサイバー事件の専門家がいるのだろうか。

弁護側に関しては、佐藤弁護士は記者会見で以下のように述べていた。
 7月18日記者会見
 江川「パソコンの解析が色々出ている、弁護団として専門家に解析要請しているか?」
 佐藤「今まで何人かから手伝いますと云われている。今後証拠開示をファイル(今は紙ベース)で貰うようにする。開示して貰う形も専門家に相談してデータ分析することになると思う」

今まで検察が犯人性の証拠を出して来なかったとはいえ、検察が証明予定事実を出す前に先手を打って予定主張を提出しているほどやり手の佐藤弁護士が、事前分析などのために専門家を入れてなかったのか。
裁判官に理解して貰うには余り技術的な詳細論争に持っていくのは得策ではない、佐藤弁護士はそう考えて専門家を早くから入れることは避けていたのかも知れない。
ただ、今後は上記発言のようにある程度専門家は入れていくであろうが、基本的には司法関係者は文科系だから、検察側と弁護側の専門家が出てきて専門家同士で詳細な技術論を延々と戦わすという展開は、民事の特許紛争などなら別だが刑事司法関係者としては出来るだけ避けたいのではないかとも思える。

以上。