実行可能ファイルの周りのさまざまな場所で使用されている文字列リテラルがあります。
次のようなことを言いましょう:
const char *formatString = "Something I don't want to make obvious: %d";
int format1(char *buf) { sprintf(buf, formatString, 1); }
int format2(char *buf) { sprintf(buf, formatString, 2); }
//...
これで、この文字列リテラルは文字通り埋め込まれているため、実行可能コード内で非常に明白になります。
mov [ptr + 4], 0x65文字通り文字列を埋め込むのではなく、たとえば、アセンブリ命令(eg)命令を生成して文字列を作成するようにコンパイラに強制することで、これを回避する方法はありますか?
どんな種類の難読化もしたくありません-実行可能ファイル内で文字列を明確にしないようにしたいだけです。(また、文字列が使用されるすべての場所でコードを変更する必要はありません。)
これは可能ですか?