在Linux上交换edb

时间:2010-09-11 04:21:07

标签: exchange-server reverse-engineering esent edb

我有一个60GB的edb文件,我想将数据库分成单独的电子邮件。我没有任何原始域信息,因此我不能只启动Server 2k8 vm并在那里重新连接它。我已经取得了一些进展,从文件中剥离二进制数据(字节不是0x09,0x0a,0x0d和0x20到0x7f)的天真方法(从60到30 GB),然后在明显的SMTP标题处拆分。这种方法似乎不起作用,因为Exchange不会将整个电子邮件保存在一个连续的块中,并且它似乎复制了很多电子邮件(这可能是将整个文件视为文件系统的工件,而不是一些更合理的事情,例如让文件系统成为文件系统,只是将电子邮件存储在/ var / mail等中。

因此,问题是:在Google无法或不会向我展示的世界中隐藏了哪些Exchange数据库文件格式的工具和文档?

1 个答案:

答案 0 :(得分:3)

看看Joachim Metz的工作。他对edb格式进行了逆向工程,并在有限的范围内分析了交换数据​​库。它是开源的,甚至还有一些关于表和列的文档:

http://sourceforge.net/projects/libesedb/files/

然而,它没有比你看似已经实现的更多。它将edb的所有表导出到单独的文件中。您必须使用提供的文档,并从您从数据库导出的位和字节自己编写电子邮件。请记住,有关电子邮件和附件的信息相当分散,所有列的命名都相当神秘。你必须自己做一些研究和逆向工程才能完成这个数据丛林。

由于该项目是开源的,您可以调整或扩展代码,并“轻松”到达您想要的位置。