我正在寻找在代码段大小应为 16 MB(C++ 字节码大小为 16 MB)中创建的方法
问问题
126 次
1 回答
5
在函数中复制并粘贴 __asm{} 中的 16MB 的 nop 指令。并且不要使用该功能。每个 nop 必须是 1 字节。然后你就会有东西了。那时您将需要动态代码更改机制。
您将 1 个 nop 复制到 2 个 nop 中。然后将 2 个 nop 复制到 4 个 nop 中。直到你这样做 24 次(24 位等于 1600 万个不同,对吗?)
我忘了告诉你,你需要为此禁用一些优化。或者您可以只使用关闭所有优化的数字火星。
建议您在单独的文件中执行此操作。(可能包括)
如果您希望链接更快,则应使其对齐 16 字节。
main_program.cpp 示例
#include<your_16MB_nop>
#include<....
....
int main(){/* whatever here */}
your_16MB_nop 的样本
void func_never_used_directly()
{
__asm
{
nop
nop
nop
... 16million times(just copy and paste each last block for 24 times)
nop
}
}
于 2012-08-08T13:30:35.770 回答