来都来了,不顺手收藏评论点赞么?

【原创】关于NTFS交换数据流(补充)

Windows Wangyeyu2015 1031℃

看到这两天有小伙伴给我发邮件,说使用7-Zip查看交换数据流不太方便,问我有没有更好的一些方法,那么今天咱们就展开讲一下吧。

还是老样子,我尽量讲的细一点,因为有很多读者是没有基础的小伙伴,方便大家看完文章能够复现,如果是稍微有些基础的小伙伴可以跳着看。

先补充一下如何使用命令行查看交换数据流,首先,按下“Win”+“R”,输入“cmd”,点击“确定”。

使用“cd”命令切换到下载文件的目录,例如我的路径是“C:\Users\Administrator\Downloads”,则输入“cd C:\Users\Administrator\Downloads”。

然后,我们使用“dir”命令查看文件目录,但是我们加一个参数“/r”(显示文件的备用数据流),我们输入“dir /r”。

可以看到在“CyberChef_ZH_CN-master.zip”的下面有一行没有时间的文件“CyberChef_ZH_CN-master.zip:Zone.Identifier:$DATA”,这就是上篇文章中我们看到的数据流。

那么,我们该如何去读取他呢?我们可以使用“more”命令加重定向的方式读出来。

我们输入命令“more < 要读取的文件流”。

可以看到成功读取了,那么问题又来了,如果我们想创建一个文件流,该如何操作呢?

比较简单的方法是使用“echo”命令加重定向的方式将内容写到一个流,我们执行“echo ceshi > CyberChef_ZH_CN-master.zip:test”,在执行“more < CyberChef_ZH_CN-master.zip:test”,可以看到我们写入的“ceshi”被读出来了,但是同时被读出来的还有一个换行符。

当我们去掉重定向在执行一次,可以发现,当使用“echo”命令时,会在最后追加一个换行符。

那么我们怎么可以去掉最后的换行符号呢,我们可以使用“echo |set /p=”加内容的方式清除掉最后的换行符号,例如我们执行“echo |set /p=123”,可以看到最后没有换行符了。

为什么使用set就没有最后的换行了呢,我们可以使用“set /?”命令查看一下帮助。

可以看到帮助显示“/p”会将变量数值设置为用户的输入。

我们来测试一下,我们执行“echo|set /p=test2> CyberChef_ZH_CN-master.zip:test2”,在使用重定向加管道“more < CyberChef_ZH_CN-master.zip:test2”读取看下效果。

可以发现似乎换行还在,我们换个软件打开看看,我们使用notepad打开,执行“notepad CyberChef_ZH_CN-master.zip:test2”命令。

可以发现,最后的光标在第一行,而不是第二行,说明确实没有在最后追加换行符号。

除此之外,可能有细心的小伙伴在尝试的时候会发现,使用“copy”命令复制文件到数据流的时候会报错,那么该如何复制一个文件到数据流呢?

这里,博主提供一个比较简单的方法,使用“expand”命令,例如:

我们在使用“dir /r”命令,发现确定被复制了过来。

更多的我们就不展开讲了,有点偏离溯源的方向了。

不过各位小伙伴在复现或者工作中遇到了其他什么问题,也可以随时发邮件联系我。

最后的最后,希望大家能有所收获。

转载请注明:夜羽的博客 » 【原创】关于NTFS交换数据流(补充)

喜欢 (3)or分享 (0)
隐藏
变装