Таблица переехала
https://githomelab.ru/EreTIk/ioam
Необходимые маски доступа на объект файла при вызове NtQueryInformationFile, NtSetInformationFile, NtQueryVolumeInformationFile и NtSetVolumeInformationFile определяются в зависимости от класса информации, который указан при вызове этих функций. Поэтому я сгенерировал для себя (может кому-нибудь тоже будет полезно) таблицы соответствий класса информации и требуемых масок доступа. Для сборки был написан простенький скрипт ioam.py, который использует pykd.
Updated (01.10.2018)
Скрипт снова переработан и вместе с файлами-источниками информации (коллекцией ntoskrnl.exe) выложен на GitLab. Фактически этот мини-проект (вместе со сгенерирвоанной таблицей) переместился, новый адрес: https://githomelab.ru/EreTIk/ioam.
Ключевые изменения:
- Сразу генериуется GitLab Flavored Markdown (раньше формировалась заготовка HTML-файла)
- Таблицы "разрезаны" по 16 строк (для увеличения удобства просмотра и скроллинга)
- В набор исходных файлов добавлены ядра с номерами сборок 17134 (версия 1803) и 17763 (версия 1809)
Updated (01.11.2017)
Скрипт был сильно переработан. Первым изменением стало то, что он стал обрабатывать не один файл ядра, а директорию с некоторой коллекцией файлов. Соответственно, таблица выросла, и в ней отражаются изменения для разных версий ОС. Сама коллекция была выбрана не из всех доступных мне ядер, а только релизы и только те, что отличаются между собой. Например оказалось, что service pack'и Windows XP, Vist и 7 не отличаются между собой, поэтому в готовую таблицу попали ядра без service pack'ов.
Вторым изменением стало то, что наряду с массивом масок доступа скрипт стал обрабатывать и массив минимального размера буфера. Это позволило убрать из таблицы неподдерживаемые значения классов (для которых функция возвращает STATUS_INVALID_INFO_CLASS). Иконка в таблице означает, что запрос перестал поддерживаться.
Результат работы скрипта:
ΞρεΤΙκ