基于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
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
最后于 2023-6-17 22:20
被太阳天空照编辑
,原因: