4

新しいセクションを作成して #pragma で属性を設定しようとすると、次の警告が返されます。

警告 C4330: セクション '.mysec' の属性 'write' は無視されました

簡単なコード:

#include <windows.h>
#include <stdio.h>

#pragma section(".mysec",execute,read,write)
__declspec(allocate(".mysec")) UCHAR var[] = {0xDE, 0xAD, 0xBE, 0xEF};

void main() { return; }

リンカー オプション: /DYNAMICBASE:NO、/FIXED、/NXCOMPAT:NO、/OPT:NOREF

OS/ツール: Win x64 / msvc++ 110

MSDN のいくつかの記事、特にこのhttp://msdn.microsoft.com/en-us/library/50bewfwa(v=vs.110).aspxを読みましたが、答えが見つかりませんでした。

ありがとう。

4

1 に答える 1

4

executeこれは旗のせいだと思います。Windows で書き込み可能なコードを含むセクションを持つことはできないと思います。

私はこれを間違って覚えているかもしれませんが、セキュリティ上の問題になるため、サポートされていません。

于 2013-03-20T02:42:12.453 に答える