diff options
| author | Valentin Popov <valentin@popov.link> | 2026-07-18 11:53:42 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-07-18 11:53:42 +0300 |
| commit | 2048b3695d9ed2f0c7a482fb7fd7ec9e09959434 (patch) | |
| tree | d8acf841f29e170d2ba3a9f7a3044b9df3215cb2 /docs | |
| parent | 36a17491793d0ca629da128616b9253e81857f3c (diff) | |
| download | fparkan-2048b3695d9ed2f0c7a482fb7fd7ec9e09959434.tar.xz fparkan-2048b3695d9ed2f0c7a482fb7fd7ec9e09959434.zip | |
docs(evidence): locate current camera global
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/tomes/08-evidence.md | 8 |
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, даже когда имя |
