aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-07-18 11:53:42 +0300
committerValentin Popov <valentin@popov.link>2026-07-18 11:53:42 +0300
commit2048b3695d9ed2f0c7a482fb7fd7ec9e09959434 (patch)
treed8acf841f29e170d2ba3a9f7a3044b9df3215cb2
parent36a17491793d0ca629da128616b9253e81857f3c (diff)
downloadfparkan-2048b3695d9ed2f0c7a482fb7fd7ec9e09959434.tar.xz
fparkan-2048b3695d9ed2f0c7a482fb7fd7ec9e09959434.zip
docs(evidence): locate current camera global
-rw-r--r--docs/tomes/08-evidence.md8
1 files changed, 8 insertions, 0 deletions
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, даже когда имя