【问题标题】:Scramble and descramble file at commandline在命令行加扰和解扰文件
【发布时间】:2015-09-11 06:59:12
【问题描述】:
我想向客户发送一个帮助可执行文件,但电子邮件过滤很难欺骗。我尝试了以下方法:
- 加密压缩,
- 更改文件扩展名并
- 在文件开头添加四个随机字节
但文件还是被阻止了。 :-(
现在我想对文件进行加扰,将其发送给他,然后他进行解扰。加扰可能意味着:
- 异或
- 不是
- Rot128(类似于 Rot13)
- ...(欢迎提出建议)
我无法向客户发送解扰可执行文件,但他可以使用命令行。
加扰不一定必须在命令行,但有没有办法从命令行解扰文件?
【问题讨论】:
标签:
command-line
cmd
command-line-interface
【解决方案1】:
首先:发送可执行文件通常不是一个好主意,因为可执行文件(除了一些特殊的设置程序)大多已经编译,机器语言程序,这意味着在您的机器上运行的可执行文件可能会在另一台机器上产生致命错误机器,因为它们可能具有完全不同的机器语言和 API。
但是,那不是你问的,所以我要继续。
好吧,这里纯粹依靠命令行不会给你带来比加密压缩更进一步的好处,所以我个人建议你用一种非常低级的语言(比如我最喜欢的 C++)创建和编译一些东西,它可以以文件名作为参数从命令行运行,并将您的文件与从密钥生成的随机数字符串进行异或。
我可以在这里发布执行此操作的代码。
但是由于您的客户可能没有编译器,也不知道如何编译 c++ 文件,并且由于他的邮件过滤器具有限制性,因此它还可能过滤掉可能被制成可疑物品的 c++ 文件(例如,上述解密器),这也不是一个选项。
使用命令行直接操作文件(至于“加扰”和“解扰”它们)的问题在于它真的很糟糕,这意味着意外的输入(如 "&%^^@~&* )几乎肯定会弄乱您的批处理程序,因为命令和变量没有正确分离。
因此,除非您非常幸运并且这些字符都不存在于您的文件中,否则您将无法对它们正确执行任何操作。
我完全不知道如何仅通过使用命令行来解决这个问题,但如果你愿意尝试 c++ 方法,请告诉我,我们可以继续。
吊起来