Я пытался хукать через frida к opengl/webgl чтобы извлекать позиции сущностей (игроков) из графического пайплайна игры
Что хукали:
glUniformMatrix4fv
glUseProgram
glBufferSubData, glBufferData, glMapBufferRange, glBindBuffer, glBindBufferBase, glBindBufferRange, glUnmapBuffer для анализа UBO, persistentBlock, буфера 9, terrain/static и других потенциальных источников позиций.
wglSwapBuffers
Какие ответы и результаты получал:
persistentBlock и buf=9 всегда содержали terrain/static а не реальные позиции игроков
glUniformMatrix4fv с prog=198 оказался единственным надёжным источником реальных позиций игроков
Все попытки декодировать позиции из других буферов (persistentBlock, buf=9, UBO) не дали результата, там были только статические или невалидные данные
В логах фиксировались только terrain/static, а не игроки
После фильтрации по prog=198 и анализу glUniformMatrix4fv удалось получать реальные позиции игроков
Проблемы:
Большинство буферов (persistentBlock, buf=9) не содержат динамических позиций игроков
Попытки читать большие объёмы GPU-данных приводили к лагам и просадкам FPS
Overlay работал только если позиции приходили из glUniformMatrix4fv с нужной программой, в остальных случаях ESP не показывал игроков
Подскажите пожалуйста что еще сделать можно? Как эти позиции получить