嗨,大家好, 我想看看我使用C ++应用程序为firefox保存的密码。我做了一些阅读,没有解决方案是决定性的:
我发现密码存储在2个文件中:logins.json和key3.db(我还在一个站点上找到了第三个文件cert8.db,其他地方没有提到它)。
我发现firefox使用的加密算法是3des,如果没有指定密码,则使用空的0-char密码。
我发现logins.json文件中的密钥是用3des加密并用b64编码的密钥。加密的密钥存储在key3.db中,没有另一个密钥就没用了。
我发现我无法用sqlite3.dll读取key3.db,在XAMPP上读取MySQL,或者我知道读取sql数据库的任何其他方法。
我发现尽管大多数b64字符串的末尾都有一个'='字符,但我的logins.json中的那些字符串(仅用于本研究的单个密码设置)却没有。将它通过NP ++中的b64解码器返回垃圾(如果它的3des加密并不奇怪),但我使用的任何在线解码器都没有返回。
我找不到可追溯到2016年的消息来源。
我为此目的找到的任何源代码都没有编译和/或充满错误。当我尽可能地删除错误时,它就会出现准备数据库的问题。
有什么信息我错过了,或者是不正确的?我真的迷失在这里,如果有人指出我正确的方向,我将不胜感激。谢谢。
答案 0 :(得分:2)
您可以查看以下C项目:https://github.com/philsmd/pswRecovery4Moz 它虽然较旧,但仍显示如何从key3.db文件中获取重要数据。
答案 1 :(得分:1)
Firefox是开源的,只需通过源代码。可能是使用密码初始化db。 firefox源代码中有一个'dbtest.c'文件,看看那个文件。
同样使用NSS tools。可能有帮助