当前位置:操作系统 > Unix/Linux >>

使用uudecode巧妙解开邮件中的base64附件

很多 Windows 客户端的邮件软件都采用 MIME/Base64 的格式来对附件编码,而 Linux 下的 uuencode 软件缺省的编码方式为 UU ,所以,如果用 uudecode 来解开使用 base64 编码的信件附件时,会报告“No `begin' line”的错误。本文采用手工方法来解开这些邮件的附件。

  普通的邮件的附件采用 Base64 编码,我们用普通的文本编辑器可以看到如下的内容:

  ------------B61881636C49720

  Content-Type: application/octet-stream; name="test.bin"

  Content-Transfer-Encoding: base64

  Content-Disposition: attachment; filename="test.bin"

  yv66vgADAC0AsAgAcwgAdAgAfggAgAgAgQgArAcAmgcAmwcAnAcAnQcAngcAnwcAoAcAoQcAogcA

  owcApAcApQcApgoAEQA5CgARADoKAAkAOwoAEAA7CgAKADwKABIAPQkAEwA+CQATAD8JABMAQAkA

  EwBBCQATAEIJABMAQwkAEwBECQATAEUJABMARgkAEwBHCgAQAEgLAA4ASQsADwBJCQASAEoLAAwA

  SwkAEgBMCgAQAE0KAAoATgsADwBPCwAOAFALAA4AUQsADgBSCQASAFMJABIAVAsADgBVCQATAFYK

  AAsAVwoAEABYCgANAFkKAAgAWgoACgBbDABcAGwMAF0AcQwAcgBhDAByAG8MAHIAcAwAggB6DACD

  AHkMAIQAfQwAhQB8DACGAHsMAIcAeQwAiAB5DACJAHkMAIoAeQwAjAB5DACNAGgMAI4AYQwAjgB2

  D

  ......

  邮件的结尾为:

  ACe4ADdNLLAAAAABAHgAAAA6AA4AAABFAA4ARgAQAEcAEgBIACEASQAmAEoAMQBLADYATABBAE0A

  RgBOAFEATwBZAFAAZABRAGwAUgABAH8AAAACAJM=

  ------------B61881636C49720--

  观察发现,uudecode 应该可以解开 Base64 编码的文件的,但是可能在头尾的处理方式上和 Win32 下的软件有不一致的地方。

  我们采用 uuencode -m 选项对一个二进制文件编码,得到如下的内容:

  begin-base64 750 -

  f0VMRgEBAQAAAAAAAAAAAAIAAwABAAAAQIcECDQAAACcMgAAAAAAADQAIAAG

  ACgAHgAbAAYAAAA0AAAANIAECDSABAjAAAAAwAAAAAUAAAAEAAAAAwAAAPQA

  AAD0gAQI9IAECBMAAAATAAAABAAAAAEAAAABAAAAAAAAAACABAgAgAQIqA4A

  ......

  结尾为:

  R0xJQkNfMi4wAF9lbmQAaHRvbnNAQEdMSUJDXzIuMABjb25uZWN0QEBHTElC

  Q18yLjAAX0lPX3N0ZGluX3VzZWQAc3ByaW50ZkBAR0xJQkNfMi4wAF9fZGF0

  YV9zdGFydABzb2NrZXRAQEdMSUJDXzIuMABvcGVuaG9zdABfX2dtb25fc3Rh

  cnRfXwA=

  ====

  可以看到头和尾有所不同,因此我们直接编辑原来的文件,把头和尾修改为和以上方式一致以后,采用 uudecode -o output_name infile 就可以解开 base64 编码的信件附件了。本文来自:http://www.xiaoyaxiao.com/1352.html
发表您的高见!
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,