如何逃避 reg.exe Windows 注册表 - 奇怪的行为

如何逃避 reg.exe Windows 注册表 - 奇怪的行为

每个人都说它\可以像下面这样在内部逃脱reg.exe

REG 命令将把 \ 解释为紧随其后的字符的转义符。 来源

但我发现这不是一个完全正确的规则。请看这个例子:

转义字符不起作用:

reg add HKCU\testt /f /v "" /t REG_EXPAND_SZ /d "a\b"
===> a\b

逃离不起作用:

reg add HKCU\testt /f /v "" /t REG_EXPAND_SZ /d "a\\b"
===> a\\b

reg add HKCU\testt /f /v "" /t REG_EXPAND_SZ /d "a\\\b"
===> a\\\b

但当我逃离双引号 然后逃离将工作:

reg add HKCU\testt /f /v "" /t REG_EXPAND_SZ /d "a\\\"b"
===> a\"b

结论: \仅当我转义双引号时才起作用"

更奇怪的是,即使我转义了双引号,转义也不起作用:

reg add HKEY_CURRENT_USER\testt /f /v "" /t REG_EXPAND_SZ /d "a\\ \"b"
===> a\\ "b

这意味着要转义转义符,它必须与转义的双引号相邻!!

这是正确的行为吗?如果正确,在哪里有记录?

这些示例是在 win7 上使用 cmd 完成的。

相关内容