我尝试在静态只读字符串数据上使用Microsoft Visual C ++ #pragma section( ".text" )
和__declspec(allocate(".text"))
。但是二进制文件中仍有一个.rdata
部分。我不使用标准C库。我使用MSVC ++作为字节码编译器,用于代码注入。
通过在“.text”部分中包含只读数据并且 不 “.rdata”部分,可以大大简化注入。我怎样才能做到这一点?是否有链接器选项将所有内容填充到一个部分中,或将两个部分合并在一起?
答案 0 :(得分:2)
Microsoft链接器中有merge sections
选项。这似乎适用于我的目的。 /MERGE:[from=to]
答案 1 :(得分:0)
手动将所有字符串和其他静态数据放入堆栈。
所以你不需要其他部分,除了.text。
char String[] = { 's', 't', 'r', 'i', 'n', 'g', 0 };
和Unicode:
wchar_t WideString[] = { L'H', L'e', L'l', L'l', L'o', L'\0' };