基于EWDK10驱动安装包,只能编译NT驱动!电脑配置够硬,硬盘够大的就可以不用往下看了.我的硬盘太小了.成品只有600+mb. 是通过这位大佬的思路搞出来的,http://www.c0ks.com/thread-26623-1-1.html
第一步; 下载EWDK https://docs.microsoft.com/en-us/legal/windows/hardware/enterprise-wdk-license-2019 不用安装,只需提取几个文件.
第二步; 1.创建-wdk 文件夹
2.wdk 文件夹内创建 bin,inc和lib三个文件夹,分别存放编译器,头文件和库文件
3.bin文件夹 -32位平台和64位平台 选择一个
-\Program Files\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\bin -32位平台编译驱动 选择Hostx86文件夹,x64,x86二个文件夹分别是64,32位驱动(x64文件夹改名位amd64)//不改名也行,需要更改bat文件 -64位平台编译驱动 选择Hostx64文件夹,x64,x86二个文件夹分别是64,32位驱动(x64文件夹改名位amd64) -保存到bin文件夹
4.inc文件夹 -\Program Files\Windows Kits\10\Include\10.0.19041.0 -其中,km文件夹相当于wdk7的ddk文件夹,shared文件夹相当于wdk7的api文件夹,km\crt文件夹相当于wdk7的crt文件夹 将他们都提取出来,保存在 inc文件夹
5.lib文件夹内创建win, Crt 二个文件夹 -\Program Files\Windows Kits\10\Lib\10.0.19041.0\km -提取x64文件夹 保存到 win文件夹下amd64文件夹 -提取x86文件夹 保存到 win文件夹下x86文件夹
-\Program Files\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\lib -提取x64文件夹 保存到 Crt文件夹下amd64文件夹 -提取x86文件夹 保存到 Crt文件夹下x86文件夹
第三步; 编写bat文件,支持多源文件,多汇编文件编译 不会bat语法,有错的自己改下. @echo off SETLOCAL ENABLEDELAYEDEXPANSION set DDK_PATH=D:\EWDK\bin\amd64 set INC_PATH=D:\EWDK\inc set LIB_PATH=D:\EWDK\lib
set LINK_OBJ= set LINK_ASM= set SRC_PATH=..\Source
set ASM_NAME=asm64 //有多少个文件自己添加 set DRIVER_NAME=driver64//驱动名 set SOURCE_NAME=DriverEntry1 DriverEntry2//有多少个源文件自己添加
title Compile Driver Project - Platform:AMD64 echo (~)(~) (~) (~) (~)(~)Start Generating(~) (~) (~)(~) (~) (~) echo Project:HelloDrv
echo (~)(~) (~) (~) (~)(~)Start Compiling(~) (~) (~)(~) (~) (~) %DDK_PATH%\ml64 /c %SRC_PATH%\%ASM_NAME%.asm for %%n in (%ASM_NAME%) do (set LINK_ASM=!LINK_ASM! %%n.obj) echo Completed!
echo (~)(~) (~) (~) (~)(~)Start Compiling(~) (~) (~)(~) (~) (~)
for %%n in (%SOURCE_NAME%) do ( %DDK_PATH%\cl.exe %SRC_PATH%\%%n.c /I"%INC_PATH%\shared" /I"%INC_PATH%\km" /I"%INC_PATH%\crt" /Zi /nologo /W3 /WX /Od /Oy- /D"AMD64 " /D"_WIN64" /D "_NDEBUG" /D"_UNICODE" /D "UNICODE" /Zc:wchar_t /Zc:forScope /Fo"%%n.obj" /GS- /Gz /TC /c /ERRORREPORT:QUEUE )
echo Completed!
echo (~)(~) (~) (~) (~)(~)Start Linking(~) (~) (~)(~) (~) (~) for %%n in (%SOURCE_NAME%) do (set LINK_OBJ=!LINK_OBJ! %%n.obj) %DDK_PATH%\link.exe %LINK_OBJ% %LINK_ASM% /LIBPATH:"%LIB_PATH%\win\amd64" /LIBPATH:"%LIB_PATH%\Crt\amd64" "ntoskrnl.lib" "hal.lib" /NOLOGO /DEBUG /PDB:"%DRIVER_NAME%.pdb" /OUT:"%DRIVER_NAME%.sys" /SUBSYSTEM:NATIVE /Driver /ENTRY:"DriverEntry" /Machine:AMD64 /ERRORREPORT:QUEUE echo Completed!
pause
第四步; 搞定 自己测试吧!有不对的 改改 改后麻烦回复下 感谢
附件:EWDK链接:https://pan.baidu.com/s/11lJtb77PEgcxthDiQsbR6A 提取码: vxcw
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2023-6-17 22:20
被太阳天空照编辑
,原因: