に* .exeファイルを組み込みを知っていますか?誰かが私がdllファイルにexeファイルをembeddすることができますどのようにDLL
私はC#のコードから呼び出すexeファイルであるツールを持っています。
事は、私は、このツール(EXEファイル)と私のC#のコードをcontaing DLLを含む1つのdllを持つようにしたいということです。
それは資源の中、このexeファイルをembeddすることは可能ですか?
Thxを事前に
に* .exeファイルを組み込みを知っていますか?誰かが私がdllファイルにexeファイルをembeddすることができますどのようにDLL
私はC#のコードから呼び出すexeファイルであるツールを持っています。
事は、私は、このツール(EXEファイル)と私のC#のコードをcontaing DLLを含む1つのdllを持つようにしたいということです。
それは資源の中、このexeファイルをembeddすることは可能ですか?
Thxを事前に
です。任意のファイルをアプリケーションのRC_DATAとしてリソースとして追加することができます。しかし、私はあなたがそれを呼び出す前にディスクに最初にそれを抽出する必要があると信じています!
使用しているIDE /言語はどれですか?
[編集]
大変申し訳ございません。あなたはC#を使っていると言いました。
それはあなたの用途はあまりないかもしれないことを心に留めてむき出しに価値がありますあなたがこれをやってくれて嬉しいです。駆除するDLLに制御権を持たない実行可能ファイルを埋め込むことで、マシン上でトロイの木馬を実行する心配はおそらくあります。
これは、ファイルシステムに.EXEを残して、あなたのアプリケーションが何をしているかについての透明性が良いでしょう。
これは本当に有効な問題ではありません。ユーザーが私のDLLを実行している場合、明らかに私を信頼します。あなたが使っているアプリケーションによって起動されたすべてのヘルパー実行可能ファイルを見たことがありますか? – tster
アセンブリをバイト[]からロードできます。これは、埋め込みリソースのManifestResourceStreamを介して取得できます。
代替案は、.exeファイル自体を埋め込むのではなく、DLL内のその機能を含む、それを実行する[1] Rundll32の使用しないようにしてもよいです。
それも私の選択だろう...私がこれを読むまでOld New Thingの投稿:[いつrundll32を使うべきかについての指針は?簡単:それを使用しない](http://blogs.msdn.com/b/oldnewthing/archive/2013/01/04/10382242.aspx) –
@VáclavSlavík:link broken; [ここに新しいものがあります](https://blogs.msdn.microsoft.com/oldnewthing/20130104-00/?p=5643)。 – hydroiodic
ファイルからリソースをディスクにプルしてコードを実行すると、Windows Data Execution Preventionがトリガされる可能性があることを覚えておいてください。基本的に、Windowsは何かがコードまたはデータそれがデータ(リソースとなる)のように見える場合、そのデータがコードとして実行されないようにします。
.NETアセンブリをローカルドライブではなくネットワーク上で使用する場合、これは特に問題になります。これが正しく動作しないようにする.NETセキュリティ設定があります。
プロジェクトの詳細を知らない別のオプションでは、これを塩分で処理します:好奇心を抱くユーザーやIT担当者に、実行可能ファイルがある理由を説明する.exe.readmeファイルをインストールに追加しますインストールディレクトリに期待していません:)
これは...興味深いことにDEPの説明が混乱しています。いいえ、DEPは実際にディスク上の実行可能ファイルにリソースフォークから来て、実行可能ではないと魔法のようにタグ付けすることはありません。そして、いいえ、DEPは何かを "検出"しようとはしません。代わりに、メモリページを実行可能または実行不能としてタグ付けするメカニズムです。 –
この質問は組み込みシステムには実際には関係ないので、「埋め込み」タグは削除しました。 –