2011-10-28 6 views
1

私のC++アプリケーションにリソースとしてexeファイルが含まれていて、実行する必要がありますが、アクセスを制限してユーザーがコピーできないようにする必要があります。 外部プログラムがそれにアクセスできないようにハンドルを開いたままにする必要があります。また、FILE_FLAG_DELETE_ON_CLOSEをフラグとして使用していたため、アプリケーションが強制終了された場合は削除されます。ハンドルがオープンされているファイルを実行する(C++ winapi)

しかし、私はそれをCreateProcess()またはWinExec()で実行できません。 私はそれが奇妙に聞こえることは知っていますが、私は正当な理由があります。私はdll注射の不正行為からゲームの実行可能ファイルを保護する必要があり、私はそのexeのコードを持っていません。

+0

実行ファイルのコピーをユーザーに残さないという愚かな方法はありません...ただsayin ' – JosephH

+0

私は知っていますが、そのファイルをコピーするのが実際の難しさで十分です。 –

+0

この戦略には非常に多くの穴があります。再検討する必要があります。実行中にコンピュータをシャットダウンして再起動すれば、ファイルは削除されません。どんな初心者ユーザーもそれを行うことができます。また、それがリソースとして含まれている場合、それはちょうど抽出することができます。どのようにあなたのアプリを設計して、人々が.exeをコピーするかどうかは関係ありませんか? – tenfour

答えて

0

ファイル全体をロックできないため、非常に小さい部分をLockFileでロックします。 Windowsが使用しないバイト範囲を見つける必要があります。これを達成するには、EXEにダミーリソースを追加します。 (これはソースコードを必要としません)。

+0

私はそれを試してみる、ありがとう。 –

関連する問題