Показать сообщение отдельно
Старый 01.11.2013, 04:43   #1
Drevno
Нуб
Аватар для Drevno
OFFLINE
Регистрация: 09.07.2013
Возраст: 49
Сообщений: 0
Благодарностей:
19 всего
Мнения: + 192
Репутация: 58

[0.8.9][OpenSource] Tundra Program


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);

}

Последний раз редактировалось Gremihanec; 01.11.2013 в 12:19. Причина: добавил зеркало
 
Сказали спасибо:
dobr (20.12.2013), V0ldemar (05.12.2013), Akhira (02.11.2013), SolDier220 (02.11.2013), DimJi (01.11.2013)