1
+ cmake_minimum_required (VERSION 3.23.0)
2
+ project (kptnhook VERSION 0.1.0)
3
+
4
+ #include(CTest)
5
+ #enable_testing()
6
+
7
+ list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR} /deps/findwdk/cmake" )
8
+ find_package (WDK REQUIRED)
9
+
10
+ set_property (DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS src/shellcode/shellcode32.asm)
11
+ set_property (DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS src/shellcode/shellcode64.asm)
12
+ set_property (DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS src/shellcode/structs.asm)
13
+
14
+ exec_program (powershell "${CMAKE_CURRENT_LIST_DIR} "
15
+ ARGS -ExecutionPolicy Bypass -File ${CMAKE_CURRENT_LIST_DIR} \\compile-shellcode.ps1 ${CMAKE_CURRENT_LIST_DIR} \\src\\shellcode\\shellcode32.asm
16
+ OUTPUT_VARIABLE SHELLCODE_BYTES32)
17
+
18
+ message ("compiled 32bit shellcode: ${SHELLCODE_BYTES32} " )
19
+
20
+ exec_program (powershell "${CMAKE_CURRENT_LIST_DIR} "
21
+ ARGS -ExecutionPolicy Bypass -File ${CMAKE_CURRENT_LIST_DIR} \\compile-shellcode.ps1 ${CMAKE_CURRENT_LIST_DIR} \\src\\shellcode\\shellcode64.asm
22
+ OUTPUT_VARIABLE SHELLCODE_BYTES64)
23
+
24
+ message ("compiled 64bit shellcode: ${SHELLCODE_BYTES64} " )
25
+
26
+ wdk_add_driver(kptnhook src/main.cpp)
27
+
28
+ target_compile_definitions (kptnhook PUBLIC ARR_SHELLCODE32=${SHELLCODE_BYTES32} )
29
+ target_compile_definitions (kptnhook PUBLIC ARR_SHELLCODE64=${SHELLCODE_BYTES64} )
30
+ add_custom_command (TARGET kptnhook POST_BUILD
31
+ COMMAND ${WDK_ROOT} /bin/${WDK_VERSION} /x64/signtool.exe sign /v /n kptnhook $<TARGET_FILE:kptnhook>
32
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
33
+ COMMENT "signing kernel driver"
34
+ )
35
+
36
+ add_subdirectory (src)
37
+ add_subdirectory (include /kptnhook)
38
+ #add_subdirectory(deps)
39
+
40
+ set (CPACK_PROJECT_NAME ${PROJECT_NAME} )
41
+ set (CPACK_PROJECT_VERSION ${PROJECT_VERSION} )
42
+ include (CPack)
43
+
44
+ message (${WDK_ROOT} /bin/${WDK_VERSION} /x64/signtool.exe )
0 commit comments