查找ODBC连接名称

4

情境:

  1. 我有一个用VB6编写的程序
  2. 程序的源代码不可用
  3. 它使用ODBC连接字符串连接到数据库。
  4. 当这个程序在6年前第一次安装时,供应商设置了一个连接名称到数据库
  5. 我的机器崩溃了,所有的设置都没了!
  6. 程序供应商已经停业。甚至他们现在也没有这个程序的源代码。

问题:

我能以任何方式找到ODBC连接名称吗?


1
谁投票关闭了?为什么这与编程无关? - Shoban
4个回答

4
您可以使用Process Explorer来捕获程序尝试打开的连接字符串。您几乎可以找到程序正在执行的所有操作,并且可以过滤要捕获/显示的信息。

我该如何使用它来捕获ODBC字符串?我在PE方面有工作经验,但无法弄清楚它如何在这种情况下使用。 - user239014
它会告诉你它尝试访问的每个注册表键和文件。 - jac
2
最后我终于用PE找到了字符串!方法是:(1)使用MdbPassword Sniffer(NirSoft)查找访问数据库的密码(2)使用PE转储所有字符串(3)在文件中搜索密码(4)在密码文本匹配附近找到连接字符串。你的建议帮了我很多,伙计! - user239014

1

我不确定我是否理解了。当您尝试运行程序时,确切发生了什么?问题是ODBC连接字符串丢失了,因为在机器崩溃时设置丢失了吗?

如果是这样,我建议尝试以下操作。

  • 查找VB6程序的配置文件备份。它可能是INI文件。
  • 您知道数据库是什么吗?它是Access文件(*.MDB),SQL Server还是其他什么?您可以尝试从头开始重新创建连接字符串。如果需要提供密码,则可能会遇到问题。
  • 您还与供应商的任何人保持联系吗?我认为最初编写程序的人最能帮助,并可能愿意提供几天的咨询服务。

谢谢你的回复。我使用我向Beaner描述的方法找到了字符串。+10感谢您指出connectionstring网站!无价之宝! :) - user239014

0

0
你可以运行ODBC跟踪,然后查看日志文件以查看尝试的名称是什么。运行odbcad32.exe并转到跟踪选项卡并打开它。运行您的应用程序,然后查看日志文件(可能在SQLConnect调用处)。

+1 对这个建议的支持。不过它没有显示连接字符串。 :( - user239014
太糟糕了。我没有尝试使用连接字符串进行跟踪。如果您有“字符串”实用程序,只需在应用程序二进制文件上运行它,然后将输出转储到文件中。浏览一下可能会显示名称是什么。甚至十六进制编辑器也应该可以显示连接字符串。我错误地认为ODBC跟踪会显示它。对此表示抱歉。 - Mark Wilkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接