• Уменьшение отступа

    Обратная связь

    (info@ru-sfera.pw)

Эксклюзив Создание DMA читов на реальных примерах.


MKII

Администратор
Администрация
Регистрация
03.10.2022
Сообщения
256
Репутация
182
Всем привет!
Эта тема посвещена созданию софта для DMA (карт, скримеров и тд…)!
В первой части я приведу небольшой пример простого DMA софта под игру DayZ.
Данная статья явлается уникальной и скорее всего я первый кто написал про это на СНГ форумах.
Специально для: Ру-Сфера: Исследование защиты и обсуждение IT-безопасности

Нам потребуется:
2 PC (можно делать и на 1, но шанс обнаружения вырастает в несколько раз!).
DMA карта (я использую LeetDMA, если брать более бюджетную карту, могу посоветовать NinjaDMA/QuasarDMA).
IDA pro (либо любой другой отладчик).

Для написания чита, я буду использовать библиотеку для работы с DMA картами: VmmFrost.
Данная библиотека подходит для ЯП C# и имеет удобные функции для чтения и записи в память процесса.

В первой части мы сделаем небольшой SpeedHack, за который нас не забанит анти-чит!

Немного теории:
Для реализации SpeedHack, мы будем работать с функцией QueryPerformanceFrequency внутри игры (будем изменять её из вне).
Функция QueryPerformanceFrequency вызывается каждый кадр, то есть, если её немного отредактировать, то мы можем заставить игру работать быстрее.
Для этого, нам надо считать значение QueryPerformanceFrequency по адресу и поделить его на нужное нам число.
QueryPerformanceFrequency / 3 = наша игра работает в 3 раза быстрее.
После этого, можно записать QueryPerformanceFrequency / x обратно в память игры.
Надеюсь понятно объяснил, на самом деле всё намного легче чем на словах и реализовать данную функцию можно в несколько строк кода.

Открываем IDA Pro x64.
Далее нам нужно выбрать exe файл нашей игры (DayZ_x64.exe).
Далее жмём SHIFT + F12 и ждем загрузку строк.
1674383313050.png


У нас появится такое окошко
Далее, жмём X и Enter.
Нам нужно 140E590A0:
1674389109433.png

Далее делаем такие махинации: QueryPerformanceFrequency (140E590A0) - 140000000 = addr (0xE590A0)
1674389209777.png


Пишем код!

C#:
var mem = new VmmFrostHandle("-printf", "-v", "-device", "fpga"); //инициализация DMA
uint pID = mem.GetPid("DayZ_x64.exe"); //Получение Process ID
Console.WriteLine("ProcessID: " + pID.ToString());

ulong ModuleBase = mem.GetModuleBase(pID, "DayZ_x64.exe"); //Получение адреса DayZ_x64.exe
Console.WriteLine("BaseAddress: " + ModuleBase.ToString());

mem.WriteValue<int>(pID, ModuleBase + 0xE590A0, 5000000); //Запись в память нового значения.
//Если кикает с сервера, то вместо 5000000 ставим 6000000-7000000.
//Обязательно запускаем чит в меню (НЕ НА СЕРВЕРЕ!).

Готово!
Можно компилировать и запускать на 2 pc!
 
Последнее редактирование:

Beryozavyi

Пользователь
Форумчанин
Регистрация
16.03.2023
Сообщения
3
Репутация
1
Я заинтересован.
1) Насколько реальна будет схема при которой мы избавляемся от второго ПК (подключенного по USB) и используем Ethernet, распаянный на плате DMA?
2) 15-16 т.р. - есть ли платы/решения дешевле?
 
Последнее редактирование:

MKII

Администратор
Администрация
Регистрация
03.10.2022
Сообщения
256
Репутация
182
Я заинтересован.
1) Насколько реальна будет схема при которой мы избавляемся от второго ПК (подключенного по USB) и используем Ethernet, распаянный на плате DMA?
2) 15-16 т.р. - есть ли платы/решения дешевле?
Это можно использовать на 1pc, но какой смысл от этого, если наша цель скрыть софт от обнаружения?
Про цены не знаю, может-быть и есть.
 

MKII

Администратор
Администрация
Регистрация
03.10.2022
Сообщения
256
Репутация
182
Я заинтересован.
1) Насколько реальна будет схема при которой мы избавляемся от второго ПК (подключенного по USB) и используем Ethernet, распаянный на плате DMA?
2) 15-16 т.р. - есть ли платы/решения дешевле?
Задача полностью скрыть софт, это мы добиваемся запуском его на 2 пк, благодаря чему он не исполняется на игровом пк, соответсвенно AC не имеет возможности его обнаружения, а при запуске на 1pc, нам потребуется запускать софт на основном пк, тем самым повышая риск обнаружения.
 

Beryozavyi

Пользователь
Форумчанин
Регистрация
16.03.2023
Сообщения
3
Репутация
1
Задача полностью скрыть софт, это мы добиваемся запуском его на 2 пк, благодаря чему он не исполняется на игровом пк, соответсвенно AC не имеет возможности его обнаружения, а при запуске на 1pc, нам потребуется запускать софт на основном пк, тем самым повышая риск обнаружения.
Спрашивал про Ethernet чтобы он принимал команды от удалённого клиента/сервера как-раз таки для исключения из схемы второго локального ПК и тем более запуска софта по управлению платой локально.
 

MKII

Администратор
Администрация
Регистрация
03.10.2022
Сообщения
256
Репутация
182
Спрашивал про Ethernet чтобы он принимал команды от удалённого клиента/сервера как-раз таки для исключения из схемы второго локального ПК и тем более запуска софта по управлению платой локально.
Если ты придумаешь как это реализовать, то можно.
 

MKII

Администратор
Администрация
Регистрация
03.10.2022
Сообщения
256
Репутация
182
Верх Низ