Всем привет!
Эта тема посвещена созданию софта для 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 и ждем загрузку строк.
У нас появится такое окошко
Далее, жмём X и Enter.
Нам нужно 140E590A0:
Далее делаем такие махинации: QueryPerformanceFrequency (140E590A0) - 140000000 = addr (0xE590A0)
Пишем код!
Готово!
Можно компилировать и запускать на 2 pc!
Эта тема посвещена созданию софта для 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 и ждем загрузку строк.
У нас появится такое окошко
Далее, жмём X и Enter.
Нам нужно 140E590A0:
Далее делаем такие махинации: QueryPerformanceFrequency (140E590A0) - 140000000 = addr (0xE590A0)
Пишем код!
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!
Последнее редактирование: