From 2048b3695d9ed2f0c7a482fb7fd7ec9e09959434 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2026 12:53:42 +0400 Subject: [PATCH] docs(evidence): locate current camera global --- docs/tomes/08-evidence.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/tomes/08-evidence.md b/docs/tomes/08-evidence.md index 7c35ab4..453e793 100644 --- a/docs/tomes/08-evidence.md +++ b/docs/tomes/08-evidence.md @@ -254,6 +254,14 @@ Terrain object. Следовательно, selector `18`, slot `+12` и global должны оставаться именованными evidence boundary до dynamic capture; считать `stdGetCurrentCamera2` getter-ом переданной camera было бы ошибкой. +Локальная IDA-база уточняет адреса этой связи: `stdGetCurrentCamera2` — это +шестибайтный getter по RVA `0x4FD80`, который возвращает `dword` по RVA +`0x7355C`. Единственный найденный initializer этого global — функция Terrain +по RVA `0x4D4D0`: она запрашивает selector `8` у своего `this` и сохраняет +полученный interface pointer. Это доказывает адрес хранения и путь заполнения, +но не разрешает трактовать pointer как конкретный layout камеры либо читать его +как runtime evidence без доступа к процессу на том же уровне привилегий. + ### Vtable и interface negotiation Вызовы вида `object->vfunc(offset)` доказывают порядок slots, даже когда имя