- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 347
- Реакции
- 7
Парни, копаюсь в реверсе аудио-модулей TF2. Наткнулся на интересный сниппет в старом сурсе под L4D2, где через Byte_Manager патчится vaudio_speex.dll для полного отключения реплик персонажей.
Суть метода простая — прямой патч памяти по смещению в загруженной библиотеке:
В TF2 всё ожидаемо сложнее — структура vaudio_speex.dll отличается, и прямые адреса из L4D2 тут не работают. Пытался накидать сигнатуру под хук, но нашел всего 3 байта совпадения в начале, что явно не вариант для стабильной работы, рискуем схватить крэш клиента при обновлении или патче.
Кто ковырял аудио-движок Valve в TF2, есть идеи, как корректно деанонимизировать нужные функции? Возможно, стоит цепляться не за DLL, а искать вызовы через vtable или чекать через IDA Pro функции, отвечающие за обработку звукового потока.
Не хотелось бы перелопачивать весь движок ради отключения раздражающего спама войслайнов, но стандартные конфиги не дают такого контроля.
Кто-то пробовал патчить аудио-потоки в TF2 без крашей? Делитесь соображениями.
Суть метода простая — прямой патч памяти по смещению в загруженной библиотеке:
Код:
Byte_Manager::Set_Bytes(0, (void*)((unsigned __int32)LoadLibraryW(L"vaudio_speex.dll") + 9440), 1, 195);
В TF2 всё ожидаемо сложнее — структура vaudio_speex.dll отличается, и прямые адреса из L4D2 тут не работают. Пытался накидать сигнатуру под хук, но нашел всего 3 байта совпадения в начале, что явно не вариант для стабильной работы, рискуем схватить крэш клиента при обновлении или патче.
Кто ковырял аудио-движок Valve в TF2, есть идеи, как корректно деанонимизировать нужные функции? Возможно, стоит цепляться не за DLL, а искать вызовы через vtable или чекать через IDA Pro функции, отвечающие за обработку звукового потока.
Не хотелось бы перелопачивать весь движок ради отключения раздражающего спама войслайнов, но стандартные конфиги не дают такого контроля.
Кто-то пробовал патчить аудио-потоки в TF2 без крашей? Делитесь соображениями.