Начинающий
блин беда с этим дебаггером у меня ничего не срабатывает, вроде на каждую инструкцию по отдельности бп ставил, но это моя проблема, спасибо))1)
адрес функции вбе это впринципе да, догадка построенная на во-первых визуальном подтверждении(я на скрине мышкой навел на адрес как видишь по этому адресу находятся байты инструкций а не просто какая-то билиберда) + поставил брейкпоинт на эту функцию(функция которая находится по третьему указателю) и посмотрел что действительно вызывается когда изменяется видимость(ну пошел под вышку вражескую, эта вышка тебя увидела - функция вызвалась) + символ в дилибе есть RegisterNetvarChangeCallback или как его там. и он принимает указатель на функцию параметром. так что среди параметров должен быть указатель на функцию. первый указатель - на строку, второй тоже на строку(там сбоку не видно но там строка вроде "C_DOTA_BaseNPC"), третий - как раз на байты инструкций, а это и есть функция.
2)
это две инструкции
mov rax, qword ptr: [абсолютный 8 байт адрес]//48 a1 <8 bytes>
jmp rax//ff e0
но закодированные в байтах.
mov обычно бывает на 4 байта, то есть относительный адрес(к текущему нужно прибавить относительный адрес чтобы получить абсолютный адрес), но мне его не хватило поэтому юзаю mov на 8 байт абсолютный, конкретно данные байты 48 a1 <8 bytes> и ff e0 нашел гдето в гугле. если ты через LoadLibrary инжектишь то тебе mov на 4 байта хватит(читай выше в этом треде ответ про "PE регион"), я же мануал мапом инжекчу, то есть дллка моя сидит в куче, поэтому от кучи до PE региона в 4 байта не допрыгнуть и поэтому я юзаю 8 байт. чтобы получить байты на 4 байтовый mov rax гугли либо ищи где-нибудь в самой доте, mov встречается на каждом шагу