Главная » Новости » Полезные статьи » Создание первого трейнера в C++

Создание первого трейнера в C++

В категории: Полезные статьи | Дата: 24.11.2013, 16:16 | Просмотров: 352


Думаю многие использовали различные трейнеры для прохождения некоторых игр.
В этой части мы познакомимся как создать простейший трейнер самому!
Для начала запасемся необходимыми инструментами:
-какой-нибудь компилятор C++ . Например VisualC++ 6.0.
-программа для поиска нужных адресов памяти. Например ArtMoney.
-сама игра. Например Red Alert 2

Допустим, все это вы уже скачали и установили. Что делать дальше ?
Дальше надо определить, что необходимо сделать(бесконечное здоровье, манна, деньги и т. д.). Т.к мы работаем с Red Alert 2 и никакой манны и хп там нет, то будем искать деньги. Можно сразу пойти на http://www.chemax.ru/tools2.php и найти таблицу, а можно скачать пробную версию ArtMoney и найти адрес самому. Конечно второй вариант предпочтительнее. Про нахождение адресов очень подробно написано в справке к артмани, поэтому разбирать его не буду, скажу только что Red Alert 2 - DMA игра, т.е память под ее нужды распределяется динамически, поэтому использовать конечный адрес бессмысленно, кроме него нужно найти и указатель.
Итак указатель и смещение найдены! В моей версии игры указатель 00A1E0C4 смещение 24С. (У вас может быть по-другому, но общий порядок следующих действий будет одинаковым).
Открываем VisualC++ ,жмем File->New->Win32ConsoleAplication->Simple Aplication.
Все проект создан. Удаляем все из Name.cpp (где Name название вашего проекта.) и пишем в него следующее:
Код
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>

DWORD pointer = 00A1E0C4 ;
DWORD address;
void main()
{
printf("=======Money cheat for C&C Red Alert 2======= \n \n");
printf("key 1 – 10000$; key 2 – 20000$; key 3 – 30000$ key E - exit \n");
While(!getchar(‘e’)){//Входим в цикл до нажатия клавиши E.
  if(getchar(‘1’) ){//Если игрок нажал на 1.
  ReadProcessMemory(pHandle, (LPCVOID)pointer, &pointer, 4, 0);//Читаем значение из указателя.
  address = pointer + 24С;//Прибавляем смещение.
  WriteProcessMemory(pHandle, (LPVOID)address, 10000, 4, NULL);//Записываем в получившийся адрес 10000.
  }
  //остальные кнопки сделайте сами

Sleep(10);//Ждем 10мс, чтобы не нагружать процессор и повторяем выше стоящие действия.
}
}
}


Когда все будет написано выбирайте Build->BatchBuild и жмите Build. Все, трейнер готов!
Автор: http://gamehack.do.am/

Поделись с друзьями

html-cсылка:

BB-cсылка:

Прямая ссылка:

Комментарии (0)

bbsmenu">
Оставить комментарий