我有一个基于Java的TCP客户端与我的生产服务器对话,我正在重写。客户端有服务器的IP&端口硬编码。我希望能够做的只是将客户端中的IP地址更改为127.0.0.1&我可以在我的开发箱上使用相同的端口号。这是擦,我没有所有的源代码,所以我不能只重新编译它。写这篇文章的人已经在这里工作了大约四年,虽然我有他的硬盘驱动器,但我还是找不到编译的循环返回客户端(即使我找到了部分源代码),甚至还没有生产客户端的源代码。我怀疑他在网络驱动器上编写了他的代码,并且在这几年中它已经丢失了。
我有什么方法可以反编译客户端并使用该更改重新编译吗?十六进制或二进制编辑(我也没有技巧,我刚看到它完成了)?也许WinRAR,因为我的理解是.jar文件只是压缩文件?或者,是否有某种方法可以从客户端捕获传出的TCP流量&将它重新路由到我的开发箱?我无法取下生产服务器进行测试,如果没有修改后的客户端,将很难确保我正在模拟生产服务器对客户端的响应。
我找到了这篇SO文章:Decompile & recompile single file from jar但是我不明白反汇编和&反编译,但我找到了那里提到的实用程序JD。
答案 0 :(得分:4)
您找到的java反编译器(http://java.decompiler.free.fr/)将获取您编译的jar文件并创建java源文件。然后,您必须编辑源文件以进行所需的更改并重新编译。
我建议通过命令行配置主机和端口以避免再次出现此问题。
答案 1 :(得分:2)
将jar复制到系统中并解压缩。然后使用像jad这样的工具来反编译你正在寻找的类并进行更改。您应该能够编译它,因为编译所需的jar是运行客户端所需的jar文件