Как regedit.exe создает пустые двоичные значения - PullRequest
0 голосов
/ 28 августа 2010

Я открыл regedit и создал пустое двоичное значение, отслеживая его с помощью ProcessMonitor.exe.Я настроил фильтр так, чтобы он включал в себя все, что упоминало путь к реестру ключа пустого двоичного значения, и исключал все остальное.При создании нового двоичного значения оно создает безымянное, а затем, когда я переименовываю его во что-то другое, оно удаляет безымянное.Тем не менее, он ничего не устанавливает с новым именем, он просто запрашивает значение, которое возвращает ошибку, пока я не закрою ключ в regedit, затем снова открою его и теперь успешно запрашивает пустой REG_BINARY.нет смысла видеть какие-либо вызовы с установленным значением, и я посмотрел на msdn, он не говорит, что запрос несуществующих значений создает их.Как это делает новое значение?

1 Ответ

0 голосов
/ 28 августа 2010

Делая это в XP, вы также можете получить выходные данные RegMon, в которых указан SetValue:

ProcMon:

"Sequence","Time of Day","Process Name","PID","Operation","Path","Result","Detail","Event Class"
"8456","20:15:47,6493609","regedit.exe","420","RegQueryValue","HKCU\Software\test\New Value #1","NAME NOT FOUND","Length: 144","Registry"
"8559","20:15:51,2066619","regedit.exe","420","RegQueryValue","HKCU\Software\test\foo","NAME NOT FOUND","Length: 144","Registry"
"8560","20:15:51,2066761","regedit.exe","420","RegQueryValue","HKCU\Software\test\New Value #1","SUCCESS","Type: REG_BINARY, Length: 0","Registry"
"8561","20:15:51,2066864","regedit.exe","420","RegQueryValue","HKCU\Software\test\New Value #1","SUCCESS","Type: REG_BINARY, Length: 0","Registry"
"8562","20:15:51,2075572","regedit.exe","420","RegDeleteValue","HKCU\Software\test\New Value #1","SUCCESS","","Registry"
"8618","20:15:52,9198131","regedit.exe","420","RegCloseKey","HKCU\Software\test","SUCCESS","","Registry"

RegMon:

1   2.38380957  regedit.exe:420 QueryValue  HKCU\Software\test\New Value #1 NOT FOUND       
2   2.38436174  regedit.exe:420 SetValue    HKCU\Software\test\New Value #1 SUCCESS     
3   5.36779499  regedit.exe:420 QueryValue  HKCU\Software\test\foo  NOT FOUND       
4   5.36780643  regedit.exe:420 QueryValue  HKCU\Software\test\New Value #1 SUCCESS     
5   5.36781597  regedit.exe:420 QueryValue  HKCU\Software\test\New Value #1 SUCCESS     
6   5.36884880  regedit.exe:420 SetValue    HKCU\Software\test\foo  SUCCESS     
7   5.36890793  regedit.exe:420 DeleteValueKey  HKCU\Software\test\New Value #1 SUCCESS     
8   9.04430676  regedit.exe:420 CloseKey    HKCU\Software\test  SUCCESS 

Вывод regmon для меня выглядит как операция переименования (QV, QVx2, SV, DV). Может быть, regmon использует перехват, а procmon использует документированный api монитора реестра (или, возможно, ошибку procmon?)

Я протестировал как последнюю, так и более старую версию на procmon; v1.37 (более старые версии не имеют большой задержки ETW при включении / выключении мониторинга в XP)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...