Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 3 Май 2020
- Сообщения
- 4
- Реакции
- 0
C#:
#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>
#define m_iTeamNum 0xF4
#define dwLocalPlayer 0xD36B94
#define dwEntityList 0x4D4B144
#define m_iCrosshairId 0xB3D4
uintptr_t moduleBase;
DWORD procId;
HWND hwnd;
HANDLE hProcess;
uintptr_t GetModuleBaseAddress(const char* modName) {
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procId);
if (hSnap != INVALID_HANDLE_VALUE) {
MODULEENTRY32 modEntry;
modEntry.dwSize = sizeof(modEntry);
if (Module32First(hSnap, &modEntry)) {
do {
if (!strcmp(modEntry.szModule, modName)) {
CloseHandle(hSnap);
return (uintptr_t)modEntry.modBaseAddr;
}
} while (Module32Next(hSnap, &modEntry));
}
}
}
template<typename T> T RPM(SIZE_T address) {
T buffer;
ReadProcessMemory(hProcess, (LPCVOID)address, &buffer, sizeof(T), NULL);
return buffer;
}
uintptr_t getLocalPlayer() {
return RPM< uintptr_t>(moduleBase + dwLocalPlayer);
}
uintptr_t getPlayer(int index) {
return RPM< uintptr_t>(moduleBase + dwEntityList + index * 0x10);
}
int getTeam(uintptr_t player) {
return RPM<int>(player + m_iTeamNum);
}
int getCrosshairID(uintptr_t player) {
return RPM<int>(player + m_iCrosshairId);
}
int main() {
hwnd = FindWindowA(NULL, "Counter-Strike: Global Offensive");
GetWindowThreadProcessId(hwnd, &procId);
moduleBase = GetModuleBaseAddress("client_panorama.dll");
hProcess = OpenProcess(PROCESS_ALL_ACCESS, NULL, procId);
while (!GetAsyncKeyState(VK_END)) {
int CrosshairID = getCrosshairID(getLocalPlayer());
int CrosshairTeam = getTeam(getPlayer(CrosshairID-1));
int LocalTeam = getTeam(getLocalPlayer());
if (CrosshairID > 0 && CrosshairID < 32 && LocalTeam != CrosshairTeam)
{
if (GetAsyncKeyState(VK_LBUTTON))
{
mouse_event(MOUSEEVENTF_MIDDLEDOWN, NULL, NULL, 0, 0);
mouse_event(MOUSEEVENTF_MIDDLEUP, NULL, NULL, 0, 0);
}
}
}
}
Можете сказать мне почему этот кусок "чуда" не работает?)
Последнее редактирование: