-
Автор темы
- #1
Хочу добавить уже готовую функцию активации экстернал триггера в checkbox windows forms, но т.к. я не особо отличаюсь интеллектом сделать это я не могу. Памахите кто может
Код:
#include <Windows.h>
#include <TlHelp32.h>
#include <iostream>
using namespace std;
LPCWSTR ProcessName = L"csgo.exe";
DWORD FindProcessByName(LPCWSTR ProcessName)
{
HANDLE hSnapshot;
PROCESSENTRY32 pEntry = { 0 };
pEntry.dwSize = sizeof(pEntry);
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (hSnapshot == INVALID_HANDLE_VALUE)
{
CloseHandle(hSnapshot);
return 0;
}
if (Process32First(hSnapshot, &pEntry))
{
while (Process32Next(hSnapshot, &pEntry))
{
if (!lstrcmpi(ProcessName, pEntry.szExeFile))
{
CloseHandle(hSnapshot);
return pEntry.th32ProcessID;
}
}
}
CloseHandle(hSnapshot);
return FALSE;
}
DWORD ProcessID = FindProcessByName(ProcessName);
DWORD GetModuleNamePointer(LPCWSTR MoudleName, DWORD ProcessID)
{
MODULEENTRY32 mEntry = { 0 };
HANDLE hSnapshot;
mEntry.dwSize = sizeof(mEntry);
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessID);
if (hSnapshot == INVALID_HANDLE_VALUE)
{
CloseHandle(hSnapshot);
return 0;
}
if (Module32First(hSnapshot, &mEntry))
{
while (Module32Next(hSnapshot, &mEntry))
{
if (!lstrcmpi(mEntry.szModule, MoudleName))
{
CloseHandle(hSnapshot);
return (DWORD)mEntry.modBaseAddr;
}
}
}
CloseHandle(hSnapshot);
return FALSE;
}
class GetModulePointer
{
public:
DWORD DLLServer = GetModuleNamePointer(L"server.dll", ProcessID);
DWORD DLLEngine = GetModuleNamePointer(L"engine.dll", ProcessID);
DWORD DLLClient = GetModuleNamePointer(L"client.dll", ProcessID);
DWORD DLLVGUI = GetModuleNamePointer(L"vguimatsurface.dll", ProcessID);
};
GetModulePointer ModulePointer;
HANDLE Handle(DWORD ProcessID)
{
HANDLE HandleProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, ProcessID);
if (HandleProcess) return HandleProcess;
CloseHandle(HandleProcess);
cout << "ErrorTakeHandle!" << endl;
return NULL;
}
HANDLE HandleProcess = Handle(ProcessID);
template <class T>
T Read(const DWORD addr) {
T _read;
ReadProcessMemory(HandleProcess, reinterpret_cast<LPVOID>(addr), &_read, sizeof(T), NULL);
return _read;
}
template <class T>
void Write(const DWORD addr, T val) {
WriteProcessMemory(HandleProcess, reinterpret_cast<LPVOID>(addr), &val, sizeof(T), NULL);
}
Код:
int m_iCrosshairId = 0xB2A4;
int m_iHealth = 0xFC;
int m_iTeamNum = 0xF0;
int dwForceAttack = 0x2EBC23C;
int dwLocalPlayer = 0xA9D0DC;
int dwEntityList = 0x4A79EC4;
Код:
#include "hProcess.h"
#include "Offsets.h"
class Cheats
{
private:
int LocalPlayer = Read<int>(ModulePointer.DLLClient + dwLocalPlayer);
int LocalPlayerTeam = Read<int>(LocalPlayer + m_iTeamNum);
int CrossHairID = Read<int>(LocalPlayer + m_iCrosshairId);
int CrossHairTarget = Read<int>(ModulePointer.DLLClient + dwEntityList + (CrossHairID - 1) * 0x10);
int CrossHairTargetTeam = Read<int>(CrossHairTarget + m_iTeamNum);
public:
void Trigger()
{
while (true)
if (LocalPlayerTeam != CrossHairTargetTeam)
{
Write<int>(dwForceAttack + ModulePointer.DLLClient, 5);
Sleep(1);
Write<int>(dwForceAttack + ModulePointer.DLLClient, 4);
}
}
};
Код:
#include "MyForm.h"
using namespace System;
using namespace System::Windows::Forms;
[STAThread]
void main(array<String^>^ args)
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Window::MyForm form;
Application::Run(%form);
}
Код:
#pragma once
#include "main.h"
namespace Window {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Сводка для MyForm
/// </summary>
public ref class MyForm : public System::Windows::Forms::Form
{
public:
MyForm(void)
{
InitializeComponent();
//
//TODO: добавьте код конструктора
//
}
protected:
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
~MyForm()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::CheckBox^ TriggerController;
protected:
private:
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
void InitializeComponent(void)
{
this->TriggerController = (gcnew System::Windows::Forms::CheckBox());
this->SuspendLayout();
//
// TriggerController
//
this->TriggerController->AutoSize = true;
this->TriggerController->Location = System::Drawing::Point(13, 13);
this->TriggerController->Name = L"TriggerController";
this->TriggerController->Size = System::Drawing::Size(59, 17);
this->TriggerController->TabIndex = 0;
this->TriggerController->Text = L"Trigger";
this->TriggerController->UseVisualStyleBackColor = true;
this->TriggerController->Click += gcnew System::EventHandler(this, &MyForm::TriggerController_Click);
//
// MyForm
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(284, 261);
this->Controls->Add(this->TriggerController);
this->Name = L"MyForm";
this->Text = L"MyForm";
this->Load += gcnew System::EventHandler(this, &MyForm::MyForm_Load);
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void TriggerController_Click(System::Object^ sender, System::EventArgs^ e) {
}
};
}