From 0c194bc8046cb3ecb4e4d0577f36a1d3bde58d11 Mon Sep 17 00:00:00 2001 From: boris Date: Thu, 27 Dec 2018 22:42:05 +1300 Subject: bap --- .../csgo-client/RemoteCode/RemoteProcess.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'csgo-loader/csgo-client/RemoteCode/RemoteProcess.cpp') diff --git a/csgo-loader/csgo-client/RemoteCode/RemoteProcess.cpp b/csgo-loader/csgo-client/RemoteCode/RemoteProcess.cpp index 8d2509f..6893498 100644 --- a/csgo-loader/csgo-client/RemoteCode/RemoteProcess.cpp +++ b/csgo-loader/csgo-client/RemoteCode/RemoteProcess.cpp @@ -29,6 +29,10 @@ namespace RemoteCode // swoo m_ProcessId = ProcessEntry.th32ProcessID; m_Process = OpenProcess(PROCESS_ALL_ACCESS, false, ProcessEntry.th32ProcessID); + + if(!m_Process) + ERROR_ASSERT("[000G:%08x] There was an error with accessing a process.", GetLastError()); + return true; } } @@ -40,13 +44,19 @@ namespace RemoteCode void RemoteProcess::ReadMemoryWrapper_Internal(void *Address, void *Data, size_t SizeOfData) { static auto ZwReadVirtualMemory = Syscalls->Find(FNV("ZwReadVirtualMemory")); - ZwReadVirtualMemory(m_Process, Address, Data, SizeOfData, nullptr); + NTSTATUS Status = ZwReadVirtualMemory(m_Process, Address, Data, SizeOfData, nullptr); + + if(NT_ERROR(Status)) + ERROR_ASSERT("[00DF:%08x] There was an error with accessing a process.", Status); } void RemoteProcess::WriteMemoryWrapper_Internal(void *Address, void *Data, size_t SizeOfData) { static auto ZwWriteVirtualMemory = Syscalls->Find(FNV("ZwWriteVirtualMemory")); - ZwWriteVirtualMemory(m_Process, Address, Data, SizeOfData, nullptr); + NTSTATUS Status = ZwWriteVirtualMemory(m_Process, Address, Data, SizeOfData, nullptr); + + if(NT_ERROR(Status)) + ERROR_ASSERT("[00DF:%08x] There was an error with accessing a process.", Status); } void *RemoteProcess::Allocate(size_t AllocationSize) @@ -64,8 +74,8 @@ namespace RemoteCode PAGE_EXECUTE_READWRITE ); - if(!NT_SUCCESS(Status)) - return nullptr; + if(NT_ERROR(Status)) + ERROR_ASSERT("[00DF:%08x] There was an error with accessing a process.", Status); return AllocationAddress; } @@ -85,9 +95,11 @@ namespace RemoteCode while(Module32Next(Toolhelp, &ModuleEntry)) { - //printf("%s\n", ModuleEntry.szModule); if(strstr(ModuleEntry.szModule, ModuleName)) { + if(!ModuleEntry.hModule) + ERROR_ASSERT("[00DF:00001C00] An integrity check failed."); + CloseHandle(Toolhelp); return RemoteModule(ModuleEntry.hModule); } -- cgit v1.2.3