Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarification on Wildcards in REGISTRY_KEY #255

Closed
DeKe42 opened this issue Mar 19, 2018 · 3 comments
Closed

Clarification on Wildcards in REGISTRY_KEY #255

DeKe42 opened this issue Mar 19, 2018 · 3 comments
Assignees
Labels

Comments

@DeKe42
Copy link
Contributor

DeKe42 commented Mar 19, 2018

Hi everyone,

this is probably covered by #23, but since I'm working on an extractor for artifacts, I'd like to understand how wildcards are used in the artifacts:

Many of the REGISTRY_KEY artifacts have a \* at the end. My understanding is that this means a subkey. This is strange, because some of the defined registry paths (e.g. the Autorun "Run"-Keys in WindowsRunKeys) clearly do not have subkeys, but still are given with a \* at the end. Although not all of them do, for example WindowsControlPanelFilePaths.

Can you clarify if a wildcard at the end of a REGISTRY_KEY path means "All subkeys" or "All values in this key" or both?

Thanks!
Demian

@grrrrrrrrr
Copy link
Contributor

Hey Demian,

I think the wildcard can refer to both, subkeys and values. I think intuitively that makes sense, like a * in filesystems can mean both, files and subdirectories, but I agree that this might cause confusion.

I think WindowsControlPanelFilePaths is wrong, looking at the provided url, https://msdn.microsoft.com/en-us/library/windows/desktop/hh127454(v=vs.85).aspx , I don't think this artifact will collect anything useful on any of the listed OSs. Thanks for pointing this out!

@DeKe42
Copy link
Contributor Author

DeKe42 commented Mar 20, 2018

Thanks for the quick answer! I'll handle it like this, then :-)

I don't 100% agree that this is intuitive though: My understanding was that the type of REGISTRY_KEY already means "All the values in this key" as opposed to REGISTRY_VALUE, which specifies exactly one value within a key. The wildcard in the path seems redundant at least.

If we are looking at a key which has values as well as subkeys, what is the wildcard at the end supposed to mean? "Export all the values of this key and all the values of the subkeys"? Then one could argue it should be *\* instead.. But just exporting the names of the subkeys without content does not seem very useful. I hope you can see where my confusion is coming from ;-)

@joachimmetz
Copy link
Member

joachimmetz commented Mar 20, 2018

I don't 100% agree that this is intuitive though

This depends how you perceive a Windows Registry key

  • REGISTRY_KEY means the key itself, not the values in it; since a key can have subkeys and values with the same names
  • All values in a key could be represented by REGISTRY_VALUE with a wild card value for value name

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants