View difference between Paste ID: QJ4af4Rc and LzraaSK1
SHOW: | | - or go back to the newest paste.
1
#include "stdafx.h"
2
#include <Windows.h>
3
#include <iostream>
4
#include <TlHelp32.h>
5
using namespace std;
6
7
bool GetGameAccess();
8
void PressKey(unsigned short KeyCode);
9
ULONG GetModuleAddress(const char *szModuleName, const ULONG dwProcessId);
10
int IsAlive();
11
int GetMyTeam();
12
int GetTargetTeam(int AimTarget);
13
14
HANDLE phandle;
15
ULONG ClientDLL;
16
ULONG EngineDLL;
17
18
int main()
19
{
20
	bool Continue = GetGameAccess();
21
	if(Continue)
22
	{
23
		cout << "Triggerbot loaded!" << endl;
24
		int i = 0, AimTarget = 0; ULONG AimOffset=0;
25
		while(1)
26
		{
27
			ReadProcessMemory(phandle, LPCVOID(ClientDLL+0x780CD0), &i, sizeof(i), 0); AimOffset = i + 0x14A8;
28
			ReadProcessMemory(phandle, LPCVOID(AimOffset), &AimTarget, sizeof(AimTarget), NULL);
29
			if(AimTarget != 0)
30-
			int IsAlivex = 0;
30+
31-
			ReadProcessMemory(phandle, LPCVOID(ClientDLL+0x21E010), &IsAlivex, sizeof(IsAlivex), NULL);
31+
32-
			cout << IsAlivex << endl;
32+
33
				int IsDead = IsAlive();
34
				if (TargetTeam != MyTeam && 
35
					(TargetTeam == 2 || TargetTeam == 3) && 
36
					(MyTeam == 2 || MyTeam == 3) && 
37
					IsDead == 0)
38
				PressKey(0x1A);
39
			}
40
			else
41
				Sleep(1);
42
			
43
		}
44
	}
45
	cin.get();
46
}
47
48
int IsAlive()
49
{
50
	int Alive = 0;
51
	ReadProcessMemory(phandle, LPCVOID(ClientDLL + 0x77C5F0), &Alive, sizeof(Alive), NULL);
52
	return Alive;
53
}
54
55
int GetMyTeam()
56
{
57
	int Value = 0, PlayerID = 0;
58
	ReadProcessMemory(phandle, LPCVOID(EngineDLL + 0x42CAD8), &PlayerID, sizeof(PlayerID), NULL);
59
	PlayerID = 0x6E4+(4*PlayerID);
60
	ReadProcessMemory(phandle, LPCVOID(ClientDLL + 0x74B430), &Value, sizeof(Value), NULL);
61
	ReadProcessMemory(phandle, LPCVOID(Value+0x26C), &Value, sizeof(Value), NULL);
62
	ReadProcessMemory(phandle, LPCVOID(Value+PlayerID), &Value, sizeof(Value), NULL);
63
	return Value;
64
}
65
66
int GetTargetTeam(int AimTarget)
67
{
68
	int Value1 = 0, Value2 = 0;
69
	ReadProcessMemory(phandle, LPCVOID(ClientDLL + 0x74B430), &Value1, sizeof(Value1), NULL);
70
	ReadProcessMemory(phandle, LPCVOID(Value1 + 0x26C), &Value1, sizeof(Value1), NULL);
71
	Value2 = 0x6E4+(4*AimTarget);
72
	ReadProcessMemory(phandle, LPCVOID(Value1 + Value2), &Value1, sizeof(Value1), NULL);
73
	return Value1;
74
}
75
76
bool GetGameAccess()
77
{
78
	ULONG pid;
79
	HWND hWnd;
80
	hWnd = FindWindow(NULL, "Counter-Strike Source");
81
	if(!hWnd)
82
	{
83
		cout <<"Game not found. Press enter to retry.\n";
84
		cin.get();
85
		main();
86
		return false;
87
	}
88
	else
89
	{
90
		GetWindowThreadProcessId(hWnd, &pid);
91
		phandle = OpenProcess(PROCESS_VM_READ, 0, pid);
92
		if(!phandle)
93
		{
94
			cout << "Could not get handle to window. Press enter to retry.\n";
95
			cin.get();
96
			main();
97
			return false;
98
		}
99
		else
100
		{
101
			ClientDLL = GetModuleAddress("client.dll", pid);
102
			EngineDLL = GetModuleAddress("engine.dll", pid);
103
			return true;
104
		}
105
	}
106
}
107
108
ULONG GetModuleAddress(const char *szModuleName, const ULONG dwProcessId)
109
{
110
    if (!szModuleName || !dwProcessId)
111
        return 0;
112
	HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);
113
    if (hSnap == INVALID_HANDLE_VALUE)
114
        return 0;
115
	MODULEENTRY32 me;
116
    me.dwSize = sizeof(MODULEENTRY32);
117
    if (Module32First(hSnap, &me))
118
    {
119
        while (Module32Next(hSnap, &me))
120
        {
121
			if (strcmp(reinterpret_cast<const char*>(me.szModule), szModuleName) == 0)
122
			{
123
                CloseHandle(hSnap);
124
                return (ULONG)me.modBaseAddr;
125
			}
126
        }
127
    }
128
    CloseHandle(hSnap);
129
    return 0;
130
}
131
132
void PressKey(unsigned short KeyCode)
133
{
134
	INPUT InputData;
135
	InputData.type = INPUT_KEYBOARD;
136
	InputData.ki.wScan = KeyCode;
137
	InputData.ki.time = (0);
138
	InputData.ki.dwExtraInfo = 0;
139
	InputData.ki.dwFlags = 0;
140
	SendInput(1, &InputData, sizeof(InputData));
141
	Sleep(10);
142
	InputData.ki.dwFlags = KEYEVENTF_KEYUP;
143
	SendInput(1, &InputData, sizeof(InputData));
144
	Sleep(10);
145
}