可执行代码

时间:2018-05-22 05:42:50

标签: c++ winapi visual-studio-2015 crc32 win64

我有一个应用程序,其中使用了一些代码完整性检查过程。完整性检查如下所示:

  codemark1_start:

   <Some code>

    codemark1_end:
    AsmCrcCodeMrk((MyTinyBuff), codemark1_start, codemark1_end, 1,Procedure);

AsmCrcCodeMrk宏看起来像

AsmCrcCodeMrk(DescriptorAddr, StartAddr, EndAddr, Id, BPA)  \
        AsmCrcCodeSig                                           \
        __asm mov EAX, offset DescriptorAddr                    \
        __asm mov EAX,  StartAddr                           \
        __asm mov EAX,  EndAddr                         \
        __asm mov EAX, Id\
       __asm mov EAX, BPA\

编译完成后,程序已由另一个应用程序处理,该应用程序“拉出”标签之间的片段并计算其CRC。 在Win32下,一切都可以编译并运行。

但是,对于X64存在困难:

1) X64不支持内联汇编程序。但我可以将宏作为函数放在单独的文件中,我可以使函数__forceinline。

2)在编译时需要获取标签的地址。这是一个问题。

有人能告诉我如何在X64平台的编译时获取标签地址吗?

0 个答案:

没有答案