Гайд Новые сигнатуры, индексы и оффсеты под обновления

Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
557
Реакции[?]
88
Поинты[?]
53K
Да ты заебал
Третий раз уже говоришь
Мы может просто хотим хукнуть функцию и кайфовать
чтобы другие люди видели что делать лишний хук не обязательно когда у тебя хукнут нетчан
 
🤡
Пользователь
Статус
Оффлайн
Регистрация
28 Апр 2014
Сообщения
114
Реакции[?]
143
Поинты[?]
7K
чтобы другие люди видели что делать лишний хук не обязательно когда у тебя хукнут нетчан
У этого метода есть опр. нюансы. Ты изучал внутри как оно работает?
 
Начинающий
Статус
Оффлайн
Регистрация
16 Авг 2022
Сообщения
30
Реакции[?]
3
Поинты[?]
3K
constexpr uint32_t IsInGame = 31;
constexpr uint32_t FrameStageNotify = 31;

PrepareUnitOrders = 4C 89 4C 24 20 44 89 44 24 18 89 54 24 10 48
RunScript = 48 89 5C 24 10 48 89 6C 24 18 56 57 41 54 41 56 41 57 48 81 EC E0
OnAcceptMatch = E8 ? ? ? ? 48 8D 4B 28FF C6
CNetChan::`vftable' = 48 8D 05 ?? ?? ?? ?? 48 89 69 20
CDOTAParticleManagerPtr2x = E8 ? ? ? ? 66 0F 6E FB
 
Начинающий
Статус
Оффлайн
Регистрация
16 Авг 2022
Сообщения
30
Реакции[?]
3
Поинты[?]
3K
Also, any idea why FindDeclaredClass returns null?
Edit: "FindTypeScopeForModule" is updated
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
16 Авг 2022
Сообщения
30
Реакции[?]
3
Поинты[?]
3K
adsadsadadasdasda.jpg

Okay, I saw this from ExistedDim4, and I hope I can help to update the his cheat, because his source code helped me a lot to write my own cheat and learn a bit about dota 2 internal stuff.
I'm going to write whatever I changed to get my cheat work again.

Schema:
        return CallVFunc<13, CSchemaSystemTypeScope*>(module, nullptr);
I saw from IDA that they changed GetScope parameters, it gets a second parameter and checks if it's null or not, if it is, it works like the past.

Signatures:
RegisterConvar: 48 89 5C 24 08 48 89 74 24 10 48 89 7C 24 18 55 41 54 41 55 41 56 41 57 48 8D 6C 24 D1 48 81 EC A0
ProjectileManagerPtr:48 8d 05 ? ? ? ? 48 89 05 ? ? ? ? 48 83 c4 ? c3 cc cc cc cc cc cc cc cc 48 8b 15 ? ? ? ? 48 8d 0d ? ? ? ? e9? ? ? ? cc cc cc cc cc cc cc cc cc cc cc cc cc 48 83 ec
ParticleManagerPtr(2x): E8 ? ? ? ? 66 0F 6E FB
CNetChan::`vftable': 48 8D 05 ?? ?? ?? ?? 48 89 69 20
OnAcceptMatch: E8 ? ? ? ? 48 8D 4B 28FF C6
RunScript: 48 89 5C 24 10 48 89 6C 24 18 56 57 41 54 41 56 41 57 48 81 EC E0
PrepareUnitOrders: 4C 89 4C 24 20 44 89 44 24 18 89 54 24 10 48

CDOTABaseAbility->GetDamage: VirtualFunction<297, int32_t>();
CDOTABaseAbility->GetEffectiveCastRange: VirtualFunction<262, int32_t>(nullptr,nullptr,nullptr);
CDOTABaseNPC::GetAttackRange(): 283
CDOTABaseNPC::GetPhysicalArmor(): 286
CDOTABaseNPC::GetMagicalArmor(): 287
If there's anything else you need that you don't feel like doing yourself, let me know. I hope you continue to improve your cheat so I can learn from you.
 
Ревёрсер среднего звена
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2022
Сообщения
301
Реакции[?]
104
Поинты[?]
53K
I hope you continue to improve your cheat so I can learn from you.
Unfortunately, I lost interest + I won't have time for it anyway.
Thank you for your efforts, for some reason I didn't see I could just pass nullptr into GetScope
Will also need to find SaveSerializedSOCache or how that was called. For manabars they just changed the entire function, needs further investigation. mana_shield xref still seems to be on the right track.
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
626
Реакции[?]
294
Поинты[?]
26K
Unfortunately, I lost interest + I won't have time for it anyway.
Thank you for your efforts, for some reason I didn't see I could just pass nullptr into GetScope
Will also need to find SaveSerializedSOCache or how that was called. For manabars they just changed the entire function, needs further investigation. mana_shield xref still seems to be on the right track.
CDOTAGCClientSystem::Shutdown(2 индекс виртуальная функция IGameSystem::Shutdown)
"cache_%u_%u.soc" хреф
можешь просто сделать так чтобы она не вызывалась/ничего не делала/внутри вырезать аккуратно вызов сейва/либо сам сейв кеша уебать
внутри нее по-моему вызов SaveSerializedSOCache и потом еще анрег всякой стимовской хуйни
 
Ревёрсер среднего звена
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2022
Сообщения
301
Реакции[?]
104
Поинты[?]
53K
CDOTAGCClientSystem::Shutdown(2 индекс виртуальная функция IGameSystem::Shutdown)
"cache_%u_%u.soc" хреф
можешь просто сделать так чтобы она не вызывалась/ничего не делала/внутри вырезать аккуратно вызов сейва/либо сам сейв кеша уебать
внутри нее по-моему вызов SaveSerializedSOCache и потом еще анрег всякой стимовской хуйни
Та я уже нашёл заново, там просто почему-то сигмейкер генил такую же сигу, но по ней же не мог найти. Лично я тупо даю функции вызваться и сам удаляю эти файлы.
Посмотреть вложение 257818

Okay, I saw this from ExistedDim4, and I hope I can help to update the his cheat, because his source code helped me a lot to write my own cheat and learn a bit about dota 2 internal stuff.
I'm going to write whatever I changed to get my cheat work again.

Schema:
        return CallVFunc<13, CSchemaSystemTypeScope*>(module, nullptr);
I saw from IDA that they changed GetScope parameters, it gets a second parameter and checks if it's null or not, if it is, it works like the past.

Signatures:
RegisterConvar: 48 89 5C 24 08 48 89 74 24 10 48 89 7C 24 18 55 41 54 41 55 41 56 41 57 48 8D 6C 24 D1 48 81 EC A0
ProjectileManagerPtr:48 8d 05 ? ? ? ? 48 89 05 ? ? ? ? 48 83 c4 ? c3 cc cc cc cc cc cc cc cc 48 8b 15 ? ? ? ? 48 8d 0d ? ? ? ? e9? ? ? ? cc cc cc cc cc cc cc cc cc cc cc cc cc 48 83 ec
ParticleManagerPtr(2x): E8 ? ? ? ? 66 0F 6E FB
CNetChan::`vftable': 48 8D 05 ?? ?? ?? ?? 48 89 69 20
OnAcceptMatch: E8 ? ? ? ? 48 8D 4B 28FF C6
RunScript: 48 89 5C 24 10 48 89 6C 24 18 56 57 41 54 41 56 41 57 48 81 EC E0
PrepareUnitOrders: 4C 89 4C 24 20 44 89 44 24 18 89 54 24 10 48

CDOTABaseAbility->GetDamage: VirtualFunction<297, int32_t>();
CDOTABaseAbility->GetEffectiveCastRange: VirtualFunction<262, int32_t>(nullptr,nullptr,nullptr);
CDOTABaseNPC::GetAttackRange(): 283
CDOTABaseNPC::GetPhysicalArmor(): 286
CDOTABaseNPC::GetMagicalArmor(): 287
If there's anything else you need that you don't feel like doing yourself, let me know. I hope you continue to improve your cheat so I can learn from you.
Thanks for vfunc indices and new sigs, saved me a lot of trouble.
You can ignore obsolete stuff like Particle/Projectile Manager and RegisterConVar sigs + RunScript is a vfunc. Not everything that is in signatures.json should be updated, but perhaps I need to keep it clean.
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
626
Реакции[?]
294
Поинты[?]
26K
Та я уже нашёл заново, там просто почему-то сигмейкер генил такую же сигу, но по ней же не мог найти. Лично я тупо даю функции вызваться и сам удаляю эти файлы.

Thanks for vfunc indices and new sigs, saved me a lot of trouble.
You can ignore obsolete stuff like Particle/Projectile Manager and RegisterConVar sigs + RunScript is a vfunc. Not everything that is in signatures.json should be updated, but perhaps I need to keep it clean.
возможно у тебя брейкпоинт включенный на этой функции в дебаггере стоял, поэтому и функцию по сиге ты не мог найти(брейкпоинт дефолтный осуществляется байтпатчем оригинальной инструкции на инструкцию int3(которая при выполнении исключение кидает которое дебаггер потом ловит и обрабатывает и останавливает тебе приложуху), и дебаггер потом визуально скрывает эту int3 и показывает оригинал как будто он ничего не патчил, но на самом деле в памяти там будет другая инструкция(байт 0xCC) поэтому по сиге место уже не найдешь пока не выключишь бп)
 
Ревёрсер среднего звена
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2022
Сообщения
301
Реакции[?]
104
Поинты[?]
53K
возможно у тебя брейкпоинт включенный на этой функции в дебаггере стоял, поэтому и функцию по сиге ты не мог найти(брейкпоинт дефолтный осуществляется байтпатчем оригинальной инструкции на инструкцию int3(которая при выполнении исключение кидает которое дебаггер потом ловит и обрабатывает и останавливает тебе приложуху), и дебаггер потом визуально скрывает эту int3 и показывает оригинал как будто он ничего не патчил, но на самом деле в памяти там будет другая инструкция(байт 0xCC) поэтому по сиге место уже не найдешь пока не выключишь бп)
Я давно таких ошибок не делаю, дебаггер-то запущен не был)))))
SigMaker в обоих случаях(генерация и поиск) один, в IDA. Я пока прост взял сигу на сегмент функции и по оффсету выхожу на Save
 
Новичок
Статус
Оффлайн
Регистрация
5 Апр 2023
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Парни, а как CDOTAInput.CursorPosition получить не подскажете?
 
Начинающий
Статус
Оффлайн
Регистрация
2 Янв 2021
Сообщения
3
Реакции[?]
0
Поинты[?]
0
Парни, а как CDOTAInput.CursorPosition получить не подскажете?
Ну лично я в хуке PrepareUnitOrder выводил pos->x, кликал в лобби куда то и не двигая мышкой сворачивал дотку, в CE искал этот "x" ну и там внизу такая херня зеленая типа client.dll + чиселки, посмотрел что читает этот адрес: movsd xmm0,[rax+00004104], вот в rax лежит dotainput а 0x4104 оффсет, отсуда такая шляпа reinterpret_cast<Vector*>(uintptr_t(DOTAInput) + 0x4104)
об этом где то вульф писал я не помню точно где я вот по его гайду это и сделал
 
Сверху Снизу