Логотип игрового форума RF-Cheats.ru    
Новости онлайн игр Гарант RF-Cheats.ru Чёрный рынок Реклама и привилегии Разработка читов Арбитраж

Регистрация Бан-лист Сообщество ПОПУЛЯРНОЕ
Вернуться   RF-Cheats.ru - форум читеров и ботоводов > > >

Взлом и программирование

: Аспекты программирования при реализации различных методик взлома.
Читы и обход фроста для RF Online без хайдаБоты и читы для Perfect World бесплатно без хайдаМоды и читы для World of Tanks (WoT) бесплатно без хайдаМоды и читы для Armored Warfare бесплатно без хайдаБоты и читы для DOTA 2 бесплатно без хайдаБоты и читы для Black Desert Online бесплатно без хайдаЧиты на ArcheAge бесплатно без хайдаЧиты для Warface бесплатно без хайдаВзлом ВКонтакте и ОдноклассниковСписок разделов со всеми играмиЧиты для онлайн игр






Ответ
 
Опции темы
Старый 25.12.2016, 19:51   #1
mraklbrw
Освоившийся
Аватар для mraklbrw
OFFLINE
Регистрация: 25.12.2016
Возраст: 27
Сообщений: 40
Благодарностей:
0 всего
Мнения: -22
Репутация: 1

Использование найденного указателя при написании чита


Всеем доброго дня.

Только что разобрался с темой поиска указателей.

Пробовал на игре Master of Defense посредством Cheat Engin-а.

Нашёл указатель и оффсеты:

"Main.exe"+0012FDB4

84
2B0
224
4BC
0


Написал чит-трейнер на Cheat Engine. Всё работает. Теперь хотелось бы написать чит-трейнер на C++.

Проблема вот в чём: не пойму, что делать с указателем.

К какой ячейке памяти обращаться?

Я так полагаю, что должен быть конкретный hex-адрес.
 
Ответить с цитированием


Старый 26.12.2016, 17:57   #2
mraklbrw
Освоившийся
Аватар для mraklbrw
OFFLINE
Регистрация: 25.12.2016
Возраст: 27
Сообщений: 40
Благодарностей:
0 всего
Мнения: -22
Репутация: 1

Принцип понял, однако возникла некоторая проблема.
Нашёл указатель второго уровня:
"Main.exe"+0012F320
50C
1C0
Определил базовый адрес программы:
0x1012F454
И пытаюсь прочитать значение переменной, отвечающей за монеты таким образом:

#include "http.h"
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
#include <cstring>
#include <random>
#include <urlmon.h>
#include<Windows.h>
#include <Shellapi.h>
#include <process.h>
#include <tlhelp32.h>
#include <psapi.h>
#pragma comment( lib, "psapi" )
#pragma comment (lib, "urlmon.lib")
#pragma warning(disable: 4996)
using namespace std;
// 0x002A1D28
DWORD Base_Adress = 0x1012F454;
DWORD pid;
DWORD value_1 = 0x0012F320;
DWORD get_value;
int main()
{
HWND hwnd = FindWindowA(0, ("Master of Defense by Voodoo Dimention (c) 2006 "));
GetWindowThreadProcessId(hwnd, &pid);
if (hwnd)
cout << "process id: " << pid << endl;
else
cout << "Window isn't found." << endl;
HANDLE phandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
ReadProcessMemory(phandle, (LPVOID)(Base_Adress + value_1), &get_value, sizeof(get_value), 0);
value_1 = get_value + 0x50C;
ReadProcessMemory(phandle, (LPVOID)(value_1), &get_value, sizeof(get_value), 0);
value_1 = get_value + 0x1C0;
ReadProcessMemory(phandle, (LPVOID)(value_1), &get_value, sizeof(get_value), 0);
cout << get_value;
cin.get();
cin.get();
return 0;
}


Однако получаю значение 0.
В чём я ошибся?

Добавлено через 8 минут
Думаю, что проблема в базовом адресе.
Не знаю, как его найти в Cheat Engine.
Определял его через стороннюю программу.

Последний раз редактировалось mraklbrw; 26.12.2016 в 18:06. Причина: Добавлено сообщение
 
Ответить с цитированием
Старый 26.12.2016, 19:14   #3
mraklbrw
Освоившийся
Аватар для mraklbrw
OFFLINE
Регистрация: 25.12.2016
Возраст: 27
Сообщений: 40
Благодарностей:
0 всего
Мнения: -22
Репутация: 1

includ-ы остались с прошлых проектов

Пробовал
DWORD Base_Adress = 0x1012F454;
и
DWORD Base_Adress = 0x400000

ReadProcessMemory(phandle, (LPVOID)(Base_Adress + value_1), &get_value, sizeof(get_value), 0);

get_value - имеет неверное значение или 0
В Cheat Engine другое значение.
Кстати, при проверке в Cheat Engine адреса 0x1012F454 + 0x0012F320 и адреса 0x400000 + 0x0012F320 выдаёт неверные значения, не то, которое выдаётся при "Main.exe"+0012FDB4.
Всё-таки, мне кажется, что-то не так с базовым адресом.

Добавлено через 31 минуту
DWORD Base_Adress = 0x140CE0; // Базовый адрес п рограммы(игры)
//DWORD Base_Adress = 0x1012F454;
//DWORD Base_Adress = 0x00000000;
DWORD pid;
DWORD value_1 = 0x0012F320; // Первое смещение
DWORD get_value;
DWORD get_value_2;
DWORD get_value_3;

int main()
{

HWND hwnd = FindWindowA(0, ("Master of Defense by Voodoo Dimention (c) 2006 "));

GetWindowThreadProcessId(hwnd, &pid);

if (hwnd)
cout << "process id: " << pid << endl;
else
cout << "Window isn't found." << endl;

HANDLE phandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);

ReadProcessMemory(phandle, (LPVOID)(Base_Adress + value_1), &get_value, sizeof(get_value), 0); // Получаем 1-ое значение

cout << get_value << endl; // 1431...

DWORD adres_2 = get_value + 0x50C;

cout << "adr2 = " << adres_2 << endl;

ReadProcessMemory(phandle, (LPVOID)adres_2, &get_value_2, sizeof(get_value_2), 0); // Получаем 2-ое значение

cout << get_value_2 << endl;



DWORD adres_3 = get_value_2 + 0x1C0;
cout << "adr3 = " << adres_3 << endl;
ReadProcessMemory(phandle, (LPVOID)adres_3, &get_value_3, sizeof(get_value_3), 0); // Получаем 3-ое значение
cout << get_value_3 << endl;




cin.get();
cin.get();

return 0;
}


Высчитывается 1-ое значение - базовый адрес + первый офсет(0x0012F320).
Прибавляем к нему 50C - 2-ой офсет - и всё - 0 в значении, хотя в cheat engine наше п олученное значение - представлено как значение, а есть ещё и адрес, который хранит это значение, 00270000. И прибавляя к нему 50C, в Cheat Engine можно выйти на 2-ое значение. Как выйти на этот адрес?

Последний раз редактировалось mraklbrw; 26.12.2016 в 19:45. Причина: Добавлено сообщение
 
Ответить с цитированием
Старый 26.12.2016, 20:21   #4
mraklbrw
Освоившийся
Аватар для mraklbrw
OFFLINE
Регистрация: 25.12.2016
Возраст: 27
Сообщений: 40
Благодарностей:
0 всего
Мнения: -22
Репутация: 1

Ну как сказать - высчитывается значение 1431787091. А нужен адрес(он меняется раз от раза - то 00240000, то 00270000, может ещё какой).
Т.к. дальше прибавление к 1431787091 второго офсета ничего не даёт - т.е. 0.
А в Cheat Engine видно, что именно к адресу (00240000) прибавляется второй офсет.
 
Ответить с цитированием
Старый 26.12.2016, 20:44   #5
mraklbrw
Освоившийся
Аватар для mraklbrw
OFFLINE
Регистрация: 25.12.2016
Возраст: 27
Сообщений: 40
Благодарностей:
0 всего
Мнения: -22
Репутация: 1

"Main.exe"+0012F320 указывает на адрес 00250000 или 00270000, а значение = 1431787091.



Базовый адрес я неправильно рассчитывал.

"Main.exe"+0012F320
50C
1C0

Именно так если вбивать, выходим на переменную - деньги.
А на C++ пробовал порядок менять, без разницы.
 
Ответить с цитированием
Старый 27.12.2016, 11:55   #6
mraklbrw
Освоившийся
Аватар для mraklbrw
OFFLINE
Регистрация: 25.12.2016
Возраст: 27
Сообщений: 40
Благодарностей:
0 всего
Мнения: -22
Репутация: 1

Странно. Прибавляет к видному на скрине баз. адресу первое смещение - и получаем какое-то левое значение.
Вот тут считал. http://www.calculator.net/hex-calcul...pe=op&x=84&y=8

Проблема: не могу определить реальный базовый адрес.
 
Ответить с цитированием
Старый 27.12.2016, 11:57   #7
dark
Читодел
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 965
Благодарностей:
36,565 всего
Мнения: + 37511
Репутация: 116358
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

Оффтоп

Добавлено через 2 минуты
Цитата:
Сообщение от mraklbrw Посмотреть сообщение
Странно. Прибавляет к видному на скрине баз. адресу первое смещение - и получаем какое-то левое значение.
Вот тут считал. http://www.calculator.net/hex-calcul...pe=op&x=84&y=8

Проблема: не могу определить реальный базовый адрес.
Базовый адрес = адрес подгрузки модуля
Чего его там определять?

Последний раз редактировалось dark; 27.12.2016 в 12:00. Причина: Добавлено сообщение

Cheats Development | Создание читов на заказ

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием
Старый 27.12.2016, 12:07   #8
mraklbrw
Освоившийся
Аватар для mraklbrw
OFFLINE
Регистрация: 25.12.2016
Возраст: 27
Сообщений: 40
Благодарностей:
0 всего
Мнения: -22
Репутация: 1

И как из программы на С++ определить адрес погрузки модуля?
 
Ответить с цитированием
Старый 27.12.2016, 12:09   #9
dark
Читодел
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 965
Благодарностей:
36,565 всего
Мнения: + 37511
Репутация: 116358
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

Цитата:
Сообщение от mraklbrw Посмотреть сообщение
И как из программы на С++ определить адрес погрузки модуля?
Базовый адрес = адрес подгрузки модуля = его хэндл

Cheats Development | Создание читов на заказ

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием
Старый 27.12.2016, 12:13   #10
mraklbrw
Освоившийся
Аватар для mraklbrw
OFFLINE
Регистрация: 25.12.2016
Возраст: 27
Сообщений: 40
Благодарностей:
0 всего
Мнения: -22
Репутация: 1

Хендл игры "Master of Defense by Voodoo ..."?
P.s. Знаю, что туплю, но я новичок в этом вопросе и пока не врубаюсь.
И, т.к. каждый раз баз. адрес + 1 офсет = разное значение, выходит, что базовый адрес динамический?
На С++ я то не могу написать Main.exe + <офсет>.

Последний раз редактировалось mraklbrw; 27.12.2016 в 12:26.
 
Ответить с цитированием
Ответ



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Не актуально] Помощь в написании ботов на UoPilot. Almaziliya Скрипты и боты для ArcheAge 7 07.04.2016 20:00
Поиск Указателя по инструкции OrakuL Взлом и программирование 7 08.10.2014 19:35

Мир танков | Проект "Армата" | ArcheAge | Black Desert | РФ Онлайн | Айон | Майнкрафт | Браузерные игры
Элдер скролс | Р2 Онлайн | Реквием Онлайн | ПУБГ | Роял Квест | ГТА Санадреас | Контра | Дота 2
Мир кораблей | Лост Арк | Arma2 DayZ mod | The War Z | Карос: Начало | Tera Online
Читы для всех Онлайн-игр