奇妙な質問があります。コンパイル後に文字列 (または C プログラム経由でアクセスできるもの (内部、つまり外部ファイルではない)) を追加/編集する方法があるかどうか疑問に思っています。
目的は、Linux 上の PHP を介して Windows プログラムの URL を変更することです (明らかに、コンパイルすることはできません)。
多くの posix プラットフォームには、strings
文字列を検索するバイナリ ファイルを読み取るプログラムが付属しています。文字列のオフセットを出力するオプションがあります。例えば:
strings -td myexec
そこから 16 進エディタを使用できますが、主な問題は、文字列を現在よりも大きくできないことです。
16 進エディタがおそらく最善の策です。
既存の実行可能ファイルを変更するための専用ツールがあります。注目すべきツールは Resource Tunerで、実行可能ファイル内のあらゆる種類のリソースを編集するために使用できます。
もう 1 つのオプションは、Hex Workshopなどのテキスト エディターを使用して、実行可能ファイルの文字列内の文字を編集することです。ただし、この方法では、実行可能ファイル内の既存の文字列のみを編集できることに注意してください。置き換えられる文字列の長さは、元のものと同じかそれ以下でなければなりません。そうしないと、実行可能コードを変更することになります。
生成された 16 進コードまたはアセンブリ コードを調べたい場合を除きます。