ページ 11

Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 20:23
by L'z
作ったもののexeファイルを他人に送る必要があり、
exeファイルをバイナリエディタでみていたら、
C:\Documents and Settings\Administrator\My Documents\~~~\Release\*********.pdb
とReleaseフォルダにあるデバッグ用ファイル?へのパスが入っていました。

また、dxaファイルの中身のファイル名も入っていました。


一応管理人さんの龍神録Plusのexeファイルも確認してみましたが
C:\Users\Dixq\Desktop\四聖龍神録Plus_ソースコーチEver2.80\Release\RyuJinRoku.pdb
とパスが入っていました。


パスやファイル名を見せたくないのですがこのようなデータが含まれるのはどうしようもないことなのですか?
見つけたのはdxaファイルの中のファイル名とPDBファイルのパスだけですが他に製作者の情報が入っていたりしないのでしょうか?

あとパスがPDBファイルへのものですがReleaseなのにデバッグデータが含まれるのですか?

Re: Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 21:13
by nullptr
L'z さんが書きました:作ったもののexeファイルを他人に送る必要があり、
exeファイルをバイナリエディタでみていたら、
C:\Documents and Settings\Administrator\My Documents\~~~\Release\*********.pdb
とReleaseフォルダにあるデバッグ用ファイル?へのパスが入っていました。

また、dxaファイルの中身のファイル名も入っていました。


一応管理人さんの龍神録Plusのexeファイルも確認してみましたが
C:\Users\Dixq\Desktop\四聖龍神録Plus_ソースコーチEver2.80\Release\RyuJinRoku.pdb
とパスが入っていました。


パスやファイル名を見せたくないのですがこのようなデータが含まれるのはどうしようもないことなのですか?
見つけたのはdxaファイルの中のファイル名とPDBファイルのパスだけですが他に製作者の情報が入っていたりしないのでしょうか?

あとパスがPDBファイルへのものですがReleaseなのにデバッグデータが含まれるのですか?
Releaseビルドの際に、(VC++なら)プロジェクトのプロパティからリンカ、デバッグと進みデバッグ情報の生成を「いいえ」に変えてみても変わりませんでしょうか?

Re: Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 21:17
by softya(ソフト屋)
VC++だとReleaseビルドでもデバッグ情報の生成が「はい」になっていると思います。「いいえ」にしてください。

Re: Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 21:24
by nullptr
あと、ファイル名などのスタティックな文字列はですね、
"Data/data.png"という文字列を直接書くのではなく暗号化して、ロード関数でそれを解読して読みこむように変えれば大丈夫でしょう。

Re: Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 22:07
by L'z
loweさん、softya(ソフト屋)さん 回答ありがとうございます。

パスがexeファイルに入らなくなりました。

暗号化ですか。自分でもわかりづらくなりそうですがしょうがないですね。



DXライブラリを使うとlog.txtを出力するための文字列もexeファイルでみることができます。
せっかくDXAファイルの拡張子を変えてDXライブラリ使ってるとわからなくできるのにexeファイルを見ればすぐにばれます。これはさすがにわからないようにするのは無理でしょうか?

Re: Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 22:11
by softya(ソフト屋)
Log.txtはOFFに出来ます。
DxLib_Init()の前にSetOutApplicationLogValidFlag(FALSE);を加えて下さい。
#ifndef _DEBUG
SetOutApplicationLogValidFlag(FALSE);
#endif
とすればReleaseビルドでのみOFFに出来ます。

Re: Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 22:25
by L'z
softya(ソフト屋) さんが書きました:Log.txtはOFFに出来ます。
DxLib_Init()の前にSetOutApplicationLogValidFlag(FALSE);を加えて下さい。
#ifndef _DEBUG
SetOutApplicationLogValidFlag(FALSE);
#endif
とすればReleaseビルドでのみOFFに出来ます。
それはログの出力のON、OFFだと思います。
私が言ったのはexeファイル内にログ出力のための文字列が存在するということです。

こんな感じの部分です

DirectSound の初期化を行います..DirectMusicPerformanceオブジェクトの初期化に失敗しました....%sDevice%d:%s ....入力ポート

Re: Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 22:30
by softya(ソフト屋)
L'z さんが書きました:それはログの出力のON、OFFだと思います。
私が言ったのはexeファイル内にログ出力のための文字列が存在するということです。

こんな感じの部分です

DirectSound の初期化を行います..DirectMusicPerformanceオブジェクトの初期化に失敗しました....%sDevice%d:%s ....入力ポート
それは定数ですのでパス等の情報部分は埋め込まれていないと思いますがなにか問題がありますでしょうか?

Re: Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 22:38
by L'z
こちらはパスでなく、DXライブラリを使ってると簡単にわかられてしまうので、ユーザはDXライブラリで作られたのかDirectXで作られたのかWinAPIで作られたのかわからないようにできないのかと思って聞きました。

パスと違いできないならできないでいいです。

Re: Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 22:48
by softya(ソフト屋)
私はDXライブラリの作者の方への礼儀としてDXライブラリを使っていることを隠すことは避けられたほうが良いと思います。

ご本人は、DxLib.txtで
 ・DXライブラリを使用して作成されたソフトウエアにDXライブラリを使用した旨を記載する
  必要はありません。(記載されれば嬉しいですが)
と書かれていますが、無料公開されているライブラリですので感謝の気持ちでDXライブラリを使っていると公言するほうが気持ち良いと私は思いますよ。

Re: Releaseなのにファイルパスがexeに含まれる

Posted: 2012年4月09日(月) 22:51
by L'z
それもそうですね。

回答ありがとうございました。