在命令行对文件进行加扰和解扰

问题描述 投票:0回答:2

我想向客户发送一个有用的可执行文件,但电子邮件过滤非常难以欺骗。我尝试了以下方法:

  • 加密压缩,
  • 更改文件扩展名并
  • 在文件开头添加四个随机字节

但文件无论如何都被阻止了。 :-(

现在我想打乱文件,将其发送给他,他将其打乱。混乱可能意味着:

  • 异或
  • Rot128(如 Rot13)
  • ...(我愿意接受建议)

我无法向客户发送解扰可执行文件,但他可以使用命令行。

加扰不一定必须在命令行进行,但是有没有办法从命令行对文件进行解扰?

command-line cmd command-line-interface
2个回答
0
投票

首先:发送可执行文件通常不是一个好主意,因为可执行文件(除了一些特殊的设置之外)大多是已经编译的机器语言程序,这意味着在您的计算机上运行的可执行文件可能会在另一台计算机上产生致命错误,因为它们可能具有完全不同的机器语言和 API。

但是,那不是你问的,所以我要继续。

好吧,纯粹依赖命令行不会比加密压缩给你带来更多的帮助,所以我个人建议你用一种非常低级的语言(比如我最喜欢的 c++)创建和编译一些可以运行的东西从命令行以文件名作为参数,并将您的文件与从密钥生成的随机数字字符串进行异或。

我可以在这里发布执行此操作的代码。

但是由于您的客户可能没有编译器并且不知道如何编译 C++ 文件,并且由于他的邮件过滤器具有如此严格的限制,因此它也可能会过滤掉可以制成可疑内容的 C++ 文件(例如上述解密器),这也不是一个选择。

使用命令行直接操作文件(对于“打乱”和“反打乱”它们)的问题是它真的很糟糕,这意味着意外的输入(如“&%^^@~&*”)几乎是肯定会弄乱你的批处理程序,因为命令和变量没有正确分开。

因此,除非您非常幸运并且这些字符都不存在于您的文件中,否则您将无法对它们正确执行任何操作。

我完全不知道如何仅通过使用命令行来解决这个问题,但如果你愿意尝试 C++ 方法,请告诉我,我们可以继续。

吊床哥们出来了


0
投票

我知道,这是非常古老的线程,但是有一个解决方案根本不需要任何编程,而所有涉及的工具几乎总是存在于任何 Linux 安装上 - 通过对文件进行 base64 解码并反转生成的文本行。这在大多数情况下都有效:

base64 |修订 > .txt

接收者只需要做相反的事情:

rev .txt | base64 -id >

我建议在文本文件中附上原始文件的 sha-256 哈希值,以便接收者可以验证解码文件的正确性。

对于邮件扫描仪仍然不喜欢这种不太可能发生的情况的额外提示:在一种情况下,通过 awk 脚本向每一行添加随机空格,从而创建类似于带有单词的文本的外观,也降低了最后一个障碍。

请允许我补充 hammockdude 的警告,即二进制文件并不总是可以在另一台主机上执行,例如当在与创建它的发行版不同的发行版上运行它时,如果您陷入明确禁止执行此类操作的环境中,它也可能会让您陷入困境。所以,请谨慎行事。

© www.soinside.com 2019 - 2024. All rights reserved.