我有一个基于 Java 的 TCP 客户端,它与我们正在重写的生产服务器通信。客户端对服务器的 IP 和端口进行了硬编码。我想要做的只是将客户端中的 IP 地址更改为 127.0.0.1 并且我可以在我的开发盒上使用相同的端口号。问题就在这里,我没有所有的源代码,所以我不能重新编译它。写它的人已经有四年没在这里工作了,虽然我有他的硬盘,但我一直无法找到已编译的环回客户端(即使我找到了它的部分源代码),甚至所有的生产客户端的源代码。我怀疑他在网络驱动器上编写了他的代码,并且在这些年中它已经丢失了。
我有什么方法可以反编译客户端并使用该更改重新编译吗?十六进制或二进制编辑(我也没有技能,我刚刚看到它完成了)?也许 WinRAR 因为我的理解是 .jar 文件只是压缩文件?或者,有什么方法可以捕获来自客户端的传出 TCP 流量并将其重新路由到我的开发盒?我无法关闭生产服务器进行测试,并且如果没有修改过的客户端,将很难确保我正在模拟生产服务器对客户端的响应。
我找到了这篇 SO 文章:Decompile & recompile single file from jar,但是我不明白反汇编和反编译之间的区别,但我找到了那里提到的实用程序 JD。