-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdriver.h
68 lines (53 loc) · 1.79 KB
/
driver.h
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#pragma once
#include <WinSock2.h>
#include <cstdint>
#include <math.h>
namespace Driver {
void Initialize();
void DeInitialize();
SOCKET Connect();
void Disconnect(SOCKET connection);
uint32_t read_mem(SOCKET connection, uint32_t process_id, uintptr_t address, uintptr_t buffer, size_t size);
uint32_t write_mem(SOCKET connection, uint32_t process_id, uintptr_t address, uintptr_t buffer, size_t size);
uint64_t get_process_base_address(SOCKET connection, uint32_t process_id);
template<typename T>
T read(const SOCKET connection, const uint32_t process_id, const uintptr_t address) {
T buffer{ };
read_mem(connection, process_id, address, uint64_t(&buffer), sizeof(T));
return buffer;
}
template<typename T>
void write(const SOCKET connection, const uint32_t process_id, const uintptr_t address, size_t buffer) {
write_mem(connection, process_id, address, uint64_t(&buffer), sizeof(T));
}
}
class Vector3 {
public:
Vector3() : x(0.f), y(0.f), z(0.f) {
// None
}
Vector3(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {
// None
}
~Vector3() {
// None
}
float x;
float y;
float z;
inline float Dot(Vector3 v) {
return x * v.x, y * v.y, z * v.z;
}
inline float Distance(Vector3 v) {
return float(sqrtf(powf(v.x - x, 2.0) + powf(v.y - y, 2.0) + powf(v.z - z, 2.0)));
}
Vector3 operator+(Vector3 v) {
return Vector3(x + v.x, y + v.y, z + v.z);
}
Vector3 operator-(Vector3 v) {
return Vector3(x - v.x, y - v.y, z - v.z);
}
Vector3 operator*(float number) const {
return Vector3(x * number, y * number, z * number);
}
};