我正在尝试对使用 SQL 服务器的应用程序进行逆向工程,但以某种方式将数据库文件隐藏在其自己的专有文件格式中。我的目标是编写我自己的应用程序,该应用程序可以从应用程序文件中提取数据,以便我可以使用自己喜欢的工具进行处理。
我可以使用 WinDbg 来拦截 SQL,但我看不到应用程序如何将其数据文件与 SQL 服务器连接。谁能建议我在哪里看?
干杯!
我正在尝试对使用 SQL 服务器的应用程序进行逆向工程,但以某种方式将数据库文件隐藏在其自己的专有文件格式中。我的目标是编写我自己的应用程序,该应用程序可以从应用程序文件中提取数据,以便我可以使用自己喜欢的工具进行处理。
我可以使用 WinDbg 来拦截 SQL,但我看不到应用程序如何将其数据文件与 SQL 服务器连接。谁能建议我在哪里看?
干杯!
万一有问题的文件只是一个名字奇怪的 mdf,你可以用 Mark S. Rasmussen 的OrcaMDF来查看它。
运行 Sysinternals Process Monitor并查找任何进程对该文件的操作。sqlserver.exe 之外的其他东西可能正在读取它。一旦您看到读取文件的内容,请查看导致进程监视器中文件 io 调用的堆栈跟踪。附加到使用 WinDbg 读取文件的进程并设置适当的断点以继续逆向工程。
MS SQL DBA 在这里...“以自己的专有格式隐藏数据库文件”听起来有点不对劲。
SQL Server 可以使用任何 Windows 可以用作数据源的东西。因此,您可以让 SQL Server 对连接到 Excel 电子表格的纯文本文件进行查询,连接到数据是 mysql 或 sqlite。这是 SQL Server 的优势之一,它几乎可以连接任何东西。
SQL Server 也有许多用于加密基础文件的选项。
我怀疑 SQL Server 是 A) 连接到一个众所周知的文件类型,它支持作为链接服务器/链接数据源,这是您没有意识到它可以连接的东西,或者 B) 使用常规 SQL Server 文件但是使用加密选项来确保数据在静止时是安全的。
我倾向于后者 B)。如果您不希望人们能够获取数据库文件并转储数据,SQL Server 加密可以轻松处理。无需创建特殊的文件格式。SQL Server 开发人员会知道这一点并首先走这条路。