2015-03-25 58 views
0

我有一个移动的二进制文件,在这个二进制文件电话本的信息和联系人存储我已经从中提取信息,但现在必须提取保存在电话簿中的联系人。二进制文件的数据存储在sqlite格式,因为我发现这个字符串53514C69746520666F726D617420330000在我的二进制文件。现在如何提取保存在电话簿中的联系人列表。将二进制文件转换为SQLite数据库

回答

1

您需要先编制从中提取信息的文件的格式,然后编写代码以提取它。一个好的起点将是The SQLite Database File Format

您给出的该字符串的第一部分(53514C69746520666F726D6174203300)是ASCII十六进制的SQLite format 3<nul>,它与上面链接中显示的标题相匹配,以便可以帮助您找出如何处理它的最佳方法。

虽然看起来只是一个普通的SQLite数据库文件,但您可能会很幸运,并且能够像使用普通的SQLite实例一样使用它。这将是第一个事情我会尝试,因为你可以使用常规的SQL查询以更有用的形式输出数据。

例如,如果文件名为pax.db,只需运行:

sqlite pax.db 

打开它,然后你会发现你可以使用所有的常规调查命令像.databases.schema.tables等。

+0

我怎么找到文件的结尾? – sms247 2015-03-26 05:36:51

+0

@ sms247,它通常在文件的末尾:-)抱歉,无法抗拒。但是你应该更明确地提出你的问题,我不完全确定你在问什么。 – paxdiablo 2015-03-26 05:38:09

+0

其实我有一个巨大的二进制文件,从这个文件我必须提取sqlite数据库,我知道上面提到的字符串显示sqlite数据库的开始,但我怎么才能找到数据库文件的结尾。我知道后提到的字符串接下来的两个字节显示页面大小,但如何从页面大小我可以猜测数据库结束的确切索引。 – sms247 2015-03-26 08:59:16