чтобы другие люди видели что делать лишний хук не обязательно когда у тебя хукнут нетчанДа ты заебал
Третий раз уже говоришь
Мы может просто хотим хукнуть функцию и кайфовать
чтобы другие люди видели что делать лишний хук не обязательно когда у тебя хукнут нетчанДа ты заебал
Третий раз уже говоришь
Мы может просто хотим хукнуть функцию и кайфовать
У этого метода есть опр. нюансы. Ты изучал внутри как оно работает?чтобы другие люди видели что делать лишний хук не обязательно когда у тебя хукнут нетчан
ну да все работает,там еще should_draw есть но и без него все окУ этого метода есть опр. нюансы. Ты изучал внутри как оно работает?
Ну если работает и никаких подвохов не нашел, то лан.ну да все работает,там еще should_draw есть но и без него все ок
return CallVFunc<13, CSchemaSystemTypeScope*>(module, nullptr);
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
Unfortunately, I lost interest + I won't have time for it anyway.I hope you continue to improve your cheat so I can learn from you.
CDOTAGCClientSystem::Shutdown(2 индекс виртуальная функция IGameSystem::Shutdown)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 и потом еще анрег всякой стимовской хуйни
Thanks for vfunc indices and new sigs, saved me a lot of trouble.Посмотреть вложение 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.
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.Schema:return CallVFunc<13, CSchemaSystemTypeScope*>(module, nullptr);
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.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
возможно у тебя брейкпоинт включенный на этой функции в дебаггере стоял, поэтому и функцию по сиге ты не мог найти(брейкпоинт дефолтный осуществляется байтпатчем оригинальной инструкции на инструкцию int3(которая при выполнении исключение кидает которое дебаггер потом ловит и обрабатывает и останавливает тебе приложуху), и дебаггер потом визуально скрывает эту int3 и показывает оригинал как будто он ничего не патчил, но на самом деле в памяти там будет другая инструкция(байт 0xCC) поэтому по сиге место уже не найдешь пока не выключишь бп)Та я уже нашёл заново, там просто почему-то сигмейкер генил такую же сигу, но по ней же не мог найти. Лично я тупо даю функции вызваться и сам удаляю эти файлы.
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) поэтому по сиге место уже не найдешь пока не выключишь бп)
Ну лично я в хуке PrepareUnitOrder выводил pos->x, кликал в лобби куда то и не двигая мышкой сворачивал дотку, в CE искал этот "x" ну и там внизу такая херня зеленая типа client.dll + чиселки, посмотрел что читает этот адрес: movsd xmm0,[rax+00004104], вот в rax лежит dotainput а 0x4104 оффсет, отсуда такая шляпа reinterpret_cast<Vector*>(uintptr_t(DOTAInput) + 0x4104)Парни, а как CDOTAInput.CursorPosition получить не подскажете?
А ты возьми любую функу из вмт CEconItem класса поставь бп на начало и сделай любое действие с любой шмоткой со своего инвентаря (одеть,снять) и смотри что меняется и там будет твой m_bInUse и там уже делай дедукциюЕсть у кого-то актуальные оффсеты CEconItem? Чет я люто фейлюсь на ребилде Equip'a и мне кажется вот именно с этим классом.
В частности меня интересует выделенный сегмент, если верить сурсам и некоторым постам, там должны находится вложенные структуры такого вида:
Посмотреть вложение 278240
Посмотреть вложение 278239
Так и делал, но чего-то убедительного пока не нашел.А ты возьми любую функу из вмт CEconItem класса поставь бп на начало и сделай любое действие с любой шмоткой со своего инвентаря (одеть,снять) и смотри что меняется и там будет твой m_bInUse и там уже делай дедукцию
там вроде была функа Dump виртуальная она в консоль итем высирает, поищи вроде 6 индекс была щас не знаю какой(если ее еще не убрали конеш).Так и делал, но чего-то убедительного пока не нашел.
Кажется я нашел, что-то похожее на оригинальный Equip(он был заинлайнин в другую функцию?), попробую чекнуть через него.
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz