如何对数据库文件格式进行逆向工程?
How to reverse engineer a database file format?
这是一个会计数据库,其数据库文件格式是专有数据。但问题是数据库非常不可靠,损坏多年来都没有被注意到,之后恢复数据变得难以忍受,我们维护着很多公司的账户,因此反转格式将非常有用。此外,该软件是 odbc 兼容的,这可能对逆向非常有帮助 it.The 软件是部分开源的,即除了数据库引擎之外,所有东西都是开源的(并且完全可定制),尽管它们有自己的不同语言。
我没有倒车的经验。我们希望以这样的方式反转它,以便我们可以直接以该格式写入数据。所以我想知道在哪里可以获得工具以及我应该如何处理这个,任何文章或视频都会很棒。
通常情况并非如此"hard"。例如,我喜欢混合解决方案:
基本目标文件分析:熵、签名等。最好用一些 hex-editor 查看可能的块(准备好生活在 hex-editor很长一段时间),我推荐你 010 Editor with templates / scripts inside.基本的目标应用程序分析:你需要了解它是如何编写的(语言、框架、库等),这对接下来的步骤非常有用。
可以打开此文件格式的应用程序的经典 rev-engineering。使用 IDA Pro + Hex-Rays(但要准备好花很多钱)之类的东西来生成 C-like 源的最佳方法。您可以中断目标文件(更改/窃取一些字节)并中断目标应用程序中的异常,例如,开始探索。
尝试使用 FileMon(现在它是 ProcMon 的一部分)来了解目标应用程序如何读取目标文件。有时这是可能的(有些应用程序根本不使用读取缓冲区,因此,您会看到小读数 + 用于探索的调用堆栈!)。
在某些情况下可以提供帮助的不同工具。
最重要的是,上传一些数据库和应用程序示例并给出 link。我们可以尝试一起做,写一个小教程给别人。
这是一个会计数据库,其数据库文件格式是专有数据。但问题是数据库非常不可靠,损坏多年来都没有被注意到,之后恢复数据变得难以忍受,我们维护着很多公司的账户,因此反转格式将非常有用。此外,该软件是 odbc 兼容的,这可能对逆向非常有帮助 it.The 软件是部分开源的,即除了数据库引擎之外,所有东西都是开源的(并且完全可定制),尽管它们有自己的不同语言。
我没有倒车的经验。我们希望以这样的方式反转它,以便我们可以直接以该格式写入数据。所以我想知道在哪里可以获得工具以及我应该如何处理这个,任何文章或视频都会很棒。
通常情况并非如此"hard"。例如,我喜欢混合解决方案:
基本目标文件分析:熵、签名等。最好用一些 hex-editor 查看可能的块(准备好生活在 hex-editor很长一段时间),我推荐你 010 Editor with templates / scripts inside.基本的目标应用程序分析:你需要了解它是如何编写的(语言、框架、库等),这对接下来的步骤非常有用。
可以打开此文件格式的应用程序的经典 rev-engineering。使用 IDA Pro + Hex-Rays(但要准备好花很多钱)之类的东西来生成 C-like 源的最佳方法。您可以中断目标文件(更改/窃取一些字节)并中断目标应用程序中的异常,例如,开始探索。
尝试使用 FileMon(现在它是 ProcMon 的一部分)来了解目标应用程序如何读取目标文件。有时这是可能的(有些应用程序根本不使用读取缓冲区,因此,您会看到小读数 + 用于探索的调用堆栈!)。
在某些情况下可以提供帮助的不同工具。
最重要的是,上传一些数据库和应用程序示例并给出 link。我们可以尝试一起做,写一个小教程给别人。