プログラムの特定の値を変更できるので、プロセスに DLL を挿入するのが好きです。
dll の唯一のマイナス点は、移植性が高くなく、移植性を高めると多くのコードが消費されることです。
リソースに格納されているアプリケーションを (プロセスに) 注入し、後で実行することは可能ですか?
もしそうなら、どのコード部分がdllの注入と異なる可能性がありますか?
あなたの質問には「Windows」というタグが付けられていませんが、言葉遣いから、あなたがWindowsを参照していると思います。
必要なアクセス権があれば、実行可能ファイルを別のプロセスに挿入することができますfork
。cygwin での実装は概念実証です。Windows はfork
、少なくともパブリック API で公開されていない、のようなものをサポートしていません。Cygwin は、新しいプロセスを作成し、独自のプロセスを他のプロセス (すべてのデータを含む) に注入することで実装します。代わりにリソースから読み取ることと、それを注入することはほぼ同じです。
違い (および困難) の 1 つはイメージ ベースである可能性があり、これは (通常) Win32 では常に同じです。DLL の場合、リベースされるのは通常のことですが、実行可能ファイルの場合はそうではありません。一方、既存のプロセスのコードに加えてコードを挿入する場合は、必要なアドレスが空いていない可能性があります。