欲望的奴隶
雪 币: 430
活跃值: (263)
能力值:
( LV3,RANK:20 )
在线值:
工欲善其事,必先利其器。 本文分享我用VSCode开发驱动的一些小心得。 如有雷同,纯属巧合
VS,WDK(VSCode只是作为IDE,编译还是需要VS工具链)
CMake
VSCode及其插件
把FndWDK的cmake文件夹复制到与helloworld同目录
新建CMakeLists.txt,main.cpp
cmake_minimum_required(VERSION 3.10) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../cmake") project(helloworld) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /WX-") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4 /WX-") # specify the C++ standard set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) add_definitions(-DUNICODE -D_UNICODE) find_package(WDK REQUIRED) wdk_add_driver(helloworld main.cpp )
extern "C" { #include <ntifs.h> #include <ntddk.h> } extern "C" DRIVER_INITIALIZE DriverEntry; static DRIVER_UNLOAD DriverUnload; //------------------------------------------------------------ // // void DriverUnload(PDRIVER_OBJECT driverObject) { UNREFERENCED_PARAMETER(driverObject); } NTSTATUS DriverEntry(PDRIVER_OBJECT driverObject, PUNICODE_STRING registryPath) { UNREFERENCED_PARAMETER(registryPath); PAGED_CODE(); auto status = STATUS_SUCCESS; //--------------------------------------- // driverObject->DriverUnload = DriverUnload; return status; }
VSCode打开,会提示选择工具包:
我选amd64
点击生成或F7生成项目
编译成功。还会提示
点允许,点允许后有代码补全,错误提示
然后就可以愉快写代码了。
以后新建驱动项目,直接复制CMakeLists.txt,然后稍加修改就行了
更多编译相关选项,可以查看CMAKE教程
支持汇编
enable_language(ASM_MASM) add_executable(helloworld main.cpp utils.asm )
也可以轻松支持stl,支持大型驱动构建
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /WX-") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4 /WX-") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../cmake") find_package(WDK REQUIRED) include_directories( "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/include" "C:/Program Files (x86)/Windows Kits/10/Include/10.0.17134.0/ucrt" ) # Add source files file(GLOB_RECURSE sourcefiles "*.h" "*.cc" "*.cpp" ) add_definitions(-D_NO_CRT_STDIO_INLINE) wdk_add_driver(AntiEAC_kernel ${sourcefiles} ) target_link_directories(AntiEAC_kernel PRIVATE "./infinityhook" "./HWIDSpoofer" ) target_link_libraries(AntiEAC_kernel libinfinityhook libHWIDSpoofer )
|
|
---|---|
|
mark,楼主辛苦了 |
|
mark,想把vscode构造一个轻量的vc开发编辑器,发现真麻烦,直接安装vs2019了~~ |
|
Genes mark,想把vscode构造一个轻量的vc开发编辑器,发现真麻烦,直接安装vs2019了~~ 就第一次和前几次麻烦点,后面的项目复用前面的配置文件,非常快速,便捷。 |
|
真好,我还是选择vs. |
|
可以不用,但是得会用 |
|
VS启动也不慢呀,这是电脑配置的问题吧,我VS都是秒开。 |
|
vim 插件装好,写代码非常快 再也不用鼠标了- - |
返回