C++プログラミング1年程度の初心者です。私はVSで空のプロジェクトからopenGLを利用した簡単なゲームプログラムを作っています。
最近ふと疑問に思ったのですが、ビルドと同時に作られるexeファイルの中には、私の情報(VisualStudioの固有情報?)等が入っているのでしょうか?このままネットで配布しても大丈夫なのでしょうか。
そもそも普通そこから情報を引き出すのは難しいだろうとは思うのですが、原理的にそもそも固有の情報が含まれているのか、いないのかが知りたいのです。
コンパイルしているのはあくまでソースコード自体だろうと想像しているのですが、確信がもてません。ご存知の方、解説をお願いいたします…。
一般的な Windows プログラムの場合、EXE に含まれる情報としては
などが、あります。
以下は、取得できる情報の例です。
PE ヘッダ(コンパイル時のタイムスタンプ、リンカバージョンなど)については、特殊なツールを用いれば、変更することが可能ですが、知られて困るような情報はあまり無いかと思います(作成したコンパイラのバージョンが知られるのがまずい等、特殊な事情があれば、話は別ですが。。。)
リソース情報については、プロジェクト内に「*.rc」ファイルが存在しなければ、情報は付与されません。
また、デバッグ情報(のパス情報)についてはプロジェクトの設定で「デバッグ情報の生成」を「いいえ」にすれば、パス情報は出力されません。
以下は、参考情報です。
<PE ヘッダに関する情報>
■ EXEファイルの内部構造(PEヘッダ) (1/3):CodeZine
http://codezine.jp/article/detail/412
■ Dependency Walker (depends.exe) Home Page
http://www.dependencywalker.com/
■ PE形式バイナリ変換ツール
http://coexe.web.fc2.com/hackbin.html
<リソース情報に関する情報>
■ Resource Hacker
http://www.angusj.com/resourcehacker/
■ ResEdit - 窓の杜ライブラリ
http://www.forest.impress.co.jp/library/software/resedit/
<デバッグ情報に関する情報>
■ プログラム データベース ファイル (C++)
http://msdn.microsoft.com/ja-jp/library/yd4f8bd1(v=vs.100).aspx
一般的な Windows プログラムの場合、EXE に含まれる情報としては
などが、あります。
以下は、取得できる情報の例です。
PE ヘッダ(コンパイル時のタイムスタンプ、リンカバージョンなど)については、特殊なツールを用いれば、変更することが可能ですが、知られて困るような情報はあまり無いかと思います(作成したコンパイラのバージョンが知られるのがまずい等、特殊な事情があれば、話は別ですが。。。)
リソース情報については、プロジェクト内に「*.rc」ファイルが存在しなければ、情報は付与されません。
また、デバッグ情報(のパス情報)についてはプロジェクトの設定で「デバッグ情報の生成」を「いいえ」にすれば、パス情報は出力されません。
以下は、参考情報です。
<PE ヘッダに関する情報>
■ EXEファイルの内部構造(PEヘッダ) (1/3):CodeZine
http://codezine.jp/article/detail/412
■ Dependency Walker (depends.exe) Home Page
http://www.dependencywalker.com/
■ PE形式バイナリ変換ツール
http://coexe.web.fc2.com/hackbin.html
<リソース情報に関する情報>
■ Resource Hacker
http://www.angusj.com/resourcehacker/
■ ResEdit - 窓の杜ライブラリ
http://www.forest.impress.co.jp/library/software/resedit/
<デバッグ情報に関する情報>
■ プログラム データベース ファイル (C++)
http://msdn.microsoft.com/ja-jp/library/yd4f8bd1(v=vs.100).aspx
「PE ヘッダ情報の例」は、Visual C++ 付属ツール「dumpbin.exe」の実行結果です。
<使用方法>
dumpbin /HEADERS <filename>
なるほど、実は簡単に情報を抽出できるのですね。丁寧に解説してくださりありがとうございます!大変参考になりました。
「PE ヘッダ情報の例」は、Visual C++ 付属ツール「dumpbin.exe」の実行結果です。
2014/01/23 08:10:14<使用方法>
dumpbin /HEADERS <filename>
なるほど、実は簡単に情報を抽出できるのですね。丁寧に解説してくださりありがとうございます!大変参考になりました。
2014/01/24 00:06:47