- 20.06.2022
- 23 845
- 218
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
- #1
Необходимое программное обеспечение:
Понадобиться нам для написания чита. Крайне рекомендую использовать те же инструменты, которыми пользуюсь я (или их аналоги), за исключением языка программирования: вы можете писать код на чём угодно, я, как в институте, дам вам базовые знания и объясню принцип работы, всё остальное за вами.
Среду разработки и язык программирования выбираете по желанию сами.
Перед началом основной работы необходимо знать некоторые вещи:
Я разрабатываю в Embarcadero Delphi 10 Seattle, если кому нужно, скачать тут (используйте vpn или прокси для обхода блокировки):
Если вы хотите знать все прелести православного паскаля и выделяться среди серой массы всех остальных, то можете повторять за мной всё, что я буду делать в гайдах. Копипастерам данного форума, которые обитают в соседнем разделе связанным с контрой - будет не просто, ибо кода на си, который можно взять и воткнуть в свой проект, в моих темах практически не будет; для всех остальных, устремлённых людей - дороги открыты (будет не сложно, на самом деле).
[Tutorial #1]: Получение структуры Entity
Вот и настала первая часть урока по созданию читов на Dota 2. Что нам нужно в первую очередь, дабы чит и вправду считался читом? - Получать полезную информацию. Что самое полезное может быть в доте? Информация об сущностях \ игроках. Где она хранится? Правильно в структуре сущности (CBaseEntity), указатель на которую мы и научимся получать в нашем первом уроке.
Необходимое программное обеспечение на сегодня:
Нам понадобится Cheat Engine (или любой аналог, даже любой x64 дебагер), кто во что горазд.
На примере CE я покажу как искать то, что нам нужно.
Объяснять я буду популярно, простыми словами, грубо, но понятно объясняя суть работы всего происходящего.
Что такое "структура сущности"?
В структуре энтити лежат "ништяки". Так что это и как оно устроенно?
Очень простыми словами это структура, в которой описаны и хранятся параметры "объекта", например его имя, тип, положение, адреса на что-либо что с ней связано и т.п.
Брошенная ветка, летящий кулак свена, крип, кура, фонтан, башня и всё в таком роде - это Entity.
В движках idTech, GoldSrc, Source (а так-же многих других) для удобства есть список указателей на Entity - EntityList. Многие из вас пастят свои хацки для CS:GO, откройте какой-нибудь исходник External чита, сразу станет ясно о чём я говорю: чит ищет указатель на EntityList, потом бегает в цикле по адресам, хранимым в нём и получают информацию об игроке. Тут принцип точно такой-же.
Давайте попробуем найти EntityList в доте?
Стартуем дотку, подключаемся к ней Cheat Engine'ом:
Стартуем либо в лобби, либо в просто проверке героя, в нашем случае это роли никакой не играет. Начнём. Так-как структура Entity содержит информацию, попробуем найти энтити своего героя, самый простой способ - по его мане. Вбиваем кол-во маны, тип вещественный 4 байта, жмякаем на поиск.
Качаем скил, кастуем, мана меняется - ставим на паузу и отсеиваем в ce весь ненужный мусор.
Было найдено 4 адреса, первые два из которых - это не от самого игрока, а от игрового манабара (переключитесь на крипа с маной, значение изменится); далее попробуем узнать кто читает адрес вторых двух.
В регистре RCX у нас будет находится адрес нашей Entity (выделено стрелочкой), а A0C это смещение от этого адреса, которое указывает на нашу ману.
Переключаем поиск на 8 байт, целочисленное, ставим галку на HEX и ищем все адреса, указывающие на нашу Entity (то, что было у нас в регистре RCX)
У меня нашло 125 адресов, не страшно, самый ленивый метод это посмотреть кто читает его, а так-как мы знаем, что наш адрес будет находится в EntityLst, то нам покажут примерно: mov Z,[X+Y*I], где I это смещение в EntityList, которое указывает на новую энтити. Клацаем на каждую в надежде увидеть это:
То, что в Value имеет зелёный цвет - пропускайте, зря время потратите, а всё остальное сохраняем. Их будет несколько, сразу скажу что если RCX = 0, то это указатель на локального игрока (только вас, других энтитей там не найдёте), по этому если ваша цель только EntityList, пропускайте.
Так вот, мы нашли то, что скорее всего и является нашим EntityList (регистр RAX):
Вобьём его адрес в поиск и увидим зелёный адрес - статичный указатель (до следующей обновы client.dll - он не поменяется).
Пробуем теперь подставить всю цепочку из указателей: [[[client.dll + offset] + Ident * 0x8] + 0xA0C] = Наша мана.
[Ident * 0x8] в моей ветке выше это и есть то смещение в EntityList, которое указывает на новую Entity, однако, в CE отображается смещение как каждые 8 байт, что не верно, меняйте на 0x30 (я поставил 0x10).
В итоге побрутив я нашёл что по [0x1E*0x10] находится указатель на CBaseEntity нашего героя.
Для подтверждения создадим ещё героя и подбирая Ident попробуем найти и его.
Если показалась мана другого Entity - значит всё сделали правильно, у нас действительно получилось найти EntityList.
Смотрим есть ли какие-нибудь строки или набор уникальных байт рядом с нашим указателем, дабы сделать сигнатурку, и у нас уже есть поиск указателя EntityList который не сломается после обновы Dota 2.
Понадобиться нам для написания чита. Крайне рекомендую использовать те же инструменты, которыми пользуюсь я (или их аналоги), за исключением языка программирования: вы можете писать код на чём угодно, я, как в институте, дам вам базовые знания и объясню принцип работы, всё остальное за вами.
Среду разработки и язык программирования выбираете по желанию сами.
Перед началом основной работы необходимо знать некоторые вещи:
Я разрабатываю в Embarcadero Delphi 10 Seattle, если кому нужно, скачать тут (используйте vpn или прокси для обхода блокировки):
Если вы хотите знать все прелести православного паскаля и выделяться среди серой массы всех остальных, то можете повторять за мной всё, что я буду делать в гайдах. Копипастерам данного форума, которые обитают в соседнем разделе связанным с контрой - будет не просто, ибо кода на си, который можно взять и воткнуть в свой проект, в моих темах практически не будет; для всех остальных, устремлённых людей - дороги открыты (будет не сложно, на самом деле).
[Tutorial #1]: Получение структуры Entity
Вот и настала первая часть урока по созданию читов на Dota 2. Что нам нужно в первую очередь, дабы чит и вправду считался читом? - Получать полезную информацию. Что самое полезное может быть в доте? Информация об сущностях \ игроках. Где она хранится? Правильно в структуре сущности (CBaseEntity), указатель на которую мы и научимся получать в нашем первом уроке.
Необходимое программное обеспечение на сегодня:
Нам понадобится Cheat Engine (или любой аналог, даже любой x64 дебагер), кто во что горазд.
На примере CE я покажу как искать то, что нам нужно.
Объяснять я буду популярно, простыми словами, грубо, но понятно объясняя суть работы всего происходящего.
Что такое "структура сущности"?
В структуре энтити лежат "ништяки". Так что это и как оно устроенно?
Очень простыми словами это структура, в которой описаны и хранятся параметры "объекта", например его имя, тип, положение, адреса на что-либо что с ней связано и т.п.
Брошенная ветка, летящий кулак свена, крип, кура, фонтан, башня и всё в таком роде - это Entity.
В движках idTech, GoldSrc, Source (а так-же многих других) для удобства есть список указателей на Entity - EntityList. Многие из вас пастят свои хацки для CS:GO, откройте какой-нибудь исходник External чита, сразу станет ясно о чём я говорю: чит ищет указатель на EntityList, потом бегает в цикле по адресам, хранимым в нём и получают информацию об игроке. Тут принцип точно такой-же.
Давайте попробуем найти EntityList в доте?
Стартуем дотку, подключаемся к ней Cheat Engine'ом:
Стартуем либо в лобби, либо в просто проверке героя, в нашем случае это роли никакой не играет. Начнём. Так-как структура Entity содержит информацию, попробуем найти энтити своего героя, самый простой способ - по его мане. Вбиваем кол-во маны, тип вещественный 4 байта, жмякаем на поиск.
Качаем скил, кастуем, мана меняется - ставим на паузу и отсеиваем в ce весь ненужный мусор.
Было найдено 4 адреса, первые два из которых - это не от самого игрока, а от игрового манабара (переключитесь на крипа с маной, значение изменится); далее попробуем узнать кто читает адрес вторых двух.
В регистре RCX у нас будет находится адрес нашей Entity (выделено стрелочкой), а A0C это смещение от этого адреса, которое указывает на нашу ману.
Переключаем поиск на 8 байт, целочисленное, ставим галку на HEX и ищем все адреса, указывающие на нашу Entity (то, что было у нас в регистре RCX)
У меня нашло 125 адресов, не страшно, самый ленивый метод это посмотреть кто читает его, а так-как мы знаем, что наш адрес будет находится в EntityLst, то нам покажут примерно: mov Z,[X+Y*I], где I это смещение в EntityList, которое указывает на новую энтити. Клацаем на каждую в надежде увидеть это:
То, что в Value имеет зелёный цвет - пропускайте, зря время потратите, а всё остальное сохраняем. Их будет несколько, сразу скажу что если RCX = 0, то это указатель на локального игрока (только вас, других энтитей там не найдёте), по этому если ваша цель только EntityList, пропускайте.
Так вот, мы нашли то, что скорее всего и является нашим EntityList (регистр RAX):
Вобьём его адрес в поиск и увидим зелёный адрес - статичный указатель (до следующей обновы client.dll - он не поменяется).
Пробуем теперь подставить всю цепочку из указателей: [[[client.dll + offset] + Ident * 0x8] + 0xA0C] = Наша мана.
[Ident * 0x8] в моей ветке выше это и есть то смещение в EntityList, которое указывает на новую Entity, однако, в CE отображается смещение как каждые 8 байт, что не верно, меняйте на 0x30 (я поставил 0x10).
В итоге побрутив я нашёл что по [0x1E*0x10] находится указатель на CBaseEntity нашего героя.
Для подтверждения создадим ещё героя и подбирая Ident попробуем найти и его.
Если показалась мана другого Entity - значит всё сделали правильно, у нас действительно получилось найти EntityList.
Смотрим есть ли какие-нибудь строки или набор уникальных байт рядом с нашим указателем, дабы сделать сигнатурку, и у нас уже есть поиск указателя EntityList который не сломается после обновы Dota 2.
Последнее редактирование:
Последние темы в этом разделе:
- [Udemy] Paul Chin - Гейм Хакинг: Основы взлома игр с Cheat Engine (2021)
- [Infinite Skills] Реверс-инжиниринг и разработка эксплойтов. Часть 1
- Скрипт Лоадер [Key,UID,Auth - System]
- Скрипт Hwid Checker + анимации + ключ к Hwid + сброс Hwid
- Скрипт Hwid Checker + ключ привязка к Hwid + отправка в телеграм
- Скрипт Hwid Checker
- Приватный Курс по реверс-инжирингу - Курс от colby57
- Курс по реверс-инжирингу - Создание читов для игр
- Как создать chams в Unity
- Как в EFT получить информацию о игроке (K/D, LVL, etc...)