exe/dllのPEヘッダのTimeDateStampの重要性について教えて下さい。


以前以下の質問しました。
http://q.hatena.ne.jp/1368768302

ビルド毎に生成されたexe/dllをバイナリで比較すると、PEヘッダのTimeDateStampだけが違いがあることがわかっています。
ソースコードに全く変更がなく単なるリビルドしたバイナリを同一のものと判断するべく、ビルド後にPEヘッダのTimeDateStampを0などに変更しようと計画しています。

exe/dllを使用するにあたりPEヘッダのTimeDateStampが0であると何か問題が発生するのでしょうか?
ご存知の方がいらっしゃれば教えてください。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/01/24 21:40:07
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

  • id:cx20
    PE ヘッダに詳しい訳ではないので、コメント欄にて。

    PE ヘッダのタイムスタンプを書き換えるツールがあるようでしたので、試してみました。

    ■ PE形式バイナリ変換ツール
    http://coexe.web.fc2.com/hackbin.html

    TimeDateStampを「0」にすると「1970/01/01 09:00」に設定されるようです。

    開発時にバイナリ比較で差異が無いことを確認することが目的ということであれば、一時的に、変更するのはアリだと思いますが「0」に変えてリリースするのは、リスクがあるような気がします。

    特に、セキュリティ対策ソフトは、PE ヘッダが正常か?をチェックしている場合があるようですのであり得ない値が入っていると、改ざんとして検知されることもあり得そうです。

    <参考情報>
    ■ 悪性コード分析担当者が見たPE構造 - セキュリティサービスのアンラボ
    http://www.ahnlab.co.jp/securityinfo/asec_report.asp?seq=2473

    また、少し話はそれますが、メガデモの類のプログラムだと、プログラムサイズ削減の為、PE ヘッダを極限まで削除することもしているようです。構造を熟知している場合に成せる技だと思いますが。。。

    ■ ドイツのプログラミングイベントで部門優勝した4KBメガデモが話題 | スラッシュドット・ジャパン
    http://slashdot.jp/story/09/04/18/1241233/%E3%83%89%E3%82%A4%E3%83%84%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%81%A7%E9%83%A8%E9%96%80%E5%84%AA%E5%8B%9D%E3%81%97%E3%81%9F4KB%E3%83%A1%E3%82%AC%E3%83%87%E3%83%A2%E3%81%8C%E8%A9%B1%E9%A1%8C
  • id:mstkwb
    >cx20さん
    コメントありがとうございます。

    >「0」に変えてリリースするのは、リスクがあるような気がします。
    まさにこれで、使用にあたっては特段問題なさそうなんですけど、意外な何かで引っかかるかも?という漠然とした不安はありますね。

    0にすると現実的ではない昔になってしまいますが、リリース予定日(近い未来)とか、プロジェクト開始日(近い過去)なら大丈夫かなと思うのですが、書き換えることの影響がどの程度あるかハッキリとわかりませんね..

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません