2017-05-10 2 views
0

正しく読んでいれば、(https://github.com/Microsoft/microsoft-pdb)、pdbにデバッグ情報が含まれています。 exeと並行して顧客にリリースする場合、顧客またはエンドユーザーがソースコードを見つけることができる危険性がありますか?exeファイルでpdbを公開するのはどれくらい安全ですか?

Visual Studioをプロセスにアタッチすると、私は自分自身を試していないかもしれませんが、pdbを使用するためにどこかでソースコードを詰め込む必要はないと確信していますエントリーポイント、そして最終的にはいくつかのデータが取ったルート全体を見ることができます。

もしそうなら、エンドユーザーがこれを防ぐのを防ぐ方法がありますか?

答えて

1

ユーザがあなたのソースコードを見つけ出してしまうのを防ぐ方法はありません。ユーザーが十分な知識を持っている場合、プログラムは行います。

PDBがなくても、リバースエンジニアリングと呼ばれる手法を使用して、プログラムが何をするかを知ることができます。 IDA Proのようなプログラムは本当にうまくいきます。中間言語を使用するC#やJavaなどのプログラミング言語は、ほとんどがソースコードで提供されています。 dotPeekのようなツールは、逆コンパイルされたソースコードを表示することができ、実際のソースコードとどれほど近いかは信じられません。

PDBには、パブリックPDBとプライベートPDBがあります。通常、パブリックPDBを公開し(名前が示すように)、プライベートPDBを内部デバッグの目的で保管します。 PDBCopyというツール(-pパラメータを使用)を使用して、プライベートPDB(詳細情報を変換する)をパブリックPDBに変換することができます。

個人的に私はパブリックPDBの譲渡についてあまり心配しません。マイクロソフトでさえWindows用です。

0

pdbソースコードが含まれていません。シンボル(関数、クラス、グローバル変数)の名前とソースファイル名/行に関する情報(どのようにRVAをファイル/行に変換するか)を含んでいます。だから、pdbはあなたのソースコードをユーザに与えませんが、あなたのファイルシステムのフルパスでソースファイルの名前を言い、 すべての内部シンボル名

関連する問題