我尝试通过PowerShell和PowerShell ISE(版本5.1.1)中的mmcat.exe提取主引导记录(MBR)。输出的二进制数据始终大于512字节。 PowerShell 6.1.1仍然存在此问题。
$mmcat = "C:\Tools\sleuthkit\bin\mmcat.exe"
& $mmcat -t dos "$EWF_IMAGE" 0 > "$OUTPUT\Disk-Geometry\MBR.bin"
问题在这里描述得很清楚: PowerShell’s Object Pipeline Corrupts Piped Binary Data
您知道解决方法吗?
答案 0 :(得分:1)
您无法在PowerShell中通过管道传输二进制数据。要变通,请像这样使用cmd.exe
:
$command = "C:\Tools\sleuthkit\bin\mmcat.exe -t dos `"$EWF_IMAGE`" 0 > `"$OUTPUT\Disk-Geometry\MBR.bin`""
cmd /c $command
您可以像这样读取二进制数据:
[byte[]]$mbr = Get-Content -Path $OUTPUT\Disk-Geometry\MBR.bin -Encoding Byte