Sua mais melhor fonte da informação e da notícia aproximadamente janelas Vista, Vista e janelas no Internet

ARTIGOS de Vista ALTO 50 Vírus de Spyware Vista MACIO AJUDA de Vista

Em Vista, como o interruptor das BANDEIRAS de REG.EXE trabalha? Parte 2


Nota: este índice originalmente de http://mygreenpaste.blogspot.com. Se você for leitura ele de algum outro local, faça exame por favor do momento de visitar Minha pasta verde, Inc. Obrigado.

Previamente, Eu escrevi sobre o interruptor das BANDEIRAS para REG.EXE em Vista e cobri uma técnica que ajustasse as bandeiras virtualization-relacionadas de uma chave do registro programmatically. Este borne pretende cobrir o outro lado - perguntando para as bandeiras virtualization-relacionadas de uma chave do registro. Outra vez, nós estamos tratando de uma função “undocumented” em NTDLL.DLL - NtQueryKey:

NTSTATUS NtQueryKey (
No PUNHO KeyHandle,
Em KEY_INFORMATION_CLASS KeyInformationClass,
PARA FORA PVOID KeyInformation,
No comprimento de ULONG
PARA FORA PULONG ResultLength);


Para recuperar as bandeiras para uma chave, a chamada NtQueryKey com KeyInformationClass ajustou-se a 5, que WDM.h nos diz que é KeyFlagsInformation.
_KEY_INFORMATION_CLASS do enum do typedef {
KeyBasicInformation,
KeyNodeInformation,
KeyFullInformation,
KeyNameInformation,
KeyCachedInformation,
KeyFlagsInformation,
KeyVirtualizationInformation,
MaxKeyInfoClass // MaxKeyInfoClass deve sempre ser o último enum
} KEY_INFORMATION_CLASS


REG.EXE fornece 12 para o valor do param do comprimento, e os últimos 4 bytes do amortecedor (KeyInformation) são modificados quando NtQueryKey retorna. Isto pareceria sugerir que o struct para receber a informação que contem o virtualization embandeira olhares algo como:
_KEY_FLAGS_INFO do struct do typedef {
ULONG unknown1;
ULONG unknown2;
ULONG ControlFlags;
} KEY_FLAGS_INFO, *PKEY_FLAGS_INFO;


Unindo o todo, então, nós temos algo como:
typedef NTSYSAPI NTSTATUS (NTAPI* FuncNtQueryKey) (comprimento do PUNHO KeyHandle, do KEY_INFORMATION_CLASS KeyInformationClass, do PVOID KeyInformation, do ULONG, PULONG ResultLength);
// ...
Ntqk de FuncNtQueryKey = (FuncNtQueryKey) GetProcAddress (GetModuleHandle (_T (“ntdll.dll”)), “NtQueryKey”);
Kfi de KEY_FLAGS_INFO = {0};
hTheKey = ZERO de HKEY;
RegOpenKeyEx (HKEY_LOCAL_MACHINE, _T (“SOFTWARE \ \ o que quer que”), 0, KEY_ALL_ACCESS, &hTheKey);
DWORD dwResultLen = 0;
dwNtqkResult de DWORD = ntqk (o hTheKey, KeyFlagsInformation, &kfi, sizeof (KEY_FLAGS_INFO), &dwResultLen);
RegCloseKey (hTheKey);
hTheKey = ZERO;


As bandeiras (_CONTROL_FLAGS, de Parte 1) são armazenados como um bitmask em kfi.ControlFlags.
_CONTROL_FLAGS do enum do typedef {
RegKeyClearFlags = 0,
RegKeyDontVirtualize = 2,
RegKeyDontSilentFail = 4,
RegKeyRecurseFlag = 8
} CONTROL_FLAGS;


O código acima fornece a mesma informação que invocar REG.EXE EMBANDEIRA HKLM \ software \ o que PERGUNTA.

Outra vez - anote que esta exploração estêve feita em Windows Vista SP1. Eu esperaria o índice aqui aplicar-se também a Windows Vista (nenhum SP) as well as o usuário 2008 de Windows, mas… popularidade: 3%


Escrito/de  “\/\ Ø|² DE ö±à \/” ®©. As alimentações mais grandes lidas em são fonte WEB SITE
nenhuns comentários.
Leia mais artigos sobre Forum de Sysinternals e virtualization do registro e bandeiras de reg.exe e NtQueryKey e REG_KEY_DONT_VIRTUALIZE and flags and vista and otherSoftware and REG_KEY_DONT_SILENT_FAIL and reg and Virtualization.

Related articles

No comments

There are still no comments on this article.

Leave your comment...

If you want to leave your comment on this article, simply fill out the next form:




You can use these XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> .