(те RVA что ты видишь в дампе это RVA на БИНДИНГИ(описывающие структуры из которых данные для дампа берутся) которые для дебага(для разработчика дампера) а не для тебя(юзера дампера))
что значит "получить здоровье"
это не статический член(один на все объекты). это связанный член(у каждого объекта свой). C_BaseEntity'тей и их здоровий - сотни, тысячи на карте. у каждого крипа тавера героя дерева и тд есть здоровье, чьё именно ты хочешь получить?
оффсет m_iHealth, т.е. 0x324, тебе показывает смещение хп ОТНОСИТЕЛЬНО КОНКРЕТНОГО ОБЪЕКТА. если ты возьмешь крипа или героя, прибавишь 0x324 к адресу, то ты получишь адрес где лежит хп.
только вот тебе сначала нужно найти адрес этого крипа героя и так далее.
да, через EntityList надо брать сущности.
аутдейтед но суть примерно та же(+ пробегись по комментам к треду):
прелюдия, скипайте если вы не совсем чайник и знаете что такое указатель хуки тайпдефы и прочий шлак. в гайде будут использоваться сокращения для типов unsigned long long и const char* #define ui unsigned long long #define cc const char* для начала вывод в консоль. берем любой модуль открываем...
yougame.biz
есть CGameEntitySystem, в ней лежит массив из 64 указателей(так называемые "листы"), каждый из которых указывает на массив из 512 CEntityIdentity.
CEntityIdentity это как "паспорт" сущности - там есть имя фамилия серийник индекс и тд, а также есть указатель на саму C_BaseEntity(а в ней обратно указатель на CEntityIdentity есть если надо, там двоякая связь туда сюда)
сущности обычно идентифицируются прежде всего индексом, индекс представляет собой номер(начиная с 0) листа(их 64 штуки, т.е. от 0 до 63) умноженный на размер листа(512 записей) плюс номер(начиная с 0) записи в листе(записей 512 шт, т.е. от 0 до 511). обратное разбиение индекса на номер листа и номер в листе делается через деление с остатком на 512(в C это / и % операторы, это не совсем евклидово деление(там с отрицательными числами все по-другому) но индекс неотрицательный так что все норм)
индекс 1234 это 1234/512 = 2 лист(т.е. третий по счёту если с первого считать), и 1234%512=210'я запись в нём(211'я если с первой считать)
индекс 0 это 0 лист(первый) и 0'я запись(первая)
индекс 1 это 0 лист(первый) и 1'я запись(вторая)
индекс 511 это 0 лист(первый) и 511'я запись(512'я)
индекс 512 это 1 лист(второй) и 0'я запись(первая)
и тд
тебе сначала нужны ИГРОКИ(C_DOTAPlayerController)(это не герои! это контроллеры - те кто контроллируют героев, прирученных крипов и так далее), у каждого игрока есть "выбранный герой"(m_hAssignedHero; если что CHandle это 32битное число где первые 17 битов это серийник, а оставшиеся 15 битов это индекс сущности. последние 15 битов можно получить двоичным умножением(оператор &) на 15 единичек, т.е. 0b111111111111111 что есть 32767 в десятичной или 0x7FFF в 16ричной. собственно размер 15 битов связан с количеством и размерами листов 64 и 512(64*512 как раз 32768(это макс колво сущностей в игре), 15 битов это минимальный размер двоичного числа которое может представить столько чисел(от 0 до 32767)(log2(32768) = 15)))
игроков можно по-разному получать
как вообще работает эта фигня с +1 -1 индекс сущности? у меня после обновы почему то все враги мои союзники, а все союзники мои враги
yougame.biz
можно у движка спрашивать слот локального игрока(к нему потом +1 прибавить получишь индекс сущности игрока)(нестабильно, индекс виртуальной функи меняется), а можно брать всех(их 64 шт максимум. индексы от 1 до 64, первая сущность с индексом 0 это всегда мир, worldent), как в сурс1, и искать среди них локального(нетвар m_bIsLocalPlayerController)
вот примеры готового говнокода(мб аутдейтед(интернал(1я ссылка) обновил вроде токо что, экстернал(2я ссылка) не трогал))
Пытаюсь найти оффсеты на доту 2(предположим оффсет m_iHealth), делаю всё по гайду: гружу ддлку, генерирую строки, через jump to xref пытаюсь найти оффсет и тут у меня нет нужных строк как у всех в гайдах(скрин), хелп плиз 1 скрин (мой) 2 скрин(как у чела из одного гайда)
yougame.biz
Пытаюсь найти оффсеты на доту 2(предположим оффсет m_iHealth), делаю всё по гайду: гружу ддлку, генерирую строки, через jump to xref пытаюсь найти оффсет и тут у меня нет нужных строк как у всех в гайдах(скрин), хелп плиз 1 скрин (мой) 2 скрин(как у чела из одного гайда)
yougame.biz