0

我正在寻找在代码段大小应为 16 MB(C++ 字节码大小为 16 MB)中创建的方法

4

1 回答 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 回答