5

我有一个无法重新编译的 Delphi 应用程序。

在将数据库移动到新的 SQL Server 版本的过程中,我想更改数据库密码,使其不再为空。问题是应用程序在 .exe 中嵌入了数据库凭据。

什么办法可以更改密码吗?

服务器名称和数据库名称是可配置的。

4

2 回答 2

16

如果连接字符串在设计模式下保存在TADOConnection组件中,您最好的选择是使用资源编辑器,例如Resource Hacker

表格或数据模块 DFM 可在该RCData部分中找到。只需更改连接字符串并使用“编译脚本”。这会将您的更改保存回 EXE 文件,而不必担心损坏 EXE。

我假设您的 EXE 未打包(PE 打包程序)或数字签名。

在此处输入图像描述

于 2015-07-09T10:39:44.313 回答
5

下面是我的 D7 .Exe 的一部分的屏幕截图,显示了其 Ado ConnectionString 的相关部分。

我使用了一个古董文件查看器(来自旧 TurboPower 库附带的示例应用程序)来截取屏幕截图。我只是将文件加载到其中,输入“persist”作为搜索字符串并跳过几个 TPersistent 实例来定位它。

当然,您可以使用任何旧的十六进制文件编辑器来执行类似操作并对其进行更改,前提是 .Exe 没有被压缩或防止校验和等被篡改。

您可能需要进行一些试验,并与另一个具有非空白密码的应用程序进行比较,以便您可以提出一些适合 .Exe 磁盘映像中可用空间的新凭据。

在此处输入图像描述

于 2015-07-09T09:50:42.633 回答