在没有源的情况下更改 .jar 文件?

2024-03-22

我有一个基于 Java 的 TCP 客户端,它与我们的生产服务器通信,我正在重写它。客户端对服务器的 IP 和端口进行硬编码。我想要做的就是将客户端中的 IP 地址更改为 127.0.0.1 & 我可以在我的开发盒上使用相同的端口号。问题是,我没有所有源代码,所以我不能重新编译它。写它的人已经在这里工作了大约四年,虽然我有他的硬盘,但我一直无法找到编译好的环回客户端(即使我找到了它的部分源代码),甚至找不到所有的生产客户端的源代码。我怀疑他在网络驱动器上编写了代码,但这些年来它已经丢失了。

有什么方法可以让我反编译客户端并重新编译该更改吗?十六进制或二进制编辑(我都没有技能,我刚刚看到它完成了)?也许是 WinRAR,因为我的理解是 .jar 文件只是压缩文件?或者,是否有某种方法可以捕获来自客户端的传出 TCP 流量并将其重新路由到我的开发盒?我无法关闭生产服务器进行测试,并且如果没有修改的客户端,就很难确保我正在模拟生产服务器对客户端的响应。

我发现这篇文章:从 jar 反编译并重新编译单个文件 https://stackoverflow.com/questions/9583370/decompile-recompile-single-file-from-jar,但是我不明白反汇编和反编译之间的区别,但我找到了那里提到的实用程序JD。


你找到的java反编译器(http://java.decompiler.free.fr/ http://java.decompiler.free.fr/)将获取编译后的 jar 文件并创建 java 源文件。然后,您必须编辑源文件以进行所需的更改并重新编译。

我建议通过命令行配置主机和端口,以避免再次出现此问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在没有源的情况下更改 .jar 文件? 的相关文章

随机推荐

  • 在 C# 中向 DateTime 添加时间

    我有一个日历和一个包含一天中某个时间的文本框 我想创建一个由两者组合而成的日期时间 我知道我可以通过查看小时和分钟然后将它们添加到日历 DateTime 中来做到这一点 但这看起来相当混乱 有没有更好的办法 您可以使用日期时间 添加 htt
  • jquery中如何定义变量

    我想知道如何在 jQuery 中声明变量 我当前使用的代码是 name anirudha alert name 该代码工作正常 但如果我将其写为 name document myForm txtname value alert name 那
  • HttpListener 的使用

    我有以下 HTTP 侦听器方法 深受 MSDN 使用 HttpListener 类的示例的启发 我对编程相当陌生 我不知道从这里到哪里从我的 Main 初始化它 有什么建议么 public static void HttpListener
  • 使用 typegoose 将项目添加到 Ref 数组

    我延长了 2 个课程Typegoose Item and Player In the Player我的班级有一个数组Ref
  • 为 VS2022 构建扩展时出现有关 ProductArchitecture 的错误 VSSDK1311

    我正在构建 VSIX 项目并看到以下错误消息 VSSDK1311 vsixmanifest 必须包含 PackageManifest Installation InstallTarget ProductArchitecture 的值 我需要
  • 传递参数以包含在 Liquid 模板中

    在我的 Jekyll 支持的网站上 我有一个包含函数 可以执行类似功能的操作 但我不知道如何正确传递它的参数 当我使用 include 像这样传递参数 include function liquid foo baz quux 它只是传递文字
  • 从网络驱动器启动时,Structuremap 不加载注册表

    我是 Structuremap 的热心 新 用户 但我在加载注册表时遇到问题 当我从本地驱动器启动应用程序时 应用程序中的所有注册表都用于解析类型 我通过 ObjectFactory WhatDoIHave 验证了这一点 但是 当我从共享启
  • 如何隐藏 VsCode 滚动条?

    VsCode 中似乎曾经有一个隐藏滚动条的设置 editor scrollbar vertical hidden 但是 这似乎已被弃用 现在我收到错误Unknown configuration setting VsCode 中有隐藏滚动条的
  • LibGit2Sharp CheckoutPaths()

    我做了一次提交 49916 现在我想将提交的一个文件检出到工作目录中 该文件名为 NEW txt 如果我输入 Git 签出 49916 NEW txt 进入 Git Bash 后 它会创建 NEW txt 文件 其内容位于我的工作目录中 但
  • 非重叠串行端口挂在 CloseHandle 处

    我编写了一个自己开发的串行端口类 为了简单起见 我使用了阻塞 同步 不重叠 我浏览了所有 MSDN 文档 这对我来说很困难 我在从端口打开 传输或接收字节方面没有任何问题 所有操作都是同步并且不存在线程复杂性 function TSeria
  • Crystal Reports 11 - 添加无用的空白页,仅添加有数据的组标题

    我遇到了一个在使用 Crystal Reports 之前从未见过的奇怪问题 我为一家银行制作了一份复杂的 PDF 月度报告 生成了 200 多页 这些规范花了几个月的时间与客户进行调整 但现在它工作得很好 显示了所有应该显示的数据 所有数据
  • Kubernetes API 服务器日志中的 TLS 握手错误

    我正在研究一个AWS 中 Kubernetes 集群的 terraform 配置 https github com ericandrewlewis kubernetes via terraform 我已经让集群运行起来了 我可以通过 kub
  • 是否有通用方法将约束应用于类型应用程序?

    A comment https stackoverflow com questions 41111715 making a constraint of maybe a where eq a 41111825 noredirect 1 com
  • 不使用循环操作数组

    学习 VBA for Excel 我尝试在不使用循环的情况下完成尽可能多的编码 作为练习 将两个相邻范围的数字相乘 我想出了这个 Sub multiply range Dim a b c As Range Set a Range a1 a5
  • Polly 使用不同的请求主体重试请求

    我以前从未使用过 Polly 并且不确定这对 Polly 来说是否是一个好的场景 我正在调用一个列表为 1000 的端点DTO in the POST身体 现在端点将对每个执行一些验证DTO如果其中任何 DTO 验证失败 则返回 HTTP
  • 使用 WIF 在 .NET Web Farm 中为多个电子商务网站实施 SSO?

    我有一个我认为相当复杂的问题 所以我会尽力在这里阐明它 我正在寻找单点登录 SSO 解决方案 我知道有很多选择 但在我添加了它们需要满足的标准时排除了其中的大多数 以下是标准 1 SSO 必须添加到现有 系统 中 2 现有 系统 由 X 个
  • 谷歌是如何获得地图上邮政编码的轮廓的?

    例如 http g co maps 2dpkj http g co maps 2dpkj有邮政编码区域周围的轮廓 我知道这无法通过 API 获得 但我还可以从哪里获取此数据 例如 KML 格式 这是英国数据 最有可能的Google 与英国地
  • 外部 SQLite 文件内容访问错误

    我有以下代码 它给出了如下运行时错误 为什么 try String myPath DB PATH DB NAME mDB SQLiteDatabase openDatabase myPath null SQLiteDatabase OPEN
  • Push API 和服务器发送事件有什么区别?

    从文档中我可以看出Push API http w3c github io push api and 服务器发送事件 http www html5rocks com en tutorials eventsource basics 两者都是半双
  • 在没有源的情况下更改 .jar 文件?

    我有一个基于 Java 的 TCP 客户端 它与我们的生产服务器通信 我正在重写它 客户端对服务器的 IP 和端口进行硬编码 我想要做的就是将客户端中的 IP 地址更改为 127 0 0 1 我可以在我的开发盒上使用相同的端口号 问题是 我