Вопрос Как найти эту сигу

героин
Пользователь
Статус
Оффлайн
Регистрация
13 Сен 2019
Сообщения
301
Реакции[?]
75
Поинты[?]
1K
юзаю d2c ,1708688399594.png ищу по хрефу "cache_%u_%u.soc" , но бля ядаун или да но ниче норм найти не могу1708688406806.png
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
672
Реакции[?]
106
Поинты[?]
69K
героин
Пользователь
Статус
Оффлайн
Регистрация
13 Сен 2019
Сообщения
301
Реакции[?]
75
Поинты[?]
1K
1708700306187.png
а на это сигнатуру как найти? я пытался чета, нихуя не нашел - крашит
 
Новичок
Статус
Оффлайн
Регистрация
15 Июл 2019
Сообщения
1
Реакции[?]
1
Поинты[?]
1K
Посмотреть вложение 271235
And how to find a signature on this? I tried to chet, nihuya didn't find it - it paints
75 05 45 84 E4

xref: Blocking Oculus SDK

C++:
if (auto enableVACHooks = Memory::Scan("75 05 45 84 E4", "gameoverlayrenderer64.dll"))
        enableVACHooks
       . Offset(7)
       . GetAbsoluteAddress(2, 7)
       . Set(false);
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
C++:
template<typename T = Address>
    T GetAbsoluteAddress(ptrdiff_t addrOffset, std::optional<uint32_t> opcodeSize = std::nullopt) const {
        return T(ptr + *(int*)(ptr + addrOffset) + opcodeSize.value_or(addrOffset + sizeof(uint32_t)));
    }
ты сигу находишь вот тут(00007FFFFC374D24 допустим)

потом отсюда GetAbsoluteAddress(1), т.е. прибавляешь 1 байт(скипаешь E8), считываешь 4 байта(27 45 27 FF, если перевернуть(литтл ендиан) то FF 27 45 27, т.е. FF274527 или -14203609(-0xD8BAD9) в комплементе двойки) и прибавляешь эту фигню к адресу где инструкция была(00007FFFFC374D24), а потом прибавляешь еще 5(размер инструкции. 1 байт сам вызов E8 и четыре байта относительный адрес итого 5 байт)
0x00007FFFFC374D24 - 0xD8BAD9 + 5 = 0x00007FFFFB5E9250
то есть мы получили 0x00007FFFFB5E9250 - вот оно

тут нам нужна желтая фигня в []. она находится в инструкции которая находится на $+8, т.е. 0x00007FFFFB5E9258.
отсюда нам еще нужно скипнуть три байта(48 8B 1D, это сам mov rbx, ...) и считать 4 байта(C9 F9 0B 04 -> 04 0B F9 C9 = 0x040BF9C9) и потом прибавить это к нашему адресу 0x00007FFFFB5E9258 и потом еще прибавить размер инструкции(7. 3 байта сам mov - 48 8B 1D, и еще 4 байта относительный адрес)
0x00007FFFFB5E9258 + 0x040BF9C9 + 7 = 00007FFFFF6A8C28
кароче там у тебя не Offset(0xE) а Offset(0x8)
 
Последнее редактирование:
героин
Пользователь
Статус
Оффлайн
Регистрация
13 Сен 2019
Сообщения
301
Реакции[?]
75
Поинты[?]
1K
C++:
template<typename T = Address>
    T GetAbsoluteAddress(ptrdiff_t addrOffset, std::optional<uint32_t> opcodeSize = std::nullopt) const {
        return T(ptr + *(int*)(ptr + addrOffset) + opcodeSize.value_or(addrOffset + sizeof(uint32_t)));
    }
ты сигу находишь вот тут(00007FFFFC374D24 допустим)

потом отсюда GetAbsoluteAddress(1), т.е. прибавляешь 1 байт(скипаешь E8), считываешь 4 байта(27 45 27 FF, если перевернуть(литтл ендиан) то FF 27 45 27, т.е. FF274527 или -14203609(-0xD8BAD9) в комплементе двойки) и прибавляешь эту фигню к адресу где инструкция была(00007FFFFC374D24), а потом прибавляешь еще 5(размер инструкции. 1 байт сам вызов E8 и четыре байта относительный адрес итого 5 байт)
0x00007FFFFC374D24 - 0xD8BAD9 + 5 = 0x00007FFFFB5E9250
то есть мы получили 0x00007FFFFB5E9250 - вот оно

тут нам нужна желтая фигня в []. она находится в инструкции которая находится на $+8, т.е. 0x00007FFFFB5E9258.
отсюда нам еще нужно скипнуть три байта(48 8B 1D, это сам mov rbx, ...) и считать 4 байта(C9 А9 0B 04 -> 04 0B A9 C9 = 0x040BA9C9) и потом прибавить это к нашему адресу 0x00007FFFFB5E9258 и потом еще прибавить размер инструкции(7. 3 байта сам mov - 48 8B 1D, и еще 4 байта относительный адрес)
0x00007FFFFB5E9258 + 0x040BF9C9 + 7 = 00007FFFFF6A8C28
кароче там у тебя не Offset(0xE) а Offset(0x8)
ебаный рот
спасибо за объяснение
 
Сверху Снизу