24a: perf_event breakpoints definitive — wine reserves HW BP slots (ENOSPC on wine threads while self/cross-process native opens succeed), closing hardware-trap route and explaining all prior ptrace-DR silence; FFT-conv engine object identified at ctx+0x540530 (inline cfg {2,4096}/{16384,8192}, member vectors +0xb8..+0x130, methods dc30/fe00/dd30) — its process method is the kernel consumer candidate

This commit is contained in:
2026-08-24 02:43:04 +03:00
parent 8acbf6612e
commit f483fe398d
2 changed files with 241 additions and 0 deletions
+24
View File
@@ -2502,3 +2502,27 @@ DR/GetThreadContext, wow64-переключения, либо события т
аномалии доставки (например, трассировать через PTRACE_SEIZE опции или
perf_event_open с breakpoint типом HW).
3. RT_FIRCONV=1 + контрольные числа dual + гейт корпуса.
## ============ UPDATE 2026-08-23n (24a): ПЕРФ-ДИКТОР — WINE ДЕРЖИТ СЛОТЫ; ДВИЖОК ОПОЗНАН ============
1. perf_event_open (PERF_TYPE_BREAKPOINT) на слово кернела: собственные треды и
ЧУЖИЕ same-uid процессы открываются (fd>0), а wine-треды дают ENOSPC ⇒
**wine резервирует аппаратные BP-слоты** под эмуляцию Windows-DR. Это же
объясняет глобальную тишину ptrace-DR: ядро хранит значения, но в кремний
их программировать нечем. Маршрут аппаратных ловушек внутри wine ЗАКРЫТ
окончательно (23h–24a). Скрипт scripts/perfbp.py готов для нативных целей.
2. Опознан объект conv-движка: **ctx+0x540530**, инлайн-конфиг {2,4096},
{16384,8192}, {2,257}; члены-векторы +0xb8..+0x130; методы FUN_18052dc30
(config), FUN_18052fe00 (resize), FUN_18052dd30 (dtor). Его process-метод —
следующий кандидат на «потребителя кернела» (ищется рядом по декомпу/вызовам
с arg=ctx+0x540530 из аудио-клея).
3. INT3-маршрут остаётся единственным динамическим (слоты не нужны): требует
дисциплины fnwatch4 (INTERRUPT→wait→arm→CONT всем тредам) + контроля
render_fresh в каждом прогоне (флак ~50%).
### NEXT
1. Найти process-метод движка 0x540530: перечислить функции, получающие
ctx+0x540530 (grep decomp), восстановить vtbl объекта из дампа памяти
([ctx+0x540530]-объект начинается с указателя? проверить офлайн из s1.bin),
декодировать метод → источник ×1.805.
2. INT3-ловушка на найденный метод + на design-тела в param-окно (рендер-
свежесть обязательна в логе).
3. RT_FIRCONV=1 после декода масштаба; контрольные числа dual; гейт корпуса.