MysteryOfPanda 发表于 2014-10-1 00:33:15

在VS2012 x64下编译驱动使用asm关键字的完整方案

以前看雪一篇帖子讲到了用ICC编译器来恢复__asm 本菜倒腾了一会 在VS2012 64位驱动下使用asm关键字,废话少说贴出我的配置

1、去Intel官网下载Intel Parallel Studio XE,我下载的是2015版本。

2、安装好Intel Parallel Studio XE 2015后,安装WDK 7600.16385.1(WDK8似乎配置不起来)。

3、大体配置参看http://www.cnblogs.com/quark/archive/2013/05/20/3088974.html 这篇32位的驱动VS2010的配置 将其配置应用到VS2012上
然后注意修改一下几点:
Platform toolset:Intel C++ Compiler XE 15.0
lib目录 C:\WinDDK\7600.16385.1\lib\win7\amd64
附加依赖库 ntoskrnl.lib;hal.lib;ntstrsafe.lib
目标机器 x64
预处理定义 WIN64
_CONSOLE
_AMD64_
_DDK_
_NDEBUG
DBG=0
4、测试
Code:
#include"ntddk.h"

NTSTATUS DriverEntry( PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
{
      DbgPrint("HI!!\n");
      __asm
      {
                xor rax,rax
      }
      return STATUS_SUCCESS;
}
编译成功:)
1>Building with Intel(R) C++ Compiler XE 15.0
1>ClCompile:
1>***** ClCompile (x64 - Intel C++)
1>DriverEntry.c
成功运行在Win7 x64
...亲爱的内联又回来了

0xAA55 发表于 2014-10-1 21:11:05

可否运行一些比较屌的做示范呢?比如cli hlt

watermelon 发表于 2020-2-1 14:22:07

intel的c++编译器是支持x64汇编关键字__asm的,但是x64的msvc编译器可以配置一下,然后把需要用的汇编代码单独写成函数的文件,在C语言中进行调用,配置也很简单,网上有不少教程,更改asm文件的属性即可。
页: [1]
查看完整版本: 在VS2012 x64下编译驱动使用asm关键字的完整方案