2012-06-13 8 views
5

私が書いたVB.NETプログラムが特定の時間に書かれたことを証明する必要があります。.netプログラムがいつコンパイル/ビルドされたかを判断する方法

(理由は、誰かが自分のコードをコピーした学問的完全性調査です)。

ビルドパスにユーザー名を指定して、デバッグとリリースのフォルダを含むすべてのコードをディスクに保存しています。

バイナリを見るなど、追加できることはありますか?

+0

この質問にはメリットがあると思いますが、言い換えれば言いたいことです。 –

+0

これはあなたのマシンか共有のものですか? –

+0

おそらくディスク上の各ファイルにタイムスタンプがありますか?確かに、ディスク上のファイルのタイムスタンプを変更することは可能です。できるだけ早くディスクを調査者に渡して、申し立てを改ざんする可能性を最小限に抑えるようにしてください。 –

答えて

1

まず、すべてのデータを別のデバイスにコピーします。すべてのデータを保持するようにしてください。いずれのファイルも開いたり編集したりしないでください。

を:これらのは次のようにディレクトリのリストを取得します。DIR/T

/T   Controls which time field displayed or used for sorting 
    timefield C Creation 
       A Last Access 
       W Last Written 

を使用して見つけることができるなど最後に変更されたとき

各ファイルは、それが作成されたときに、3つのタイムスタンプを持っています

DIR myrootdir /s /ah /as /tc > fileslist.txt 

これは@EricJが言うようにも

fileslist.txtというファイルに作成時間を持つすべてのファイルをダンプします:証拠として、あなたのディスクを提供します - しかし、私が作る言ったように最初にコピーします。最初に別のドライブにイメージコピー(Windowsバックアップ)を行うのが最善の方法です。

3

IL Disassemblerを使用してEXE/DLLを開く場合は、メニューオプションの[表示]> [ヘッダー]を選択すると、COFF/PEヘッダーに「時間 - 日付スタンプ」というフィールドがあります。バイナリ形式であり、MSDNによると、

画像のタイムスタンプの下位32ビットです。これは、イメージがリンカーによって作成された日時を表します。この値は、システム時計に従って1970年1月1日の深夜(00:00:00)から経過した秒数で表されます。

+0

+1:Nice find:私はILDASMですばやく見ましたが、明らかなものは何も見つかりませんでした。 –

1

捜査官は、このすべてについて間違った方法をとっています。

タイムスタンプのデータは偽造されている可能性があります。そのため、最良の方法は、コードがどのように動作するか詳細な質問を両者に個別に依頼することです。 また、試験条件の下で、もう一度別のテストプロジェクトを完了するよう両当事者に依頼することもできます。

作品をコピーした人は、最もよくコピーしたものを理解できず、同様の概念に基づいて何かを再現することはできません。

それを書いた人は、騙されない限り、すべて深く理解するでしょう。