如何以编程方式解密PGP Self Decrypting Archive?

时间:2012-12-19 20:22:00

标签: encryption cryptography exe gnupg pgp

我每天都收到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,但是看一下任何语言的实现都会有所帮助。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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