Каков процесс выполнения программ Windows в Windows 10?
ОС: Windows 10 LTSB (64 бит)
В настоящее время я работаю над программой белого списка.
вот мой вопрос
- У меня есть notepad.exe в c:\Windows\System32\notepad.exe
его хеш-значение будет [9cd1c3d00ae15068...74a]
У меня есть другой блокнот в c:\Windows\WinSxS\amd64...
- его значение хеша будет [da0acee8f60a460...10a]
так что, в основном, это разные программы в моем белом списке. Но в любом случае, я добавил их обоих в свой белый список.
Я попытался отредактировать командный файл, который вызвал выполнение notepad.exe. Но моя программа белого списка блокирует выполнение notepad.exe, потому что notepad.exe был из c:\windows\system32\notepad.exe, но имел значение хеша [da0acee8f60a460...10a].
Но если я снова проверю хэш-значение notepad.exe в System32, оно останется таким же, как и раньше, то есть [9cd1c3d00ae15068...74a].
похоже, что notepad.exe из winSxS был скопирован в system32 при его запуске. Это как это работает для системных программ?
кстати, это не произошло для windows7 в 32-битной
1 ответ
Я обнаружил, что это не файлы WinSxS, которые создают эту путаницу. Это был sysWow64.
в основном, windows10 предоставляет каталог sysWow64 для эмуляции 64-битных программ как 32-битных. Windows10 автоматически перенаправляет доступ к system32 к sysWow64.
Поэтому, когда я вычислял значение хеша для notepad.exe в System32, ОС автоматически перенаправляла меня к notepad.exe в sysWow64. Следовательно, значение хеша в моем списке записей [9cd1c3d00ae15068...74a], но реальное значение хеша этого было [da0acee8f60a460...10a]
Надеюсь, что это может помочь всем, кто сталкивается с подобными проблемами.