使用#define
:
#include <stdio.h>
#define CONSTANT "Constant"
int main(void)
{
char buf[32];
strcpy(buf, CONSTANT);
return 0;
}
グローバルの使用const
:
#include <stdio.h>
const char *constant = "Constant";
int main(void)
{
char buf[32];
strcpy(buf, constant);
return 0;
}
ここで、誰かが生成されたバイナリ ファイルを何とか 16 進編集したとします。グローバル定数を編集してバッファ オーバーフローを引き起こし、任意のコードを実行する可能性があります。
私の質問は、この種の 16 進編集は#define
s で可能ですか?
これらの16進値を解読する方法がまったくわからないため、自分で16進編集を試みたことはありません! 信頼できるチュートリアルも見つかりません。