@@ -1545,9 +1545,10 @@ private void ModificationAdded(RegistryTraceData registryTraceData) {
15451545 //return;
15461546 //}
15471547
1548+ // comparable names, since registry key/value names shouldn't have null bytes in them according to Win32
15481549 RegistryStateElement registryStateElement = new RegistryStateElement {
1549- KeyName = registryTraceData . KeyName ,
1550- ValueName = registryTraceData . ValueName
1550+ KeyName = GetComparableName ( registryTraceData . KeyName ) ,
1551+ ValueName = GetComparableName ( registryTraceData . ValueName )
15511552 } ;
15521553
15531554 // KeyHandle is meant to be a uint32, so we discard the rest
@@ -1740,8 +1741,8 @@ private void ModificationRemoved(RegistryTraceData registryTraceData) {
17401741
17411742 // create filler element to get name
17421743 RegistryStateElement registryStateElement = new RegistryStateElement {
1743- KeyName = registryTraceData . KeyName ,
1744- ValueName = registryTraceData . ValueName
1744+ KeyName = GetComparableName ( registryTraceData . KeyName ) ,
1745+ ValueName = GetComparableName ( registryTraceData . ValueName )
17451746 } ;
17461747
17471748 ulong safeKeyHandle = registryTraceData . KeyHandle & 0x00000000FFFFFFFF ;
@@ -1795,7 +1796,7 @@ private void KCBStarted(RegistryTraceData registryTraceData) {
17951796 kcbModificationKeyNames = new Dictionary < ulong , string > ( ) ;
17961797 }
17971798
1798- kcbModificationKeyNames [ safeKeyHandle ] = registryTraceData . KeyName ;
1799+ kcbModificationKeyNames [ safeKeyHandle ] = GetComparableName ( registryTraceData . KeyName ) ;
17991800 }
18001801
18011802 private void KCBStopped ( RegistryTraceData registryTraceData ) {
@@ -1854,7 +1855,7 @@ private void KCBStopped(RegistryTraceData registryTraceData) {
18541855 registryStateElement = registryStateElements [ j ] ;
18551856
18561857 keyName = GetRedirectedKeyValueName (
1857- GetKeyValueNameFromKernelRegistryString ( registryTraceData . KeyName + "\\ " + registryStateElement . KeyName ) ,
1858+ GetKeyValueNameFromKernelRegistryString ( GetComparableName ( registryTraceData . KeyName ) + "\\ " + registryStateElement . KeyName ) ,
18581859 modificationsElement . RegistryStates . BinaryType
18591860 ) ;
18601861
0 commit comments