3

问候。

我正在从事我公司的一个项目。我们有一个由我们的一位老技术人员编写的应用程序 - 他因浏览色情网站工作而被解雇。不幸的是,他随身携带了我们应用程序的源代码,并将我们外部服务器的 IP 地址硬编码到其中。我们最近更改了服务器,并且需要更改应用程序尝试访问我们数据库的位置。我真的不想重新发明轮子,而是重新制作应用程序......

我尝试使用 route 命令,但没有骰子。

route -p [new server] mask 255.255.255.255 [old server] metric 50 if [interface]

我在新盒子的端口 80 上设置了一个临时网络服务器,在机器的浏览器中输入旧 IP 地址,并将上述路由添加到它的表中,它仍然转到旧服务器。

有任何帮助使路由命令起作用,还是可行的替代方案?例如:重定向软件、路由器技巧等。

  • 注意:我们尝试在我们的私有 dns 服务器上使用反向名称查找,但也失败了。
4

5 回答 5

4

由于 IP 地址在二进制文件中是硬编码的,因此您可以使用 grep 获取它。它可能表示为四个字节。然后,您可以使用十六进制编辑器将其替换为新的 IP 地址。

于 2011-05-02T15:37:36.790 回答
2

假设你在路由的某处有一个 iptables 防火墙,你可以使用 DNAT:

iptables -t nat -A PREROUTING -d [old server] -j DNAT --to-destination [new server]

运行它的确切位置无关紧要,只要它看到发往 的数据包[old server]并具有有效的路由[new server],这样它就可以在运行应用程序的主机、任何中间路由器或您的边缘防火墙上。

当然,您总是可以只编辑二进制文件本身内的地址....

于 2011-05-02T15:07:09.267 回答
0

在您的防火墙/路由器中为该公共 IP 设置 NAT,以便它路由到您的新私有 IP。

于 2011-05-02T15:04:01.277 回答
0

您不能像您提到的那样仅将路由添加到新服务器,因为在第一个路由器跃点处,数据包将被路由到旧服务器。

您可以将路由指向本地主机,将旧服务器作为 IP 地址添加到本地接口上,然后编写代理服务器将请求转发到旧服务器。

IMO 的最佳选择是弄清楚如何解压缩二进制文件并对其进行十六进制编辑。你知道它是用什么语言写的吗?或者打电话给你的律师取回源代码。=)

于 2011-05-03T03:46:42.933 回答
-1

使用 hosts 文件将所有对外部 IP 的请求路由到本地 IP:http://en.wikipedia.org/wiki/Hosts_(file)

于 2011-05-02T15:03:54.270 回答