Кратко
Чем эксперт обосновывает интерпретацию артефакта: чужими результатами или своим экспериментом. Главная мысль — документация вендора расходится с кодом по четырём разным причинам, каждая показана кейсом Windows: метки NTFS под reserved, «scoped» теневые копии, спецификация FAT, prefetch-файлы «OP-…pf». Метод — «из кода»: строки в бинарях, символы, декомпилятор, чёрный ящик. Доклад технический, без продукта; вопросов не было.
Главное
- Обосновать интерпретацию можно чужими результатами (статья, книга, документация) или своим экспериментом; повод — спор в Telegram-чатах год назад. Вендоры, в том числе Microsoft, «могут обманывать людей» — в кавычках, без злого умысла.
- Кейс 1 (NTFS): в документации на
$STANDARD_INFORMATIONи$FILE_NAMEвременные метки помечены как зарезервированные поля — вендор скрывает служебные структуры «от кривых ручек». - Кейс 2: при шифровании по сети через шары теневые копии уцелевают, но с Windows 8 вместо документов и истории браузера в них нули, хотя документация VSS обещает всё занятое пространство.
- Разгадка — scoped shadow copy: с Windows 8 пользовательские файлы исключаются (блок 16 КБ при кластере 4 КБ, поэтому часть данных уцелевает). Не задокументировано, но Microsoft объясняла это двум клиентам частными ответами.
- Механизм: copy-on-write, затем srtasks.exe проходит MFT и по расширениям исключает эти файлы из битмапа; на серверных Windows скоупинга нет.
- Кейс 3 (FAT): спецификация Microsoft для EFI System Partition написана по коду ветки 95/98/Millennium; драйвер NT/XP/10/11 ей не следует, драйверы Linux правят логику проверки на ошибки.
- Кейс 4 (Prefetch): о файлах «OP-…-….pf» четыре гипотезы, три — «отсебятина»; четвёртая идёт от Process Hacker на GitHub, где константа 5 из старого Windows SDK названа PrefetcherBootControl — отсюда версия про загрузку.
- Верный ответ давно есть в блоге Microsoft про ASP.NET: файл порождают вызовы OperationStart/OperationEnd («Operation Based Prefetching»), но сказано вскользь.
- Путь из кода: строки шаблона имени в System32, отсев по символам, единственное вхождение — ntoskrnl.exe (PfSnBeginScenario, PfSnEndProcessTrace, PfSnOperationProcess из PfSnSetPrefetcherInformation при PrefetcherInformationClass = 5).
- Чёрный ящик на Python: к загрузке ОС файлы отношения не имеют; трасса идёт от OperationStart до OperationEnd, в процессе одновременно одна, порог — 32 запроса ввода-вывода, page fault (см. ниже).
Инструменты, артефакты, технологии
- Документация Microsoft, NTFS (
$STANDARD_INFORMATION,$FILE_NAME) — критикуется — метки под reserved, VSS не по коду, FAT по коду Windows 95. - VSS, scoped shadow copy, srtasks.exe, MFT, hex-редактор, история Chrome — механизм и демонстрация — 16 КБ против 4 КБ.
- Спецификация FAT, EFI System Partition — критикуется — драйверы Linux правят проверку на ошибки.
- Prefetch «OP-…-….pf», OperationStart/OperationEnd, Python — артефакт, API и проверка чёрным ящиком.
- ntoskrnl.exe, символы, System32, декомпилятор — маршрут разбора — PfSnBeginScenario, PfSnEndProcessTrace, PfSnSetPrefetcherInformation, PfSnOperationProcess, PrefetcherInformationClass = 5; декомпилятор не назван.
- Process Hacker (GitHub), блог Microsoft про ASP.NET — источники — устаревшая константа PrefetcherBootControl; верный ответ «вскользь», пост не назван.
Правовой и организационный контекст
Законы, статьи, ведомства и методики не звучали; терминология — «судебный эксперт», «интерпретация артефактов, следов, аномалий», «экспертный эксперимент». Организационный сюжет один: Microsoft объясняла scoped shadow copy как минимум двум клиентам частными ответами, в публичную документацию это не попало.
Вопросы из зала
Вопросов не было. Реплика «Зато было по-честному. Ни разу не сказал слово «бизнес»» (атрибуция не установлена), затем модератор: «Мне кажется, ты опять сломал мне аудиторию».
Позиция спикера
Слепое доверие документации — проблема, а не решение: обосновывать надо своим экспериментом, источник истины — код. Скепсис ко всем чужим текстам, включая блоги Microsoft. Ограничения называет сам: пример с NTFS экстремальный, исключение из копий работает «со звёздочкой», три из четырёх гипотез про prefetch — «отсебятина». Тон — лекция с самоиронией, без продаж.
Цитаты
- «…могут обманывать людей. Обманывать, естественно, в кавычках.»
- «Вендор защищает служебные структуры от кривых ручек так называемых.»
- «Но давайте попытаемся пойти самым сложным путем именно из кода.»
- «процесс загрузки вообще никаким боком здесь не стоит рядом»