我遇到了遗留应用程序无法以任何方式更改的问题(没有dll的单个可执行文件),它连接到可以更改的数据库。它是一个使用ADO.Net连接到数据库的visual basic 6应用程序。数据库引擎是SQL Server 2008.目标是创建可与旧应用程序一起使用的新正确数据库
它紧密耦合,甚至不能使用视图而不是建议here的表。所以现在的情况如下:current situation diagram
目前我正在尝试研究这个问题并找到我的选择。我有一些想法可能有用:
由于将表更改为视图的方法不起作用,我认为有一种可能性是拦截应用程序和旧数据库之间的通信,读取已发送的命令并将其重定向到其他地方并且不让遗留数据库响应请求。
每个命令都是CRUD或程序执行,我们知道可以发送哪些命令。假设设置了一个新数据库,并且该数据库具有与旧数据库相对应的视图。命令被重定向到我自己的应用程序,该应用程序过滤掉所有内容并以某种方式操纵它(以某种方式)以使用新模式。
Diagram of intercepted communication
这是我想要做的一般想法,以避免重写紧密耦合的遗留应用程序。有人问过类似我的问题。
他们讨论了如何从sql dump files or to intercept the communication挖掘命令的方法。
如所讨论here,拦截本身似乎不是一个问题。但我想知道镜子怎么回复。
使用[TCP数据包劫持](https://reverseengineering.stackexchange.com/a/1816)进行端口镜像也是如此
总结一下,我的问题如下: