Добрый день, с вами Ve4niySooN.
[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.
Что нас будет ждать в T#2?
Сделаем сигнатурный поиск на LocalPlayer, поговорим об нетварах, попробуем что-нибудь нарисовать =)
|
Authenticator Code |
|
Thread Tools |
How do you find the Entity List |
|
#1 |
|||||||||||
iBaseult Junior Forum Moderator Join Date: Apr 2020 Location: Germany
Reputation: 36027 Recognitions (1) (1) Points: 68,883, Level: 38 Level up: 68%, 1,317 Points needed Activity: 2.1% Last Achievements |
Question to Discuss: So I’m curious if there is a better or faster way to directly find the entity list, that stores all of the information such as health, position, ammo, and not just the position of the entities. How I find Entity Lists (short version):
If you want the more detailed version: I also recorded a Video of me just finding a random Entity List which stores the Player Positions in Arma3 using the explained method above (in case someone cares). __________________
|
|||||||||||
iBaseult is offline |
|
|
#2 |
|||||||||||
HX73D God-Like Join Date: Dec 2022 Location: Benelux
Reputation: 2092 Points: 3,450, Level: 5 Level up: 82%, 150 Points needed Activity: 6.3% Last Achievements |
Quote:
Originally Posted by iBaseult snip Thank you so much for making this, Have a nice day __________________ HX73D#2573
|
|||||||||||
HX73D is offline |
|
|
#3 |
|||||||||||
iBaseult Junior Forum Moderator
Join Date: Apr 2020 Location: Germany
Reputation: 36027 Recognitions (1) (1) Points: 68,883, Level: 38 Level up: 68%, 1,317 Points needed Activity: 2.1% Last Achievements |
Quote:
Originally Posted by HX73D Thank you so much for making this, Have a nice day Well it works fine, just wondering if there is a faster method but feel free to use it __________________ |
|||||||||||
iBaseult is offline |
|
|
#4 |
|||||||||||
HX73D God-Like Join Date: Dec 2022 Location: Benelux
Reputation: 2092 Points: 3,450, Level: 5 Level up: 82%, 150 Points needed Activity: 6.3% Last Achievements |
Quote:
Originally Posted by iBaseult Well it works fine, just wondering if there is a faster method but feel free to use it I am trying it now but this seems faster than what i tried Have a nice day ——————— I am trying it for the game cgso right now but i end up with 440 addresses, it doesn’t go down do i need to check all 440 value’s? __________________ HX73D#2573
|
|||||||||||
HX73D is offline |
|
|
#5 |
|||||||||||
hernos I Own Everyone Join Date: Nov 2013 Location: Turkey
Reputation: 3897 Points: 15,114, Level: 16 Level up: 9%, 1,286 Points needed Activity: 9.5% Last Achievements |
Another amazing tutorial __________________ |
|||||||||||
hernos is offline |
|
|
#6 |
|||||||||||
Kuzenet Senior Member Join Date: Apr 2017
Reputation: 790 Points: 5,651, Level: 8 Level up: 23%, 849 Points needed Activity: 4.8% Last Achievements |
Thank you for the tutorial! |
|||||||||||
Kuzenet is offline |
|
|
#7 |
|||||||||||
33c0c3 Join Date: Apr 2020
Reputation: 37168 Recognitions (1) (2) Points: 56,793, Level: 35 Level up: 49%, 1,907 Points needed Activity: 22.9% Last Achievements |
Definitely interesting to see how other people are doing this! Thank you for the share. It is undoubtedly of great help. |
|||||||||||
33c0c3 is offline |
|
|
#8 |
|||||||||||
Axactt n00bie Join Date: Jul 2021 Location: WorldWide
Reputation: 149 Recognitions (1) Points: 1,382, Level: 2 Level up: 97%, 18 Points needed Activity: 7.9% Last Achievements |
Thank you posting this. This is something I was searching for. |
|||||||||||
Axactt is online now |
|
|
#9 |
|||||||||||
dokkkanmemo n00bie Join Date: Aug 2020
Reputation: 10 Points: 2,048, Level: 3 Level up: 93%, 52 Points needed Activity: 17.1% Last Achievements |
+ rep |
|||||||||||
dokkkanmemo is offline |
|
|
#10 |
|||||||||||
laurier ♱BABY☆THE STARS SHINE BRIGHT♱ Join Date: Feb 2020 Location: Agartha
Reputation: 37923 Recognitions Points: 44,579, Level: 31 Level up: 99%, 21 Points needed Activity: 11.4% Last Achievements |
I honestly feel like static analysis is much faster, not just for this but for a lot of things i see people use CE for. I end up using ce for its memory viewer mostly. Once you realize you can just rebase to 0x0 (or use this if ur worried about stuff breaking which has never happened to me at least in a game hacking context) you can pretty much do most of your searching in ida Now i have no idea if this is still viable in games with virtualization/obfuscation as those would make static analysis a lot harder but i dont play or cheat in games so i only do this stuff out of curiosity and its been working perfectly fine for me. Usually my «»»»workflow»»»» is: find stuff related to what i wanna do in ida (via xrefs and stuff, this is probably way harder to do in some games and cheat engine might be more efficient in those cases) -> get my sigs/offsets(by rebasing to 0) -> start writing code and testing along the way using ce’s memory viewer or windbg to check that my code is doing what its supposed to do in memory __________________
�゚�゚゚・:..☆ Rust stdlib/msvcrt-less internal base for source engine games � How to get rid of panic strings in your rust binary ☆○o。..:*・»�
|
|||||||||||
laurier is offline |
|
|
#11 |
|||||||||||
iBaseult Junior Forum Moderator
Join Date: Apr 2020 Location: Germany
Reputation: 36027 Recognitions (1) (1) Points: 68,883, Level: 38 Level up: 68%, 1,317 Points needed Activity: 2.1% Last Achievements |
Quote:
Originally Posted by laurier I honestly feel like static analysis is much faster, not just for this but for a lot of things i see people use CE for. I end up using ce for its memory viewer mostly. Once you realize you can just rebase to 0x0 (or use this if ur worried about stuff breaking which has never happened to me at least in a game hacking context) you can pretty much do most of your searching in ida Now i have no idea if this is still viable in games with virtualization/obfuscation as those would make static analysis a lot harder but i dont play or cheat in games so i only do this stuff out of curiosity and its been working perfectly fine for me. Usually my «»»»workflow»»»» is: find stuff related to what i wanna do in ida (via xrefs and stuff, this is probably way harder to do in some games and cheat engine might be more efficient in those cases) -> get my sigs/offsets(by rebasing to 0) -> start writing code and testing along the way using ce’s memory viewer or windbg to check that my code is doing what its supposed to do in memory Thanks a lot for sharing your experience. I’ll give IDA a try on my next Project __________________ |
|||||||||||
iBaseult is offline |
|
|
#12 |
|||||||||||
GDPR_Anonymous MVP Join Date: Sep 2005
Reputation: 426179 Points: 1, Level: 1 Level up: 0%, 1 Points needed Activity: 0% |
While this may be useful for people that have almost no idea about reverse engineering, this is a really terrible way of finding an entity list. You literally have the games source code for this game in specific (Same with like, all unity games). You’d probably save yourself time looking at that stuff, instead of spending 4 hours in cheat engine scanning for increased/decreased values and praying to allah that you somehow get the entity list. Very big waste of time, and a poor way to teach beginners imo. PS: I was actually excited when you posted this because i thought it was gonna be a solid guide, but meh.
|
|||||||||||
GDPR_Anonymous is offline |
|
|
#13 |
|||||||||||
xfly44037 Hacker Supreme Join Date: Dec 2018 Location: St. Petersburg
Reputation: 2119 Points: 7,172, Level: 9 Level up: 62%, 428 Points needed Activity: 5.9% Last Achievements |
great tut. thanks for making this. __________________ Dionysus#3247 |
|||||||||||
xfly44037 is offline |
|
|
#14 |
|||||||||||
laurier ♱BABY☆THE STARS SHINE BRIGHT♱ Join Date: Feb 2020 Location: Agartha
Reputation: 37923 Recognitions Points: 44,579, Level: 31 Level up: 99%, 21 Points needed Activity: 11.4% Last Achievements |
Quote:
Originally Posted by GDPR_Anonymous While this may be useful for people that have almost no idea about reverse engineering, this is a fucking terrible way of finding an entity list. You literally have the games source code for this game in specific (Same with like, all unity games). You’d probably save yourself time looking at that stuff, instead of spending 4 hours in cheat engine scanning for increased/decreased values and praying to allah that you somehow get the entity list. Very big waste of time, and a poor way to teach beginners imo. PS: I was actually excited when you posted this because i thought it was gonna be a solid guide, but meh. Its very true that just looking at engine source code (or chucking the game in dnspy for .NET) is suuuper useful and lets u write cheats extremely fast, however i’m curious as to how you’d approach a game where these techniques don’t apply (which is rare nowadays but just imagine) Personally i’d still go for static analysis first but his method doesn’t seem that bad if you have no info on how the game internals works, what do you think? __________________
�゚�゚゚・:..☆ Rust stdlib/msvcrt-less internal base for source engine games � How to get rid of panic strings in your rust binary ☆○o。..:*・»� |
|||||||||||
laurier is offline |
|
|
#15 |
|||||||||||
GDPR_Anonymous MVP Join Date: Sep 2005
Reputation: 426179 Points: 1, Level: 1 Level up: 0%, 1 Points needed Activity: 0% |
Quote:
Originally Posted by laurier Its very true that just looking at engine source code (or chucking the game in dnspy for .NET) is suuuper useful and lets u write cheats extremely fast, however i’m curious as to how you’d approach a game where these techniques don’t apply (which is rare nowadays but just imagine) Personally i’d still go for static analysis first but his method doesn’t seem that bad if you have no info on how the game internals works, what do you think? It’s very rare that you find a game engine where you have 0 engine source code, 0 game source code (Unity/Dnspy, DayZ PBO’s, etc), and 0 of anything else really. But if that were to occur, then IDA still exists, and string search in ida still exists. If you really learn assembly, then you can tell what the assembly/pseudo in ida is actually doing. But then again i guess some people dont like learning to that extent idfk
|
|||||||||||
GDPR_Anonymous is offline |
|
|
#16 |
|||||||||||
iBaseult Junior Forum Moderator
Join Date: Apr 2020 Location: Germany
Reputation: 36027 Recognitions (1) (1) Points: 68,883, Level: 38 Level up: 68%, 1,317 Points needed Activity: 2.1% Last Achievements |
Quote:
Originally Posted by GDPR_Anonymous While this may be useful for people that have almost no idea about reverse engineering, this is a really terrible way of finding an entity list. You literally have the games source code for this game in specific (Same with like, all unity games). You’d probably save yourself time looking at that stuff, instead of spending 4 hours in cheat engine scanning for increased/decreased values and praying to allah that you somehow get the entity list. Very big waste of time, and a poor way to teach beginners imo. PS: I was actually excited when you posted this because i thought it was gonna be a solid guide, but meh. Hey, thanks for your reply. I started this thread as a discussion / question based thread, asking for further & better methods to reverse entity lists rather than guiding someone into doing it my way, which is why this Thread has the [Discussion] tag instead of the [Tutorial] one. I’m learning for myself and planning to do a detailed instruction wise Tutorial for reversing Entity Lists like the Cheat Engine one (once I have a solid method), but first I’d like to get some feedback and improvement ideas, as I already suspect the method I’m currently using is not the best one. While it may be beneficial to use the engine’s source to find and reverse an entity list, I am able to find them in most games with CE within 5-10 minutes, which is sufficient enough for me (to just create a basic esp). But as I mentioned in my thread, I struggle to find an Entity List with more information about each entity than just the position, which is why I started this «Discussion» thread, to get more ideas and what is working best for you. So it’s great that you’re here to share your thoughts on it __________________
|
|||||||||||
iBaseult is offline |
|
|
#17 |
|||||||||||
33c0c3 Join Date: Apr 2020
Reputation: 37168 Recognitions (1) (2) Points: 56,793, Level: 35 Level up: 49%, 1,907 Points needed Activity: 22.9% Last Achievements |
For what it’s worth, I do think that point regarding time taken has a very real place in all of this. I have a similar workflow for what’s been described in the opening post here that I will utilize when working on new games, even if I know such engine resources are available to me. The reason is as was already described: Quote:
Originally Posted by iBaseult While it may be beneficial to use the engine’s source to find and reverse an entity list, I am able to find them in most games with CE within 5-10 minutes, which is sufficient enough for me (to just create a basic esp). If I’m working on a game that I know I’m not going to want to devote a longer time to reverse engineering, I think techniques like the one @iBaseult described have a lot of merit; and those are techniques I’ve personally seen very seasoned «veterans» make use of as well. To add to this discussion in a constructive way: I once saw somebody make use of standard rendering interfaces (such as those like Direct3D) for finding player/bone positions automatically. I myself have only done something like this in a very limited capacity with Payday 2, but there’s some interesting research on this idea by DrNseven if ever that interested you. I know this is a little more theoretical, but maybe a fun topic to look into __________________ |
|||||||||||
33c0c3 is offline |
|
|
#18 |
|||||||||||
oxymoronCS github copilot pro Join Date: Apr 2022 Location: invalid module
Reputation: 410 Recognitions (1) Points: 802, Level: 1 Level up: 81%, 98 Points needed Activity: 9.5% |
Quote:
Originally Posted by 33c0c3 If I’m working on a game that I know I’m not going to want to devote a longer time to reverse engineering, I think techniques like the one @iBaseult described have a lot of merit; and those are techniques I’ve personally seen very seasoned «veterans» make use of as well. I agree for the most part. If I’m reversing a game that’s using an engine I’m familiar with, I can find an entity list in a debugger before IDA is done parsing the module. However, if I want a comprehensive understanding of everything, I’ll spend my time in IDA. |
|||||||||||
oxymoronCS is offline |
|
|
#19 |
|||||||||||
mistercomedy n00bie Join Date: Dec 2018 Location: The Shores of Hell
Reputation: 169 Points: 3,165, Level: 5 Level up: 46%, 435 Points needed Activity: 5.0% Last Achievements |
This might be considered off-topic, but how do you find the entity list in a game that has no localplayer? Right now I’m reversing Insaniquarium Deluxe, and there is no player character. There’s just fish AI in a tank. Almost all of the tutorials I can find are for shooter games. I’m able to find the position of an individual fish by using increased value/decreased value when they’re swimming up and down, and the XYZ for that individual fish is stored nearby in memory. I’m having trouble finding the entity list, or some way to use a relative offset to find all other fish. While reversing the game I found that I can change the growth state of the fish; when you buy a fish, they spawn in as baby guppies, this growth state is literally stored as a 4-byte int, «1», a teen fish is «2» and an adult fish is «3». When the fish are adults, they produce the most money. End goal is to make a function in my cheat that can find all the guppies and change them to adults. __________________ ==========================
|
|||||||||||
mistercomedy is offline |
|
|
#20 |
|||||||||||
CodingSophia h4x0!2 Join Date: Nov 2022 Location: CodingSophia#4941
Reputation: 2087 Points: 4,128, Level: 6 Level up: 59%, 372 Points needed Activity: 14.3% Last Achievements |
Thank you for this @iBaseult, this is clean. In case of many offsets before reaching bases addresses/entityList this could be a pain or i am wrong ? |
|||||||||||
CodingSophia is offline |
|
|
Similar Threads |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
[Coding] Issue with adding the health offset to entity 2 from the entity list? | Matchew101 | Counterstrike Global Offensive | 11 | 10th October 2020 08:07 PM |
[Help] problem with getting entity from entity list | DevSerpent | Counterstrike Global Offensive | 7 | 11th March 2020 12:29 PM |
[Help] Finding entity list(player list) | danifantom | Alternative Online Mods | 0 | 25th September 2019 10:09 PM |
Tags |
list, position, entity, address, addresses, positions, accesses, player, entities, results |
«
Previous Thread
|
Next Thread
»
Forum Jump |
All times are GMT. The time now is 03:54 AM.
Contact Us —
Toggle Dark Theme
Terms of Use Information Privacy Policy Information
Copyright ©2000-2023, Unknowncheats� UKCS #312436
no new posts
Необходимое программное обеспечение:
Понадобиться нам для написания чита. Крайне рекомендую использовать те же инструменты, которыми пользуюсь я (или их аналоги), за исключением языка программирования: вы можете писать код на чём угодно, я, как в институте, дам вам базовые знания и объясню принцип работы, всё остальное за вами.
Среду разработки и язык программирования выбираете по желанию сами.
Перед началом основной работы необходимо знать некоторые вещи:
Я разрабатываю в 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.
Entity List Finder
Tool that will help you to find the entity list.
Requirements
.NET Framework 4.6.1 Runtime or higher.
Support
- x64
- x86
Tested working on:
- Assault Cube
- Sauerbraten x64
- CSGO
- Black Mesa
- DOOM 2016
- Bioshock Infinite
These include:
- Source Engine
- IdTech Engine
- Unreal Engine
How to use
1. Download the tool from .
2. Open the tool and select your game process.
3. The «Max bytes between addresses» option allows you to reduce or increase the distance between every entity that you are trying
to find. This number is in HEX.
Tip: Start with a lower number, or start with a bigger one and decrease it later when validating.
If you are unsure, just leave the default.
A bigger number will give you more results but mostly useless.
A lower number will give you less results but accurate.
4. Put the player/enemy/object base address to find, one per line. This number is in HEX.
Tip: Put at least three addresses, but more addresses, better results!
5. Press the magic button and wait.
6. After a few seconds you will see the results on the right panel, those addresses are possible entity list addresses or
close enough to one of them, why? Because you don’t know if you put on the search box the first object on the entity list,
so maybe the possible entity list is an address close enough to that.
7. Now you can modify your settings on the left panel and press the Validate button to search only on the results that
the tool gives you and filter bad results.
8. You can see, in this case, we filtered one result by reducing the «Max bytes between addresses» option.
This doesn’t always mean that the address was bad, but if still there is results left, usually means that the result removed was bad.
9. As a reference, you can see that the correct entity list was the first one. Take into account that the real entity list starts
4 bytes less before the one we found (in AssaultCube), but that is something that the tool doesn’t know, is up to you to work from here.
-
11-30-2016
#1
Dual-Keyboard Member
- Join Date
- Apr 2011
- Gender
- Location
- System.Diagnostics
- Posts
- 344
- Reputation
96
- Thanks
- 3,137
Finding Entity list / Object list
Knowing how to find and entity list is absolutely essential, if you plan on making your own external hacks such as an aimbot or esp.
I’ve had a few people ask me recently to make a guide so here it is.
All times are GMT -6. The time now is 09:54 PM.