如果您在侦听主机上打开一个端口并使用 nc 向此端口发送字节,则源文件和目标文件的哈希值可能不同。为什么会这样?可以避免这种情况吗?
以下是我使用的命令:
在接收方:
bash@ubuntu $ nc -nlvp 4444 > target # at 192.168.155.51
在发送方:
powershell@windows $ Get-Content binaryFile.exe | nc 192.168.155.51 4444
源的 SHA256(使用 计算Get-FileHash
):FFECB298B1381AFBF86247156F625EAECA327015C5BC0658F6FF6E063D59D759
目标的 SHA256(sha256sum
):1c1148ace41bc0d22c1523787c64fb34abba456551d62387a085d12c36d34452
答案1
问题不在于nc
,而在于Get-Content
。如果您Get-Content a.exe > b.exe
将有两个不同的文件(文件大小加倍)。
此处提出了这个问题https://stackoverflow.com/questions/10672092/read-parse-binary-files-with-powershell但我还没有找到Get-Content
适合二进制文件的用法。
使用nc
您提出的参数(但直接从 UNIX 重定向)效果很好。