Не уверен в актуальности BigFix - файлы x64

Я использую BigFix в корпоративной среде и заметил, что недавний раунд патчей Microsoft на 2016 год не прошел на небольшой группе ресурсов. Мне удалось обойти это, создав фикслеты Custom Copy Fixlets с измененной релевантностью, однако релевантность, которую мне приходилось использовать, не всегда была согласованной, даже несмотря на то, что большинство файлов находились в C: \ Windows \ Sytem32 .

Например: MS16-031 - критерии, которые мои платформа сканирования, которую ищет, основана на номере версии для Ntdll.dll . Я создаю настраиваемый Fixlet с релевантностью:

((версия x64-файла "C: \ Windows \ System32 \ Ntdll.dll") в виде строки)

Это отлично сработало, так как я ранее создавал анализ BigFix. ищет Ntdll.dll с использованием релевантности:

если (существует x64-файл "C: \ Windows \ System32 \ Ntdll.dll") then ((версия x64-файла "C: \ Windows \ System32 \ Ntdll.dll ") в виде строки) иначе" Не существует "

Я смог подтвердить, что релевантность для Custom Fixlet была примерно с анализом. По какой-то причине это не зеркальное отображение этих двух, но оно очень близко, и в списке Custom Fixlet есть все машины, отмеченные в результатах сканирования, так что я доволен этим.

Проблема возникает здесь: Для некоторые файлы в C: \ Windows \ System32 , мне нужно использовать совершенно другой синтаксис, чтобы получить правильную информацию о номере версии, которую я ищу, на основе результатов сканирования. То есть я могу использовать метод, указанный выше, но информация о версии, которую он предоставит, даже не близка к тому, что ищет сканер. Если бы я использовал вышеуказанный метод, предполагая, что сканер ищет что-то вроде " файл (команда) может привести к разным результатам в зависимости от пути для 32-битных систем и 64-битных систем, однако я подумал, что это применимо только к файлам, расположенным в C: \ Program Files и C: \ Program Files (x86) ? Разве это не так? Если да, то где находится 64-разрядная версия System32 и почему результаты между ними так сильно различаются?

2
задан 5 June 2016 в 00:57
1 ответ

Просто чтобы прояснить, это вопрос о релевантности BigFix, а не BigFix ActionScript.

Я скажу, что хотя релевантность BigFix имеет небольшую кривую обучения и иногда затрудняет понимание источника сложности, проблемы, с которыми вы сталкиваетесь, в большей степени связаны со сложностью того, как файлы могут содержать множество различных типов информации о версии, а также с тем, как работает перенаправление WindowsOnWindows от Microsoft.


Простая причина, по которой информация о версии файла может отличаться в зависимости от того, откуда вы ее прочитали, заключается в том, что существует несколько мест для размещения версий файлов, и они могут точно совпадать, или же они могут быть разными. Это зависит от создателя файла и от того, как они хотят передать значение информации о версии.

Значение версий файлов "mfds.dll" читается в одном месте, а значение значения "FileVersion" блоков версий файлов "mfds.dll" читается в другом месте.

Смотрите здесь:

Q: (values "FileVersion" of version blocks of it, (it as string) of versions of it) of files "mfds.dll" of (system folders)
A: 10.0.14342.1000 (rs1_release.160506-1708), 10.0.14342.1000
T: 3.677 ms
I: plural ( string, string )

Не думаю, что различия, которые вы видите, связаны с различиями между файлом и x64 файлом, но это важно понимать по многим причинам.

Для целей этого вопроса предположим, что речь идет о 64-разрядном Windows-компьютере, и вы должны предположить, что это применимо к Windows Vista или более поздней версии, но может также применяться и к Windows XP 64-разрядной версии.

Поскольку клиент BigFix - это 32-битный процесс, все чтения файлов, которые будут сделаны в специальные x64-битные места, на самом деле перенаправляются Windows в 32-битное место.

В чем разница между файлами и x64 файлами в релевантности BigFix? В случае с большинством файлов, использование либо файлов, либо x64 файлов фактически прочитает один и тот же файл. Это связано с тем, что использование x64 файлов говорит BigFix читать файл с отключенной переадресацией WindowsOnWindows(WoW), но эта переадресация применяется только к чтению определенных путей. Одним из примеров является Program Files, а другим - System32, в то время как на что-то вроде C:\Windows\Temp перенаправление WoW вообще не влияет, поэтому любой файл, прочитанный по адресу C:\Windows\Temp работает одинаково независимо от его местоположения.

  • 32-битного: C:\Program Файлы (x86)
  • 64-битное местоположение: C:\Program Файлы
  • 32-битное местоположение: C:\Windows\SysWOW64
  • 64bit location: C:\Windows\System32
  • 64bit location: C:\Windows\sysnative
    • специальный поддельный путь, который работает без отключения перенаправления

Мы благодарим Microsoft за то, что расположение 64-битной системы имеет 32 в названии, в то время как расположение 32-битной системы имеет 64 в названии. Это, безусловно, крайне распространенный источник недоразумений.

Используйте эту значимость, чтобы увидеть, что на самом деле на системе есть 2 копии mfds.dll.

(имя, размер) файлов "mfds. dll" (системные папки; системные x64 папки)

Это значение считывается с обоих мест, так как (системные папки; системные x64 папки) говорит BigFix читать БОТУ папку C:\Windows\SysWOW64, а также папку C:\Windows\System32.

С ума сойти? Сбиваешь с толку? Просто подождите, становится все страннее.

Запустите следующую релевантность в отладчике фикслета: патнамы файлов "mfds.dll" (системные папки; системные папки x64)

Q: pathnames of files "mfds.dll" of (system folders; system x64 folders)
A: C:\WINDOWS\system32\mfds.dll
A: C:\WINDOWS\system32\mfds.dll
T: 1.312 ms
I: plural string

Обратите внимание, что патнамы обоих файлов одни и те же, но это не один и тот же файл!!!

Вот как работает WindowsOnWindows Redirection. Она лжет 32-битному процессу и говорит ему, что читает файл из папки C:\Windows\System32, хотя читает его с C: \Windows\SysWOW64 вместо этого в случае использования системных папок , BigFix правильно сообщает путь как C:\WINDOWS\system32\mfds. dll. Затем в случае релевантности системных x64 папок BigFix (32-битный процесс) сообщает Windows, что хочет прочитать местоположение C:\Windows\System32 с отключенным перенаправлением, и в этом случае фактически считывает файл, находящийся по адресу C:\WINDOWS\system32\mfds. dll и правильно сообщают путь как таковой.

Хочу еще раз повторить, это никак не связано с BigFix и все, что связано с реализацией компанией Microsoft Windows 64bit с Windows 32bit redirection.


Для будущих вопросов по BigFix я бы настоятельно рекомендовал очень активные форумы: https://forum.bigfix.com/

1
ответ дан 3 December 2019 в 12:41

Теги

Похожие вопросы