Hello, I encountered a problem during compilation.
My local OS is a cloud server, Ubuntu 20.
make
Precompiling main.o... [OK]
Precompiling parse_args.o... [OK]
Precompiling elsass.o... [OK]
Precompiling helpers.o... [OK]
Precompiling modules.o... [OK]
Precompiling pages.o... [OK]
Precompiling find_pid.o... [KO]
src/elsass/find_pid.cpp: In function ‘ULONG ELSASS_FindPid()’:
src/elsass/find_pid.cpp:40:10: error: ‘QueryFullProcessImageNameA’ was not declared in this scope
40 | if (!QueryFullProcessImageNameA(handle, 0, cname, &buffSize)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
Precompiling ntoskrnl_base.o... [OK]
Precompiling get_ntoskrnl_version.o... [OK]
Precompiling priv_increase.o... [OK]
Precompiling drop_driver_to_disk.o... [KO]
In file included from src/driver_magic/drop_driver_to_disk.cpp:2:
./includes/drv_speedfan.h:4:1: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
4 | inline constexpr unsigned char speedfan_sys[] = {
| ^~~~~~
In file included from src/driver_magic/drop_driver_to_disk.cpp:3:
./includes/drv_winio.h:4:1: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
4 | inline constexpr unsigned char winio_sys[] = {
| ^~~~~~
cc1plus: all warnings being treated as errors
Precompiling add_driver_via_registry.o... [OK]
Precompiling load_driver.o... [OK]
Precompiling unload_driver.o... [OK]
Precompiling shred_driver.o... [KO]
In file included from src/driver_magic/shred_driver.cpp:3:
./includes/drv_speedfan.h:4:1: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
4 | inline constexpr unsigned char speedfan_sys[] = {
| ^~~~~~
In file included from src/driver_magic/shred_driver.cpp:4:
./includes/drv_winio.h:4:1: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
4 | inline constexpr unsigned char winio_sys[] = {
| ^~~~~~
cc1plus: all warnings being treated as errors
Precompiling load_framework.o... [KO]
In file included from src/driver_magic/load_framework.cpp:2:
./includes/dm_utils.hpp:17:2: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
17 | inline std::map<std::uintptr_t, std::size_t> pmem_ranges{};
| ^~~~~~
./includes/dm_utils.hpp:48:2: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
48 | inline const auto init_ranges = ([]() -> bool
| ^~~~~~
cc1plus: all warnings being treated as errors
Precompiling driver_primitives.o... [OK]
Precompiling get_kernel_export.o... [OK]
Precompiling spawn_handle.o... [KO]
In file included from ./includes/dm_kernelsyscall.hpp:13,
from src/driver_magic/spawn_handle.cpp:6:
./includes/dm_utils.hpp:17:2: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
17 | inline std::map<std::uintptr_t, std::size_t> pmem_ranges{};
| ^~~~~~
./includes/dm_utils.hpp:48:2: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
48 | inline const auto init_ranges = ([]() -> bool
| ^~~~~~
In file included from src/driver_magic/spawn_handle.cpp:6:
./includes/dm_kernelsyscall.hpp:16:20: error: ‘invoke_result_t’ in namespace ‘std’ does not name a template type
16 | __forceinline std::invoke_result_t<T, Ts...> DM_KernelSyscall(void* addr, Ts ... args)
| ^~~~~~~~~~~~~~~
src/driver_magic/spawn_handle.cpp: In function ‘void* DM_SpawnHandle(ULONG)’:
src/driver_magic/spawn_handle.cpp:24:2: error: ‘DM_KernelSyscall’ was not declared in this scope
24 | DM_KernelSyscall<decltype(&KD_ZwOpenProcess)>(
| ^~~~~~~~~~~~~~~~
src/driver_magic/spawn_handle.cpp:24:19: error: expected primary-expression before ‘decltype’
24 | DM_KernelSyscall<decltype(&KD_ZwOpenProcess)>(
| ^~~~~~~~
src/driver_magic/spawn_handle.cpp:37:19: error: expected primary-expression before ‘decltype’
37 | DM_KernelSyscall<decltype(&KD_ZwOpenProcess)>(
| ^~~~~~~~
src/driver_magic/spawn_handle.cpp:48:19: error: expected primary-expression before ‘decltype’
48 | DM_KernelSyscall<decltype(&KD_ZwDuplicateObject)>(
| ^~~~~~~~
src/driver_magic/spawn_handle.cpp:60:19: error: expected primary-expression before ‘decltype’
60 | DM_KernelSyscall<decltype(&KD_ZwClose)>(
| ^~~~~~~~
src/driver_magic/spawn_handle.cpp:64:19: error: expected primary-expression before ‘decltype’
64 | DM_KernelSyscall<decltype(&KD_ZwClose)>(
| ^~~~~~~~
src/driver_magic/spawn_handle.cpp:16:13: error: unused variable ‘ntoskrnl_zwclose’ [-Werror=unused-variable]
16 | const auto ntoskrnl_zwclose = DM_GetKernelExportAddress(ntoskrnl_base, ntoskrnl_version_buffer, KE_ZwClose);
| ^~~~~~~~~~~~~~~~
src/driver_magic/spawn_handle.cpp:17:13: error: unused variable ‘ntoskrnl_zwopenprocess’ [-Werror=unused-variable]
17 | const auto ntoskrnl_zwopenprocess = DM_GetKernelExportAddress(ntoskrnl_base, ntoskrnl_version_buffer, KE_ZwOpenProcess);
| ^~~~~~~~~~~~~~~~~~~~~~
src/driver_magic/spawn_handle.cpp:18:13: error: unused variable ‘ntoskrnl_zwduplicateobject’ [-Werror=unused-variable]
18 | const auto ntoskrnl_zwduplicateobject = DM_GetKernelExportAddress(ntoskrnl_base, ntoskrnl_version_buffer, KE_ZwDuplicateObject);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
src/driver_magic/spawn_handle.cpp:22:20: error: unused variable ‘objAttrLsass’ [-Werror=unused-variable]
22 | OBJECT_ATTRIBUTES objAttrLsass = { sizeof(OBJECT_ATTRIBUTES), NULL, NULL, 0x00000200L, NULL, NULL };
| ^~~~~~~~~~~~
src/driver_magic/spawn_handle.cpp:35:20: error: unused variable ‘objAttrCurrent’ [-Werror=unused-variable]
35 | OBJECT_ATTRIBUTES objAttrCurrent = { sizeof(OBJECT_ATTRIBUTES), NULL, NULL, 0x00000200L, NULL, NULL };
| ^~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
Precompiling read_virtual_memory.o... [KO]
In file included from ./includes/dm_kernelsyscall.hpp:13,
from src/driver_magic/read_virtual_memory.cpp:4:
./includes/dm_utils.hpp:17:2: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
17 | inline std::map<std::uintptr_t, std::size_t> pmem_ranges{};
| ^~~~~~
./includes/dm_utils.hpp:48:2: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
48 | inline const auto init_ranges = ([]() -> bool
| ^~~~~~
In file included from src/driver_magic/read_virtual_memory.cpp:4:
./includes/dm_kernelsyscall.hpp:16:20: error: ‘invoke_result_t’ in namespace ‘std’ does not name a template type
16 | __forceinline std::invoke_result_t<T, Ts...> DM_KernelSyscall(void* addr, Ts ... args)
| ^~~~~~~~~~~~~~~
src/driver_magic/read_virtual_memory.cpp: In function ‘void DM_ReadVirtualMemory(HANDLE, ULONGLONG, PVOID, SIZE_T)’:
src/driver_magic/read_virtual_memory.cpp:18:2: error: ‘DM_KernelSyscall’ was not declared in this scope
18 | DM_KernelSyscall<decltype(&KD_ZwReadVirtualMemory)>(
| ^~~~~~~~~~~~~~~~
src/driver_magic/read_virtual_memory.cpp:18:19: error: expected primary-expression before ‘decltype’
18 | DM_KernelSyscall<decltype(&KD_ZwReadVirtualMemory)>(
| ^~~~~~~~
src/driver_magic/read_virtual_memory.cpp:16:13: error: unused variable ‘ntoskrnl_zwreadvirtualmemory’ [-Werror=unused-variable]
16 | const auto ntoskrnl_zwreadvirtualmemory = DM_GetKernelExportAddress(ntoskrnl_base, ntoskrnl_version_buffer, KE_ZwReadVirtualMemory);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
Precompiling get_process_peb.o... [KO]
In file included from ./includes/dm_kernelsyscall.hpp:13,
from src/driver_magic/get_process_peb.cpp:4:
./includes/dm_utils.hpp:17:2: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
17 | inline std::map<std::uintptr_t, std::size_t> pmem_ranges{};
| ^~~~~~
./includes/dm_utils.hpp:48:2: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
48 | inline const auto init_ranges = ([]() -> bool
| ^~~~~~
In file included from src/driver_magic/get_process_peb.cpp:4:
./includes/dm_kernelsyscall.hpp:16:20: error: ‘invoke_result_t’ in namespace ‘std’ does not name a template type
16 | __forceinline std::invoke_result_t<T, Ts...> DM_KernelSyscall(void* addr, Ts ... args)
| ^~~~~~~~~~~~~~~
src/driver_magic/get_process_peb.cpp: In function ‘ULONGLONG DM_GetProcessPEB(ULONG)’:
src/driver_magic/get_process_peb.cpp:20:2: error: ‘DM_KernelSyscall’ was not declared in this scope
20 | DM_KernelSyscall<decltype(&KD_PsLookupProcessByProcessId)>(
| ^~~~~~~~~~~~~~~~
src/driver_magic/get_process_peb.cpp:20:19: error: expected primary-expression before ‘decltype’
20 | DM_KernelSyscall<decltype(&KD_PsLookupProcessByProcessId)>(
| ^~~~~~~~
src/driver_magic/get_process_peb.cpp:26:36: error: expected primary-expression before ‘decltype’
26 | peb = (ULONGLONG)DM_KernelSyscall<decltype(&KD_PsGetProcessPeb)>(
| ^~~~~~~~
src/driver_magic/get_process_peb.cpp:16:13: error: unused variable ‘ntoskrnl_pslookupprocessbyid’ [-Werror=unused-variable]
16 | const auto ntoskrnl_pslookupprocessbyid = DM_GetKernelExportAddress(ntoskrnl_base, ntoskrnl_version_buffer, KE_PsLookupProcessByProcessId);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/driver_magic/get_process_peb.cpp:17:13: error: unused variable ‘ntoskrnl_psgetprocesspeb’ [-Werror=unused-variable]
17 | const auto ntoskrnl_psgetprocesspeb = DM_GetKernelExportAddress(ntoskrnl_base, ntoskrnl_version_buffer, KE_PsGetProcessPeb);
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/driver_magic/get_process_peb.cpp:19:12: error: unused variable ‘pEprocess’ [-Werror=unused-variable]
19 | PEPROCESS pEprocess = NULL;
| ^~~~~~~~~
cc1plus: all warnings being treated as errors
Precompiling query_virtual_memory.o... [KO]
In file included from ./includes/dm_kernelsyscall.hpp:13,
from src/driver_magic/query_virtual_memory.cpp:1:
./includes/dm_utils.hpp:17:2: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
17 | inline std::map<std::uintptr_t, std::size_t> pmem_ranges{};
| ^~~~~~
./includes/dm_utils.hpp:48:2: error: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Werror]
48 | inline const auto init_ranges = ([]() -> bool
| ^~~~~~
In file included from src/driver_magic/query_virtual_memory.cpp:1:
./includes/dm_kernelsyscall.hpp:16:20: error: ‘invoke_result_t’ in namespace ‘std’ does not name a template type
16 | __forceinline std::invoke_result_t<T, Ts...> DM_KernelSyscall(void* addr, Ts ... args)
| ^~~~~~~~~~~~~~~
src/driver_magic/query_virtual_memory.cpp: In function ‘NTSTATUS DM_QueryVirtualMemory(HANDLE, PVOID64, PMEMORY_BASIC_INFORMATION)’:
src/driver_magic/query_virtual_memory.cpp:37:11: error: ‘DM_KernelSyscall’ was not declared in this scope
37 | result = DM_KernelSyscall<decltype(&KD_ZwQueryVirtualMemory)>(
| ^~~~~~~~~~~~~~~~
src/driver_magic/query_virtual_memory.cpp:37:28: error: expected primary-expression before ‘decltype’
37 | result = DM_KernelSyscall<decltype(&KD_ZwQueryVirtualMemory)>(
| ^~~~~~~~
src/driver_magic/query_virtual_memory.cpp:9:27: error: unused variable ‘mic’ [-Werror=unused-variable]
9 | MEMORY_INFORMATION_CLASS mic = MemoryBasicInformation;
| ^~~
src/driver_magic/query_virtual_memory.cpp:35:13: error: unused variable ‘ntoskrnl_zwqueryvirtualmemory’ [-Werror=unused-variable]
35 | const auto ntoskrnl_zwqueryvirtualmemory = DM_GetKernelExportAddress(ntoskrnl_base, ntoskrnl_version_buffer, KE_ZwQueryVirtualMemory);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
Precompiling drunk_strdup.o... [OK]
Precompiling drunk_atoi.o... [OK]
Precompiling drunk_atoi_hex.o... [OK]
Precompiling drunk_strrstr.o... [OK]
Precompiling drunk_strcat.o... [OK]
Precompiling drunk_strcpy.o... [OK]
Precompiling drunk_cstring_to_wchar.o... [OK]
Precompiling drunk_wchar_to_cstring.o... [OK]
Precompiling drunk_random_string.o... [OK]
Precompiling detect_edr.o... [KO]
src/utils/detect_edr.cpp: In function ‘EdrProfile UTILS_DetectEdr()’:
src/utils/detect_edr.cpp:71:10: error: ‘QueryFullProcessImageNameA’ was not declared in this scope
71 | if (!QueryFullProcessImageNameA(handle, 0, cname, &buffSize)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
Precompiling get_address.o... [OK]
Precompiling privcheck.o... [OK]
[COMPILATION FAILED]
make: *** No rule to make target 'src/unxor/unxor.c', needed by 'unxor'. Stop.
Hello, I encountered a problem during compilation.
My local OS is a cloud server, Ubuntu 20.
The specific error is as follows: