• Объявления

    • Garik66

      Пользователям форума   05.11.2017

      Прошу обратить внимание на эту тему (чтобы увидеть ссылку, войдите в объявление - нажмите на заголовок):   
MasterGH

Dota 2. Точное добивание крипов

20 сообщений в этой теме

Я думаю, это чит безобидный, не все будут против него. Назову я его "Добивание с одной тычки "

 

Для того чтобы чужой, свой крип или чужой герой не умер сам или его бы не убили,то его нужно точно добить с расчетом одной тычки. С расчетом, что хватит урона и его не убьют раньше другие крипы, боты, или свои же из команды. Т.е. любой крип, который оказался в радиусе доступа, чтобы он автоматом добивался.

 

 

Как в теории это сделать? Ну, в соревнования я конечно не полезу, но с ботами и игроками можно пофаниться.

 

 

Тема экспериментальная. Давайте посмотрим на популярность этой темы. Будет ли это обсуждаться. Будет ли негативной или позитивной.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[terminus]Думаю, понадобится следующее. Для примера буду считать, что брони у крипов не бывает, промахов у героя - тоже.

 

0. Находим здоровье одного крипа методом поиска точного значения.

1. Находим указатель на коллекцию всех крипов на карте на данный момент.

2. Находим адрес, хранящий количество крипов на карте на данный момент.

3. Находим текущий урон, наносимый атаками нашего героя.

4. В цикле бежим по коллекции крипов и проверяем, что:

    - Здоровье крипа > 0.

    - Здоровье крипа <= текущему урону нашего героя.

Если п. 4 выполняется, то подсвечиваем крипа тем или иным образом (GDI, DirectX, как-то еще - без разницы).

 

Задачу можно оптимизировать путем ограничения цикла только до тех крипов, которые находятся в поле зрения от героя. Или даже в радиусе его атаки.[/terminus]

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, keng, за теорию.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Теория это хорошо.

 

Но на практике в доте давно бушует Vac и практически любое чтение/запись в память приводит к бану на месяц.

Есть один хорошо джентльмен который написал свой движок (Ensage), для инжекта скриптов в доту 2 на LUA.

Движок имеет очень большие возможности.Есть коммунити, которое и пишет для паблика скрипты. Так же он инжектит стим и отключает Vac.  Так что бан не грозит. И все это бесплатно, хотя ходят слухи что в скором времени станет платным. Достопочтенного джентльмена зовут Zynox он из Германии. Кого интересует этот движок легко сможет загуглить по названию автора. 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Про баны это понятно. Конечно, за инфу спасибо.

 

Напоминаю другим, что запуская чужой "софт - ломалку" - можно легко потерять пасс и логин от стима. Так что будьте блительны, господа! Если еще пароли одинаковы с почтой, то и почта может слететь.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нужно думать над External вариантами или над безопасным internal.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

External - это OpenCV + нейросеть для распознавания чисел. Больше ничего не надо. Правда, по-моему, это уже будет не совсем хак в привычном понимании этого слова.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

External - это OpenCV + нейросеть для распознавания чисел. Больше ничего не надо. Правда, по-моему, это уже будет не совсем хак в привычном понимании этого слова.

Далеко не обязательно. Read/Write ProcessMemory (придется обойтись без хуков и некоторых функций чита, которые можно только в internal получить, но всю же - риск быть забаненным будет куда меньше.

Мы с Армандо уже начали изучение VAC в Dota 2, и в скором времени возможно сделаем релиз internal чита простенького (если акки в ВАК бан не улетят, аккаунты разумеется фейковые).

На крайняк - KeStackAttachProcess  https://msdn.microsoft.com/en-us/library/windows/hardware/ff549659.aspx

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще бан может быть в теории:

 

1. бан с занесением шифрованной информации на локальный комп и когда зайдешь под другим акком, то будет палево

2. бан по ip и палевом на остальные аккаунты по этому ip

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще бан может быть в теории:

 

1. бан с занесением шифрованной информации на локальный комп и когда зайдешь под другим акком, то будет палево

2. бан по ip и палевом на остальные аккаунты по этому ip

Не, VAC таким не балуется, а если бы и баловался то можно было бы просто по аппаратному мак адресу сетевой карты банить))

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

VAC банит по steam id.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

VAC банит по steam id.

Именно. И пруф этому есть, помимо официальных объяснений. Даже если ты на этом акке чудом активируешь новую копию игры - то играть на защищенных VAC серверах все равно не сможешь (потому что как и сказал кенг -  id в бане).

По такой схеме еще и работает PunkBuster/GGC-Stream в Origin играх, например - Battlefield 3/4 (просто банят твой origin id - а там хоть через тех.поддержку удаляй ты игру с аккаунта и новую активируй - не поможет).

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я так понимаю, будет видео по взлому VAC (только я читаю это как "вац") или же PunkBuster (который уже не панкбустер, т.к. он не справляется - разрабы создали себе новую "игрушку", которая протектит их игры. Однако обход на неё есть, встречал чувака который в паблик это выкладывал).

Изменено пользователем RockHamer
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то тема поутихла :)

Находим указатель на коллекцию всех крипов на карте на данный момент.

Кстати, может кто нибудь объяснить, как такое делается?

Я так полагаю, что есть какая-то таблица или список указателей на структуры объектов (какие-то персонажи, будь то онлайн игроки или боты).

Как мне его найти? В одной игре пытался сделать, но ничего не вышло. Нашел одноуровневые указатели, рядом все прошерстил - фигня полнейшая, следующий объект с похожей структурой на моего игрока не могу найти :(

Может, есть какие-то способы, как быстро найти такой список? Ибо созерцать содержимое всех указателей желания нет, а смещение на другой указатель найти хочецца :(

И да, пробовал это дело в CSGO. С ботами. С -insecure. Не для дальнейшего злоупотребления в онлайне)

Список искал со смещением от модуля "client.dll", в одной статье нашел, что так и нужно. Но до конца ее разобрать не смог (статью)... трудности перевода.

http://www.d3scene.com/forum/counter-strike-global-offensive/89923-guide-how-find-csgo-offsets.html

 

Пишу сюда, потому что движок тот же, пусть и специфика игр разная. Но я думаю, разница небольшая)

Изменено пользователем uhx
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Во-первых, указатель может быть и не первого уровня, а больше. Смотря как организована коллекция. По факту, на низком уровне все один фиг сводится к массиву указателей, но все разработчики пишут по-разному и, соответственно, все движки тоже по-разному работают. В СЕ есть поиск по "маске" значений, который обычно и служит для поиска подобных массивов структур. Выглядит это как wildcard, т.е.: "float float float decimal decimal", то есть в памяти нужно найти 20 байт, 3 типа float и за ними 2 типа decimal, все это - подряд. Структуры ведь однотипные, в этом и штука.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Во-первых, указатель может быть и не первого уровня, а больше. Смотря как организована коллекция. По факту, на низком уровне все один фиг сводится к массиву указателей, но все разработчики пишут по-разному и, соответственно, все движки тоже по-разному работают. В СЕ есть поиск по "маске" значений, который обычно и служит для поиска подобных массивов структур. Выглядит это как wildcard, т.е.: "float float float decimal decimal", то есть в памяти нужно найти 20 байт, 3 типа float и за ними 2 типа decimal, все это - подряд. Структуры ведь однотипные, в этом и штука.

Хм. Для этого и нужны сигнатуры, с которыми я ничерта не знаком? ))

Знаю, они лучше, т.е. уникальные и после апдейта не слетят, как оффсеты, но вот...

Эх... есть даже какой-то дампер, который находит все адреса за тебя. Понять бы, как это все работает :)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Находим указатель на коллекцию всех крипов на карте на данный момент.

Кстати, может кто нибудь объяснить, как такое делается?

Я так полагаю, что есть какая-то таблица или список указателей на структуры объектов (какие-то персонажи, будь то онлайн игроки или боты).

Как мне его найти? В одной игре пытался сделать, но ничего не вышло. Нашел одноуровневые указатели, рядом все прошерстил - фигня полнейшая, следующий объект с похожей структурой на моего игрока не могу найти :(

Может, есть какие-то способы, как быстро найти такой список? Ибо созерцать содержимое всех указателей желания нет, а смещение на другой указатель найти хочецца :(

Ты можешь пробовать что-то найти, но пока не будет прочного представления как выглядит отладочный код и С++ код, ты будешь двигаться интуитивно и возможно долго, и просто увязнешь.

 

Тебе надо

 

а) Знать С++, STL, WinAPI (примеры по работе со списками объектов завались)

б) Написать прототип игры на C++ и пытаешься его же "ломануть". Можешь использовать как встроенный отладчик С++, так и IDA Hex-Rays, CE...

 

После чего возможно ты выработаешь стратегию поиска данных в отладке. Это могут быть массивы структур данных, могут быть массивы ссылок на структуры данных. В STL есть функции перебора элементов на высоком уровне и на низком в отладке может дать достаточное представление как это может выглядеть на ассемблере и что делать с этим кодом.

 

Если будешь С++ ковырять советую:

1) Шилдт (для быстрого разгона понимания С++ и STL) (или другие авторы)

2) MSDN, но надо в нем уметь быстро искать, иначе будешь тупить

3) Функции WinAPI

4) Программирование DirectX игр на С++ (только по примерам, очень быстро, иначе увязнешь)

 

Преимущественно надо искать примеры кода и разбирать функции. Посмотри исходники Сталкера 1.6 в разделе игровые движки. Там должны быть списки объектов игроков. Вот и подумай как с ними работать.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ты можешь пробовать что-то найти, но пока не будет прочного представления как выглядит отладочный код и С++ код, ты будешь двигаться интуитивно и возможно долго, и просто увязнешь.

 

Тебе надо

 

а) Знать С++, STL, WinAPI (примеры по работе со списками объектов завались)

б) Написать прототип игры на C++ и пытаешься его же "ломануть". Можешь использовать как встроенный отладчик С++, так и IDA Hex-Rays, CE...

 

После чего возможно ты выработаешь стратегию поиска данных в отладке. Это могут быть массивы структур данных, могут быть массивы ссылок на структуры данных. В STL есть функции перебора элементов на высоком уровне и на низком в отладке может дать достаточное представление как это может выглядеть на ассемблере и что делать с этим кодом.

 

Если будешь С++ ковырять советую:

1) Шилдт (для быстрого разгона понимания С++ и STL) (или другие авторы)

2) MSDN, но надо в нем уметь быстро искать, иначе будешь тупить

3) Функции WinAPI

4) Программирование DirectX игр на С++ (только по примерам, очень быстро, иначе увязнешь)

 

Преимущественно надо искать примеры кода и разбирать функции. Посмотри исходники Сталкера 1.6 в разделе игровые движки. Там должны быть списки объектов игроков. Вот и подумай как с ними работать.

Неожиданно) Спасибо за развернутый ответ. У меня с C++ проблем пока не возникает, все контачицца и трейнеры некоторые уже писал (очень примитивные). Но они были ужасны, потому что с CE работать не особо умею. Ну, вот эти вот оффсеты, сигнатурки "красиво" искать у меня не получается )) Только очень примитивные действия: нашел значение; нашел кучу указателей, перезапустил игру - пересканил, выбрал нужный. Хочу как раз понять и разбираться в реверсинге, искать те самые заветные массивы указателей на структуры объектов, которые так необходимы, ну и перехват функций, ибо умею только кустарным методом - первые пять байт с джампом на свою функцию и все :D А ведь есть еще парочка неплохих метод с их перехватом. Да и ассемблер в этом деле надо понимать, ибо как еще понять что принимает функция и что она вообще делает, чтобы ее заменить на свою)

// upd

Я так понял, в STL как раз и нужно разбираться, чтобы понять все то что я написал выше)) Потому что с WinAPI у меня проблем нет, хукануть функцию DirectX тоже не проблема: в тырнете примеров полно.

Ну а с MSDN-то что?)) Там хоть пишут понятно, а то как зайдешь на какой нибудь форум, а там все слова коверкают и хрен че разберешь))

 

Кстати, первая книга была как раз от Шилдта (для начинающих), поэтому с него STL и начну :) Еще раз спасибо, буду разбираться.

Изменено пользователем uhx
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Каких еще "для начинающих"? :lol:

 

Надо 

 

 

Герберт Шилдт
Полный справочник C++. 4-е издание (Дата выхода:    сентябрь 2003, Издательство:    Вильямс)

 

 

Стр. 503 Глава 24 Введение в стандартную библиотеку шаблонов

Контейнеры

Алгоритмы

Интераторы

Векторы

Списки

Ассоциативные контейнеры

Функторы

 

Далее 

Стандартные контейнерные классы Глава 33

Стандартные алгоритмы Глава 34

Стандартные итераторы, рапределители памяти и функторы. Глава 35

 

--------

Я в иде, когда игру ковырял там было примерно так 130 с чем-то типов объектов висело в динамическом списке они приводились через динамик каст к классу и работали еще в его контексте. Так что динамик каст может быть наводкой. Прочитай главу 22 про Динамическую идентификацию типа: различные касты, динамик, статик, реинтерпрет касты

------

Желательно меньше чтения и больше программирования. Примеры можно писать в консольном приложении делая динамический список и брать CE и пытаться извлечь список объектов

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А какие сложности с поиском сигнатур? Это, по факту, поиск подстроки в строке.
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас