NAME NOT FOUND отображается встолбце результатов Process Monitor , поэтому я собирался создать значение самостоятельно. Но я не знаю,пытались ли получить доступк двоичному , строковому или, скажем, DWORD . Кто-нибудь знает, есть ли способ выяснить это в случае RegQueryValue ?
windows-10
windows-registry
process
analysis
Starhowl
источник
источник
Ответы:
Не совсем, но в некоторых случаях мы можем сделать правильное предположение.
RegQueryValue
Операция в Process Monitor , по существу соответствуетRegQueryValueEx
функции при вызове. У этой функции есть параметр с именемlpType
, но это ...Акцент мой. Это делается для того, чтобы приложениям можно было узнать тип полученного ими значения. (
RegQueryValueEx
не заботится о типах данных, он просто передает байты. Задача программы - интерпретировать байты.) Даже если программа по какой-то причине указала тип, Process Monitor не сообщает значение при вводе функции, только при успешный выход.Это, однако, сообщает «длина». По непонятным причинам это не то
lpcbData
значение, которое приложение предоставляет для определения размера буфера для результата - в 64-битной системе нужно вычесть 12, чтобы получить оригинал. Значение DWord занимает 4 байта, значение QWord занимает 8 байтов, а все остальные виды имеют переменную длину. (Программы могут также вообще не подготавливать память перед вызовом функции, просто чтобы проверить, существует ли значение.) Поэтому, если «длина», сообщаемая Process Monitor, равна 16, программа ожидает 4-байтовый фрагмент данных, что почти конечно DWord.источник