【问题标题】:How can I decrypt a PGP Self Decrypting Archive programatically? [closed]如何以编程方式解密 PGP 自解密存档? [关闭]
【发布时间】:2012-12-07 06:53:02
【问题描述】:

每天我都会收到我拥有密码的 SDA 文件。解密是通过运行文件并在弹出的程序窗口中手动输入密码来完成的。我想避免这个手动步骤,并将其转变为自动化过程的步骤。

它的工作方式如下: 一旦我的守护进程检测到一个新文件到达我的收件箱,我的程序就会下载、解密并保存它。除了解密部分,我知道如何用代码完成所有这些操作。

我不想运行 .exe 文件并手动输入密码,而是想读取它的内容,并使用密码解密其中包含的数据,如下所示:

4d5a 9000 0300 0000 0400 0000 ffff 0000
b800 0000 0000 0000 4000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 f000 0000
0e1f ba0e 00b4 09cd 21b8 014c cd21 5468
...etc

我目前使用的语言是 PHP,但看看任何语言的实现都会有所帮助。

有什么想法吗?

【问题讨论】:

  • 你希望发生什么?您希望您的密码缓存一段时间吗?
  • 您在标题中说“以编程方式”,那么您是否希望编写代码来解决此问题?
  • @Duncan Jones 我编辑了我的问题以便更清楚。
  • 所以基本上你想从.exe中提取加密的信封。关于删除可执行代码,您尝试/研究了什么?前几个字节可能是 .exe 标头。
  • @DiegoSaa 以前从未听说过 SDA。根据赛门铁克的说法,它们默认使用 AES256 进行加密。看看这个先前的答案是否有帮助:stackoverflow.com/q/1628138/1275871。如果是我的问题,我会尝试让数据提供者给我一个用我自己的密钥加密的文件。

标签: encryption cryptography exe gnupg pgp


【解决方案1】:

PGP 自解密档案只是该文件内的 EXE 存根 + PGP 消息。您应该解析 EXE 标头,并找到这些数据的存储位置、提取它并使用 GnuPG 或任何其他 PGP 库解密。

【讨论】:

    猜你喜欢
    • 2021-11-06
    • 1970-01-01
    • 2012-04-29
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多