MSVC++ - 强制将除“.reloc”之外的所有内容放入一个单独的部分中
我尝试在静态只读字符串数据上使用 Microsoft Visual C++ #pragma section( ".text" )
和 __declspec(allocate(".text"))
。但二进制文件中仍然有一个 .rdata
部分。我没有使用标准 C 库。我使用 MSVC++ 作为字节码编译器,用于代码注入。
通过在“.text”部分中包含只读数据而不是在“.rdata”部分中,它将极大地简化注入。我怎样才能做到这一点?是否有一个链接器选项可以将所有内容填充到一个部分中,或将两个部分合并在一起?
I've tried using Microsoft Visual C++ #pragma section( ".text" )
and __declspec(allocate(".text"))
on static read-only string data. But there is still a .rdata
section in the binary. I am NOT using the standard C libraries. I am using MSVC++ as a bytecode compiler for use with code injection.
It would greatly simplify injection by having read-only data inside the ".text" section and not the ".rdata" section. How can I do that? is there a linker option to stuff everything into one single section, or merge 2 sections together?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Microsoft 链接器中有一个
合并节
选项。这看起来适合我的目的。/MERGE:[from=to]
There is a
merge sections
option in the Microsoft linker. This looks like it will work for my purposes./MERGE:[from=to]
手动将所有字符串和其他静态数据放入堆栈中。
因此,除了 .text 之外,您不需要其他部分。
和统一码:
Put all strings and other static data in stack manually.
So you don't need other sections, except .text.
And Unicode: