summaryrefslogtreecommitdiff
path: root/csgo-loader/csgo-client/RemoteCode/RemoteCodeClient.hpp
blob: 6794403614bf04152db51502be7f546f0c2f913f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once

#include <RemoteCode/RemoteProcess.hpp>

namespace RemoteCode
{
	struct RemoteCodeParameters
	{
		uintptr_t m_EndSceneVmt;		// client
		uintptr_t m_OriginalEndScene;	// client
		uintptr_t m_EntryPoint;			// server
		uintptr_t m_CheatHeader;		// server (this can also be constant but hey..)
		uintptr_t m_VirtualProtect;		// client
	};

	class RemoteCodeClient
	{
		ByteArray		m_Code;
		RemoteProcess	m_Process;
		uintptr_t		m_DirectX;

	public:
		RemoteCodeClient() = default;

		// Send server the allocation address.
		// This will also send the original and vmt address of endscene.
		RemoteCodeParameters Start(RemoteProcess &Process);

		// Allocate, write and then dispatch the shellcode.
		void Dispatch(ByteArray &Shellcode);
	};
}