我尝试在二进制文件中搜索。通过十六进制编辑器审查文件后,我发现文件中有一些模式。您可以在这里看到它们。正如您所看到的那样,它们出现在文件列表之前和之后。
/% ......C:\ Users \ Desktop \ test1.pdf..9
/% ......C:\ Users \ Desktop \ testtesttesttest.pdf..9
我想要做的是找到 ..9(HEX = 000039),然后“备份”直到找到 /% ......(HEX = 2F25A01C1000000000),然后向前移动x个字节,以便我可以获得完整的路径。我现在拥有的代码如下:
/% ......C:\ Users \ Desktop \ test1.pdf..9
/% ......C:\ Users \ Desktop \ testtesttesttest.pdf..9
我想要做的是找到 ..9(HEX = 000039),然后“备份”直到找到 /% ......(HEX = 2F25A01C1000000000),然后向前移动x个字节,以便我可以获得完整的路径。我现在拥有的代码如下:
$file = 'C:\Users\<username>\Desktop\bc03160ee1a59fc1.automaticDestinations-ms'
$begin_pattern = '2F25A01C1000000000' #/% ......
$end_pattern = '000039' #..9
$prevBytes = '8'
$bytes = [string]::join('', (gc $file -en byte | % {'{0:x2}' -f $_}))
[regex]::matches($bytes, $end_pattern) |
% {
$i = $_.index - $prevBytes * 2
[string]::join('', $bytes[$i..($i + $prevBytes * 2 - 1)])
}
以下是部分的输出结果:
ffff2e0000002f000000300000003b0000003200000033000000340000003500000036000000370000003800 655c4465736b746f705c466f72656e7369635f426f6f6b735c5b656e5d646566745f6d616e75616c2e706466 0000000000000000000000000000010000000a00000000000000000020410a000000000000000a00000000
ÿÿ./0;2345678?e\Desktop\deft_manual.pdf?
资料科学、计算机和互联网.pdf
软件\Desktop\Dive Into Python 3.pdf?