Undetected Dota 2 External Patcher

Начинающий
Статус
Оффлайн
Регистрация
1 Янв 2019
Сообщения
13
Реакции[?]
1
Поинты[?]
2K
Братан, ну так не надо из меня делать долбоеба, говоря, что ты все проверил. Очевидно, с долей вероятности 10:1 дело в качестве твоей проверки, а не том, что я не способен запустить exeшник, которым прежде пользовался на протяжении года. Просто проверь ещё раз.
Поскольку функции все, кроме камеры, помечены как use aor, я пытался юзать только отдаление. И отдалял не больше значения 1400-1500. Все разы этого не хватало даже на 1 игру, дота крашилась раньше. Крашилась и вне матча, во время поиска несколько раз. Других софтов не запускал, ибо не пользуюсь, без патчера дота не крашится.
Хз у меня ничего не крашит, автору этой темы большое спасибо!
 
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2024
Сообщения
5
Реакции[?]
0
Поинты[?]
0
dota2.exe not found or not client.dll даже при запуске от прав админа, в лобби, в игре, в меню и нигде не работает упд: перезагрузка пк помогла
 
Последнее редактирование:
Начинающий
Статус
Онлайн
Регистрация
26 Авг 2023
Сообщения
318
Реакции[?]
24
Поинты[?]
23K
1716365527449.png
просьба к автору этой темы сделать показ эффектов абилок санстрайка, и разгона бары, думаю это не столь сильно отличается от показа тпшки(по крайней мере в теории)
 
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2024
Сообщения
5
Реакции[?]
0
Поинты[?]
0
а какие надо добавить например скажи чо
Есть идейка одна. В доте есть механика поворота камеры и благодаря одной консольной команде камеру можно повернуть(реверсировать) и сторона тьмы будет слева снизу, а света справа сверху. (Типо как в лиге легенд, где ты всегда играешь типо за свет)

При такой инверсии будет намного удобнее играть за сторону тьмы, а для игры за свет - лучше не реверсировать

Команда: dota_camera_disable_yaw 0 (только с sv_cheats 1) (она только разрешает поворт камеры в ручную, а не поворачивает её, но наверное есть команда которая позваляет её повернуть)
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Есть идейка одна. В доте есть механика поворота камеры и благодаря одной консольной команде камеру можно повернуть(реверсировать) и сторона тьмы будет слева снизу, а света справа сверху. (Типо как в лиге легенд, где ты всегда играешь типо за свет)

При такой инверсии будет намного удобнее играть за сторону тьмы, а для игры за свет - лучше не реверсировать

Команда: dota_camera_disable_yaw 0 (только с sv_cheats 1) (она только разрешает поворт камеры в ручную, а не поворачивает её, но наверное есть команда которая позваляет её повернуть)
ммм ток ты не забывай что любые изменения камеры на реплее хорошо видно(без хуманайзера).
 
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2024
Сообщения
5
Реакции[?]
0
Поинты[?]
0
ммм ток ты не забывай что любые изменения камеры на реплее хорошо видно(без хуманайзера).
Ладно, ты прав, это будет выглядить реально странно, что чел нажимает снизу, а засчитывается сверху. Я чёт не подумал, что в патруле разберутся 🙁
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2024
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Кстати, там же патч вышел и теперь 4й пункт (mana bars или вроде того) в программе бесполезен и по заявлениям моего друга - "крашит эту программу"
 
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2024
Сообщения
5
Реакции[?]
0
Поинты[?]
0
есть ещё идейка: можно добавить видимость иллюзий врагов (что бы они были синие)
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
как хуманайзер сделать?
делаешь так чтоб мышка которая отправляется(фейк) соответствовала на оригинальной камере(1200) твоей текущей мышке на твоей камере(если точнее то луч курсора твоего и луч курсора фейкового должны пересекаться в одной точке, т.е. когда ты кликаешь куда-нибудь у себя, у тебя фейк курсор должен быть в соответствующем месте чтобы при клике на реплее туда же кликалось) ну и камеру фейковую не забываешь мувать(чтобы твой фейк курсор не выходил за пределы фейк камеры) при надобности. ну и плюс фиксишь насильные перемещения камеры(ф1, пробел, тык по миникарте и тд)(если у тебя камера 5000 условно, курсор в самом низу экрана, и ты тыкаешь ф1(фокусишься на герое) то у тебя очевидно реальный курсор будет далеко за пределами фейк 1200 камеры и соответственно тыкать туда ты не имеешь права, тебе надо сначала туда камеру фейковую дотащить). ну и еще опционально можно тыканья по худу пофиксить если захотеть хотя бы частично(например закупку в лавке и тд)(ну т.е. закупка в лавке она и на 1200 и на 5000 одинаковая будет по курсору поэтому надо как будто бы фейк курсор дотащить до реального курсора)
в теории по крайней мере. практику я не трогал.
 
Начинающий
Статус
Оффлайн
Регистрация
24 Июл 2021
Сообщения
13
Реакции[?]
0
Поинты[?]
0
Кстати, там же патч вышел и теперь 4й пункт (mana bars или вроде того) в программе бесполезен и по заявлениям моего друга - "крашит эту программу"
крашит то да, но вот сама функция работает. я просто юзаю все функции, а только после них ее и прога крашит. Все работает. От автора хотелось бы подсветку иллюзий
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
крашит то да, но вот сама функция работает. я просто юзаю все функции, а только после них ее и прога крашит. Все работает. От автора хотелось бы подсветку иллюзий
так щас манабары по дефолту есть, просто не включай их и не крашнет. а насчет подсветки илюзий ее патчем вроде как не сделаешь
 
Пользователь
Статус
Оффлайн
Регистрация
3 Дек 2020
Сообщения
288
Реакции[?]
30
Поинты[?]
5K
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
в мелонити есть
ну так она там не патчами сделана,что логично,как минимум чтоб перекрасить модельку надо функу вызывать в игре для кажой модельки грубо говоря,что не особо то и экстернал, и не особо патчер уже
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
можно добавить статус абилок врага в худе(при нажатии можно показывать левел/кд/манакост у врагов которые обычно просто не показываются; ну т.е. будет как у тиммейтов или у своего героя всё на худе показывать при выборе) + скрытые баффы/дебаффы(типа тру сайта)
1717368179976.png
Код:
client.dll - sha1: 2f17fb6b520ed76bea98c33cf7c2a99f8d944600 timestamp: 1717201500(00:25:00 01 Jun 2024)
engine2.dll - sha1: 8ac410b63a431da7751ff2c1fc053f17ecb7311c timestamp: 1717025664(23:34:24 29 May 2024)
particles.dll - sha1: e221ecea54a3520357c2c8f7cf46e1db2d2656f9 timestamp: 1717025579(23:32:59 29 May 2024)

show enemy abilitiy status on HUD
    (client.dll: xref "CDOTA_Hud_AbilityPanel::UpdateCooldown")
        48 0F 45 ?? ?? 8D ?? ?? ?? ?? ?? 48 8B ?? FF 50 ?? 84 C0 0F 84(@ $+117)    client.dll
        $ ==>            | 48:895C24 08             | mov qword ptr ss:[rsp+8],rbx
        $+5              | 48:896C24 20             | mov qword ptr ss:[rsp+20],rbp
        $+A              | 56                       | push rsi
        $+B              | 57                       | push rdi
        $+C              | 41:56                    | push r14
        $+E              | 48:81EC 80000000         | sub rsp,80
        ...
        $+114            | 48:85C0                  | test rax,rax
        $+117            | 48:0F45F8                | cmovne rdi,rax                | 48 0F 45 ?? ?? 8D ?? ?? ?? ?? ?? 48 8B ?? FF 50 ?? 84 C0 0F 84
        $+11B            | 49:8D8E 200A0000         | lea rcx,qword ptr ds:[r14+A20]
        $+122            | 48:8B01                  | mov rax,qword ptr ds:[rcx]
        $+125            | FF50 58                  | call qword ptr ds:[rax+58]                 <-------- team check
        $+128            | 84C0                     | test al,al
        $+12A            | 0F84 DA000000            | je client.7FF9B3B8EEBA                     <-------- if jump taken, shows cooldown
        $+130            | 41:80BE C3030000 04      | cmp byte ptr ds:[r14+3C3],4
        $+138            | 0F84 CC000000            | je client.7FF9B3B8EEBA
        $+13E            | BD FFFF0000              | mov ebp,FFFF
        $+143            | 66:392D 42E87D02         | cmp word ptr ds:[7FF9B636D63C],bp

            replacement:
            $+12A            | E9 DB000000              | jmp client.7FF9B3B8EEBA                    <-------- always jump(show cooldown)
            $+12F            | 90                       | nop

    (client.dll: xref "CDOTA_Hud_AbilityPanel::UpdateLevel")
        49 8B CC FF ?? ?? 41 BE(@ $+28B)    client.dll
        49 8B CC FF ?? ?? 84 C0 75 ?? 44(@ $+3DE)    client.dll
            $ ==>            | 48:895424 10             | mov qword ptr ss:[rsp+10],rdx
            $+5              | 53                       | push rbx
            $+6              | 55                       | push rbp
            $+7              | 56                       | push rsi
            $+8              | 57                       | push rdi
            $+9              | 41:55                    | push r13
            $+B              | 41:56                    | push r14
            $+D              | 48:81EC 38010000         | sub rsp,138
            ...
            $+28B            | 49:8BCC                  | mov rcx,r12                                | 49 8B CC FF ?? ?? 41 BE
            $+28E            | FF52 58                  | call qword ptr ds:[rdx+58]                 <-------- team check
            $+291            | 41:BE FFFF0000           | mov r14d,FFFF
            $+297            | 84C0                     | test al,al
            $+299            | 74 5B                    | je client.7FF9B3B921C6                     <-------- if jump taken, colorize icon if ability learnt
            $+29B            | 6644:3935 E1B47D02       | cmp word ptr ds:[7FF9B636D654],r14w
            ...
            $+3DE            | 49:8BCC                  | mov rcx,r12                                | 49 8B CC FF ?? ?? 84 C0 75 ?? 44
            $+3E1            | FF50 58                  | call qword ptr ds:[rax+58]                 <-------- team check
            $+3E4            | 84C0                     | test al,al
            $+3E6            | 75 68                    | jne client.7FF9B3B92320                    <-------- if jump not taken, show level
            $+3E8            | 44:8BBF B0050000         | mov r15d,dword ptr ds:[rdi+5B0]
            $+3EF            | 44:89BC24 70010000       | mov dword ptr ss:[rsp+170],r15d
            $+3F7            | 45:85FF                  | test r15d,r15d
            $+3FA            | 79 26                    | jns client.7FF9B3B922F2
            $+3FC            | 4C:39AF 38050000         | cmp qword ptr ds:[rdi+538],r13

                replacement:
                $+297            | 84C0                     | test al,al
                $+299            | EB 5B                    | jmp client.7FF9B3B921C6                     <-------- always jump(colorize learnt)
                $+29B            | 6644:3935 E1B47D02       | cmp word ptr ds:[7FF9B636D654],r14w
                ...
                $+3E1            | FF50 58                  | call qword ptr ds:[rax+58]
                $+3E4            | 84C0                     | test al,al
                $+3E6            | 90                       | nop                                         <-------- never jump(show level)
                $+3E7            | 90                       | nop
                $+3E8            | 44:8BBF B0050000         | mov r15d,dword ptr ds:[rdi+5B0]

    (client.dll: xrefs "mana_cost" "health_cost" "gold_cost" one after another in that sequence)
        40 0F 9F ?? 41 80 BE(@ $+124)   client.dll
            $ ==>            | 48:895C24 08             | mov qword ptr ss:[rsp+8],rbx
            $+5              | 48:896C24 10             | mov qword ptr ss:[rsp+10],rbp
            $+A              | 48:897424 18             | mov qword ptr ss:[rsp+18],rsi
            $+F              | 48:897C24 20             | mov qword ptr ss:[rsp+20],rdi
            $+14             | 41:54                    | push r12
            $+16             | 41:56                    | push r14
            $+18             | 41:57                    | push r15
            $+1A             | 48:83EC 40               | sub rsp,40
            ...
            $+124            | 40:0F9FC6                | setg sil                                        | 40 0F 9F ?? 41 80 BE
            $+128            | 41:80BE C3030000 04      | cmp byte ptr ds:[r14+3C3],4
            $+130            | 74 19                    | je client.7FF9B3B8C88B
            $+132            | 49:8D8E 200A0000         | lea rcx,qword ptr ds:[r14+A20]
            $+139            | 48:8B01                  | mov rax,qword ptr ds:[rcx]
            $+13C            | FF50 58                  | call qword ptr ds:[rax+58]                      <-------- team check
            $+13F            | 84C0                     | test al,al
            $+141            | 74 08                    | je client.7FF9B3B8C88B                          <-------- if jump taken, show manacost
            $+143            | 33FF                     | xor edi,edi
            $+145            | 45:33FF                  | xor r15d,r15d
                
                replacement:
                $+13C            | FF50 58                  | call qword ptr ds:[rax+58]
                $+13F            | 84C0                     | test al,al
                $+141            | EB 08                    | jmp client.7FF9B3B8C88B                     <-------- always jump(show manacost)
                $+143            | 33FF                     | xor edi,edi

display hidden buffs/debuffs
    (client.dll: xrefs "stack_count" "file://{{images}}/spellicons/empty.png")
        48 8B CB FF 90 ?? ?? ?? ?? 84 C0 74 ?? 48 8B ?? 48 8B ?? FF 90 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 41 BF(@ $+A6)    client.dll
            $ ==>            | 40:55                    | push rbp
            $+2              | 53                       | push rbx
            $+3              | 56                       | push rsi
            $+4              | 57                       | push rdi
            $+5              | 41:55                    | push r13
            $+7              | 41:56                    | push r14
            $+9              | 41:57                    | push r15
            $+B              | 48:8DAC24 60FEFFFF       | lea rbp,qword ptr ss:[rsp-1A0]
            ...
            $+A6             | 48:8BCB                  | mov rcx,rbx                                      | 48 8B CB FF 90 ?? ?? ?? ?? 84 C0 74 ?? 48 8B ?? 48 8B ?? FF 90 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 41 BF
            $+A9             | FF90 88000000            | call qword ptr ds:[rax+88]                       <-------- buff hidden check
            $+AF             | 84C0                     | test al,al
            $+B1             | 74 14                    | je client.7FF9B3B89FE7                           <-------- if jump taken, show buff(part 1)
            $+B3             | 48:8B03                  | mov rax,qword ptr ds:[rbx]
            $+B6             | 48:8BCB                  | mov rcx,rbx
            $+B9             | FF90 90000000            | call qword ptr ds:[rax+90]
            $+BF             | 84C0                     | test al,al
            $+C1             | 0F84 0B080000            | je client.7FF9B3B8A7F2
            $+C7             | 41:BF FFFF0000           | mov r15d,FFFF
            $+CD             | 4C:89A424 98020000       | mov qword ptr ss:[rsp+298],r12
            $+D5             | 0F29B424 80020000        | movaps xmmword ptr ss:[rsp+280],xmm6
            $+DD             | 0F29BC24 70020000        | movaps xmmword ptr ss:[rsp+270],xmm7
            $+E5             | 44:3877 30               | cmp byte ptr ds:[rdi+30],r14b
            $+E9             | 75 36                    | jne client.7FF9B3B8A041
            $+EB             | C647 30 01               | mov byte ptr ds:[rdi+30],1

                replacement:
                $+A9             | FF90 88000000            | call qword ptr ds:[rax+88]
                $+AF             | 84C0                     | test al,al
                $+B1             | EB 14                    | jmp client.7FF9B3B89FE7                      <-------- always jump(show buff(part 1))
                $+B3             | 48:8B03                  | mov rax,qword ptr ds:[rbx]


    (client.dll: xref "CDOTA_Hud_BuffList::Update")
        48 8B 10 48 8B C8 FF 92 ?? ?? ?? ?? 84 C0 74 ?? 48 8B 0D ?? ?? ?? ?? 83 B9(@ $+A3) client.dll
            $ ==>            | 48:895C24 10             | mov qword ptr ss:[rsp+10],rbx
            $+5              | 48:896C24 18             | mov qword ptr ss:[rsp+18],rbp
            $+A              | 56                       | push rsi
            $+B              | 57                       | push rdi
            $+C              | 41:54                    | push r12
            $+E              | 41:56                    | push r14
            $+10             | 41:57                    | push r15
            $+12             | 48:83EC 70               | sub rsp,70
            ...
            $+A3             | 48:8B10                  | mov rdx,qword ptr ds:[rax]                       | 48 8B 10 48 8B C8 FF 92 ?? ?? ?? ?? 84 C0 74 ?? 48 8B 0D ?? ?? ?? ?? 83 B9
            $+A6             | 48:8BC8                  | mov rcx,rax
            $+A9             | FF92 88000000            | call qword ptr ds:[rdx+88]                       <-------- buff hidden check
            $+AF             | 84C0                     | test al,al
            $+B1             | 74 28                    | je client.7FF9B3B8A97B                           <-------- if jump taken, show buff(part 2)
            $+B3             | 48:8B0D 16157102         | mov rcx,qword ptr ds:[7FF9B629BE70]
            $+BA             | 83B9 E4000000 12         | cmp dword ptr ds:[rcx+E4],12
                
                replacement:
                $+A9            | FF92 88000000            | call qword ptr ds:[rdx+88]
                $+AF            | 84C0                     | test al,al
                $+B1            | EB 28                    | jmp client.7FF9B3B8A97B                      <-------- always jump(show buff(part 2))
                $+B3            | 48:8B0D 16157102         | mov rcx,qword ptr ds:[7FF9B629BE70]
 
Начинающий
Статус
Онлайн
Регистрация
26 Авг 2023
Сообщения
318
Реакции[?]
24
Поинты[?]
23K
ну так она там не патчами сделана,что логично,как минимум чтоб перекрасить модельку надо функу вызывать в игре для кажой модельки грубо говоря,что не особо то и экстернал, и не особо патчер уже
так а вроде же все модельки иллюзий по дефолту желтые/синие их просто для врагов перекрашивает нет?
ну я думаю изменением текст секции как в отображении тп можно сделать?(прошу камнями не бросаться я не сильно шарю)
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
так а вроде же все модельки иллюзий по дефолту желтые/синие их просто для врагов перекрашивает нет?
ну я думаю изменением текст секции как в отображении тп можно сделать?(прошу камнями не бросаться я не сильно шарю)
я думал что можно запатчить проверку на m_iteamnum(чтоб дота думала что это тимейт),но чето не нашел вообще где на тиму проверяется при рисовке

можно добавить статус абилок врага в худе(при нажатии можно показывать левел/кд/манакост у врагов которые обычно просто не показываются; ну т.е. будет как у тиммейтов или у своего героя всё на худе показывать при выборе) + скрытые баффы/дебаффы(типа тру сайта)
Посмотреть вложение 278156
Код:
client.dll - sha1: 2f17fb6b520ed76bea98c33cf7c2a99f8d944600 timestamp: 1717201500(00:25:00 01 Jun 2024)
engine2.dll - sha1: 8ac410b63a431da7751ff2c1fc053f17ecb7311c timestamp: 1717025664(23:34:24 29 May 2024)
particles.dll - sha1: e221ecea54a3520357c2c8f7cf46e1db2d2656f9 timestamp: 1717025579(23:32:59 29 May 2024)

show enemy abilitiy status on HUD
    (client.dll: xref "CDOTA_Hud_AbilityPanel::UpdateCooldown")
        48 0F 45 ?? ?? 8D ?? ?? ?? ?? ?? 48 8B ?? FF 50 ?? 84 C0 0F 84(@ $+117)    client.dll
        $ ==>            | 48:895C24 08             | mov qword ptr ss:[rsp+8],rbx
        $+5              | 48:896C24 20             | mov qword ptr ss:[rsp+20],rbp
        $+A              | 56                       | push rsi
        $+B              | 57                       | push rdi
        $+C              | 41:56                    | push r14
        $+E              | 48:81EC 80000000         | sub rsp,80
        ...
        $+114            | 48:85C0                  | test rax,rax
        $+117            | 48:0F45F8                | cmovne rdi,rax                | 48 0F 45 ?? ?? 8D ?? ?? ?? ?? ?? 48 8B ?? FF 50 ?? 84 C0 0F 84
        $+11B            | 49:8D8E 200A0000         | lea rcx,qword ptr ds:[r14+A20]
        $+122            | 48:8B01                  | mov rax,qword ptr ds:[rcx]
        $+125            | FF50 58                  | call qword ptr ds:[rax+58]                 <-------- team check
        $+128            | 84C0                     | test al,al
        $+12A            | 0F84 DA000000            | je client.7FF9B3B8EEBA                     <-------- if jump taken, shows cooldown
        $+130            | 41:80BE C3030000 04      | cmp byte ptr ds:[r14+3C3],4
        $+138            | 0F84 CC000000            | je client.7FF9B3B8EEBA
        $+13E            | BD FFFF0000              | mov ebp,FFFF
        $+143            | 66:392D 42E87D02         | cmp word ptr ds:[7FF9B636D63C],bp

            replacement:
            $+12A            | E9 DB000000              | jmp client.7FF9B3B8EEBA                    <-------- always jump(show cooldown)
            $+12F            | 90                       | nop

    (client.dll: xref "CDOTA_Hud_AbilityPanel::UpdateLevel")
        49 8B CC FF ?? ?? 41 BE(@ $+28B)    client.dll
        49 8B CC FF ?? ?? 84 C0 75 ?? 44(@ $+3DE)    client.dll
            $ ==>            | 48:895424 10             | mov qword ptr ss:[rsp+10],rdx
            $+5              | 53                       | push rbx
            $+6              | 55                       | push rbp
            $+7              | 56                       | push rsi
            $+8              | 57                       | push rdi
            $+9              | 41:55                    | push r13
            $+B              | 41:56                    | push r14
            $+D              | 48:81EC 38010000         | sub rsp,138
            ...
            $+28B            | 49:8BCC                  | mov rcx,r12                                | 49 8B CC FF ?? ?? 41 BE
            $+28E            | FF52 58                  | call qword ptr ds:[rdx+58]                 <-------- team check
            $+291            | 41:BE FFFF0000           | mov r14d,FFFF
            $+297            | 84C0                     | test al,al
            $+299            | 74 5B                    | je client.7FF9B3B921C6                     <-------- if jump taken, colorize icon if ability learnt
            $+29B            | 6644:3935 E1B47D02       | cmp word ptr ds:[7FF9B636D654],r14w
            ...
            $+3DE            | 49:8BCC                  | mov rcx,r12                                | 49 8B CC FF ?? ?? 84 C0 75 ?? 44
            $+3E1            | FF50 58                  | call qword ptr ds:[rax+58]                 <-------- team check
            $+3E4            | 84C0                     | test al,al
            $+3E6            | 75 68                    | jne client.7FF9B3B92320                    <-------- if jump not taken, show level
            $+3E8            | 44:8BBF B0050000         | mov r15d,dword ptr ds:[rdi+5B0]
            $+3EF            | 44:89BC24 70010000       | mov dword ptr ss:[rsp+170],r15d
            $+3F7            | 45:85FF                  | test r15d,r15d
            $+3FA            | 79 26                    | jns client.7FF9B3B922F2
            $+3FC            | 4C:39AF 38050000         | cmp qword ptr ds:[rdi+538],r13

                replacement:
                $+297            | 84C0                     | test al,al
                $+299            | EB 5B                    | jmp client.7FF9B3B921C6                     <-------- always jump(colorize learnt)
                $+29B            | 6644:3935 E1B47D02       | cmp word ptr ds:[7FF9B636D654],r14w
                ...
                $+3E1            | FF50 58                  | call qword ptr ds:[rax+58]
                $+3E4            | 84C0                     | test al,al
                $+3E6            | 90                       | nop                                         <-------- never jump(show level)
                $+3E7            | 90                       | nop
                $+3E8            | 44:8BBF B0050000         | mov r15d,dword ptr ds:[rdi+5B0]

    (client.dll: xrefs "mana_cost" "health_cost" "gold_cost" one after another in that sequence)
        40 0F 9F ?? 41 80 BE(@ $+124)   client.dll
            $ ==>            | 48:895C24 08             | mov qword ptr ss:[rsp+8],rbx
            $+5              | 48:896C24 10             | mov qword ptr ss:[rsp+10],rbp
            $+A              | 48:897424 18             | mov qword ptr ss:[rsp+18],rsi
            $+F              | 48:897C24 20             | mov qword ptr ss:[rsp+20],rdi
            $+14             | 41:54                    | push r12
            $+16             | 41:56                    | push r14
            $+18             | 41:57                    | push r15
            $+1A             | 48:83EC 40               | sub rsp,40
            ...
            $+124            | 40:0F9FC6                | setg sil                                        | 40 0F 9F ?? 41 80 BE
            $+128            | 41:80BE C3030000 04      | cmp byte ptr ds:[r14+3C3],4
            $+130            | 74 19                    | je client.7FF9B3B8C88B
            $+132            | 49:8D8E 200A0000         | lea rcx,qword ptr ds:[r14+A20]
            $+139            | 48:8B01                  | mov rax,qword ptr ds:[rcx]
            $+13C            | FF50 58                  | call qword ptr ds:[rax+58]                      <-------- team check
            $+13F            | 84C0                     | test al,al
            $+141            | 74 08                    | je client.7FF9B3B8C88B                          <-------- if jump taken, show manacost
            $+143            | 33FF                     | xor edi,edi
            $+145            | 45:33FF                  | xor r15d,r15d
             
                replacement:
                $+13C            | FF50 58                  | call qword ptr ds:[rax+58]
                $+13F            | 84C0                     | test al,al
                $+141            | EB 08                    | jmp client.7FF9B3B8C88B                     <-------- always jump(show manacost)
                $+143            | 33FF                     | xor edi,edi

display hidden buffs/debuffs
    (client.dll: xrefs "stack_count" "file://{{images}}/spellicons/empty.png")
        48 8B CB FF 90 ?? ?? ?? ?? 84 C0 74 ?? 48 8B ?? 48 8B ?? FF 90 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 41 BF(@ $+A6)    client.dll
            $ ==>            | 40:55                    | push rbp
            $+2              | 53                       | push rbx
            $+3              | 56                       | push rsi
            $+4              | 57                       | push rdi
            $+5              | 41:55                    | push r13
            $+7              | 41:56                    | push r14
            $+9              | 41:57                    | push r15
            $+B              | 48:8DAC24 60FEFFFF       | lea rbp,qword ptr ss:[rsp-1A0]
            ...
            $+A6             | 48:8BCB                  | mov rcx,rbx                                      | 48 8B CB FF 90 ?? ?? ?? ?? 84 C0 74 ?? 48 8B ?? 48 8B ?? FF 90 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 41 BF
            $+A9             | FF90 88000000            | call qword ptr ds:[rax+88]                       <-------- buff hidden check
            $+AF             | 84C0                     | test al,al
            $+B1             | 74 14                    | je client.7FF9B3B89FE7                           <-------- if jump taken, show buff(part 1)
            $+B3             | 48:8B03                  | mov rax,qword ptr ds:[rbx]
            $+B6             | 48:8BCB                  | mov rcx,rbx
            $+B9             | FF90 90000000            | call qword ptr ds:[rax+90]
            $+BF             | 84C0                     | test al,al
            $+C1             | 0F84 0B080000            | je client.7FF9B3B8A7F2
            $+C7             | 41:BF FFFF0000           | mov r15d,FFFF
            $+CD             | 4C:89A424 98020000       | mov qword ptr ss:[rsp+298],r12
            $+D5             | 0F29B424 80020000        | movaps xmmword ptr ss:[rsp+280],xmm6
            $+DD             | 0F29BC24 70020000        | movaps xmmword ptr ss:[rsp+270],xmm7
            $+E5             | 44:3877 30               | cmp byte ptr ds:[rdi+30],r14b
            $+E9             | 75 36                    | jne client.7FF9B3B8A041
            $+EB             | C647 30 01               | mov byte ptr ds:[rdi+30],1

                replacement:
                $+A9             | FF90 88000000            | call qword ptr ds:[rax+88]
                $+AF             | 84C0                     | test al,al
                $+B1             | EB 14                    | jmp client.7FF9B3B89FE7                      <-------- always jump(show buff(part 1))
                $+B3             | 48:8B03                  | mov rax,qword ptr ds:[rbx]


    (client.dll: xref "CDOTA_Hud_BuffList::Update")
        48 8B 10 48 8B C8 FF 92 ?? ?? ?? ?? 84 C0 74 ?? 48 8B 0D ?? ?? ?? ?? 83 B9(@ $+A3) client.dll
            $ ==>            | 48:895C24 10             | mov qword ptr ss:[rsp+10],rbx
            $+5              | 48:896C24 18             | mov qword ptr ss:[rsp+18],rbp
            $+A              | 56                       | push rsi
            $+B              | 57                       | push rdi
            $+C              | 41:54                    | push r12
            $+E              | 41:56                    | push r14
            $+10             | 41:57                    | push r15
            $+12             | 48:83EC 70               | sub rsp,70
            ...
            $+A3             | 48:8B10                  | mov rdx,qword ptr ds:[rax]                       | 48 8B 10 48 8B C8 FF 92 ?? ?? ?? ?? 84 C0 74 ?? 48 8B 0D ?? ?? ?? ?? 83 B9
            $+A6             | 48:8BC8                  | mov rcx,rax
            $+A9             | FF92 88000000            | call qword ptr ds:[rdx+88]                       <-------- buff hidden check
            $+AF             | 84C0                     | test al,al
            $+B1             | 74 28                    | je client.7FF9B3B8A97B                           <-------- if jump taken, show buff(part 2)
            $+B3             | 48:8B0D 16157102         | mov rcx,qword ptr ds:[7FF9B629BE70]
            $+BA             | 83B9 E4000000 12         | cmp dword ptr ds:[rcx+E4],12
             
                replacement:
                $+A9            | FF92 88000000            | call qword ptr ds:[rdx+88]
                $+AF            | 84C0                     | test al,al
                $+B1            | EB 28                    | jmp client.7FF9B3B8A97B                      <-------- always jump(show buff(part 2))
                $+B3            | 48:8B0D 16157102         | mov rcx,qword ptr ds:[7FF9B629BE70]
спасибо даже чето не подумал про это,добавлю как будет не лень)
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Посмотреть вложение 277328
просьба к автору этой темы сделать показ эффектов абилок санстрайка, и разгона бары, думаю это не столь сильно отличается от показа тпшки(по крайней мере в теории)
у санстрайка торрента и тд не прилетают партикли врагам с сервера(cl_particle_log_creates true в консоль для проверки). следовательно и рисовать нечего. партиклей просто тупо не создается предварительных, токо потом уже когда активируется санстрайк/торрент и тд прилетают партикли. а тиммейтам эти предварительные партикли прилетают и поэтому они рисуются. у врагов же их тупо нет(они не спрятаны, их вообще нету, следовательно и показывать нечего).
крашит то да, но вот сама функция работает. я просто юзаю все функции, а только после них ее и прога крашит. Все работает. От автора хотелось бы подсветку иллюзий
подсветка иллюзий обусловлена партиклей у баффа CDOTA_Modifier_Illusion(modifier_illusion)
C++:
CUtlVector< CDOTA_BuffParticle > m_iParticles(offset 0xa0, size 0x18, align 0x8)
(на картинке иллюзия вивера без партиклей в m_iParticles)
1717378419248.png
у врагов нет баффа(баффы с сервака приходят) modifier_illusion и как следствие партикли и как следствие не окрашивается.
микро-хпбар(полосочка простая как на скрине у иллюзий) контроллируется C_DOTA_BaseNPC::m_bHasClientSeenIllusionModifier(у врагов он 0 если неизвестно что это иллюзия(ну бывают всякие иллюзии террорблейда и тд у них известно)) + модифаерфункцией MODIFIER_PROPERTY_IS_ILLUSION(у врагов ее нет если неизвестно что это иллюзия). патчить чеки тут не вариант ибо они не проверяют на иллюзию а просто проверяют известно ли что это иллюзия(если пропатчить то все будет считаться иллюзией включая настоящих героев).
 
Сверху Снизу