在已编译的应用程序中查找SQL查询

时间:2020-03-06 14:29:41  来源:igfitidea点击:

我刚刚继承了一个服务器应用程序,但是似乎数据库的唯一副本已损坏并且工作版本已消失,所以有可能找到应用程序正在运行的查询,以便尝试重建表吗?

编辑:我有一些没有扩展名的文件,它们的名称与数据库相同,如果有任何可以使用它们的名称,则IDK,但如果有人有任何想法。

可接受的答案似乎最有可能成功,但是我能够找到另一个备份,所以我没有对其进行测试。

解决方案

打开SQL查询日志记录,并观察应用程序的要求。

我们可以在程序上运行UNIX命令" strings"以查看其是否嵌入了sql字符串:

http://en.wikipedia.org/wiki/Strings_(Unix)

如果我们可以访问Unix机器,或者可以安装cygwin实用程序(http://www.cygwin.com/),则有一个名为"字符串"的命令,它将搜索任何文件类型并打印出任何连续的序列字符数据(可能只是ascii)。该工具应该可以识别应用程序中嵌入的sql查询。

查找SQL Profiler,通常可以从查询分析器(isqlw.exe)或者Management Studio(在更高版本中)的工具菜单中找到SQL Profiler(取决于我们使用的版本)。

使用SQL事件探查器,我们可以在服务器上运行跟踪,该跟踪可以向我们显示应用程序正在请求哪些查询。

我们可以RegEx文件搜索

  • "选择 *"
  • "更新 *"
  • "从*删除"
  • "插入 *"