Ideya vzata ot:
Код:
https://www.rf-cheats.ru/forum/showthread.php?t=215301
No tam programa balshaya i 8/42 virustotal - nekchemu.
Kak ispolzovat:
Zapustit .exe kogda libo znacheneya ne imeyet.
Pravaya knopka meshe vkluchayet i vekluchayet.
Skachat EXE:
Код:
http://rghost.net/49856491
http://gfile.ru/a2cgA
Source code:
Код:
#include <cstdio>
#include <windows.h>
#include <tlhelp32.h>
#include <iostream>
using namespace std;
DWORD GetProcId(wchar_t* ProcName)
{
PROCESSENTRY32 pe32;
HANDLE hSnapshot = NULL;
pe32.dwSize = sizeof( PROCESSENTRY32 );
hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
if(Process32First(hSnapshot, &pe32 ))
{
do
{
if( wcscmp(pe32.szExeFile, ProcName) == 0 )
return pe32.th32ProcessID;
}
while( Process32Next( hSnapshot, &pe32 ) );
}
if( hSnapshot != INVALID_HANDLE_VALUE )
CloseHandle( hSnapshot );
return 0;
}
void main(void)
{
DWORD proc_id;
BOOL toggle = false;
DWORD target_offset = 0x007A5480;
while(!(proc_id = GetProcId(L"WorldOfTanks.exe")))
Sleep(1000);
cout << "Process [WorldOfTanks.exe] Found | PID: " << proc_id << "\n";
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc_id);
BYTE data_orig[] = {0x2F, 0xC8, 0x76, 0x35};
BYTE data_patch[] = {0x57, 0xC0, 0xEB, 0x3B};
DWORD dataSize = sizeof(data_orig);
cout << "Toggle: right mouse button.\n";
while (TRUE)
{
if(GetAsyncKeyState(VK_RBUTTON)&0x8000)
{
while(GetAsyncKeyState(VK_RBUTTON)&0x8000)
Sleep(1);
BYTE* patch;
if (toggle)
{
patch = data_orig;
cout << "[x] Hack Off!\n";
}
else
{
patch = data_patch;
cout << "[x] Hack On!\n";
}
unsigned long Protection;
VirtualProtect((void*)target_offset, dataSize, PAGE_EXECUTE_READWRITE, &Protection);
WriteProcessMemory(hProcess, (void*)target_offset, patch, dataSize, 0);
VirtualProtect((void*)target_offset, dataSize, Protection, &Protection);
toggle = !toggle;
}
Sleep(50);
}
CloseHandle(hProcess);
}