【问题标题】:Obtaining a .jar from a .exe从 .exe 获取 .jar
【发布时间】:2012-10-06 00:11:08
【问题描述】:

我目前正在处理的是一个包含可执行 .jar 的 Windows .exe。我尝试通过各种 .exe 和 .jar 反编译器运行它,但无济于事。我的问题是,我将如何获取 .jar 在被塞入 .exe 之前的状态?

请注意,我不是试图将程序从 C++ 或 C# 转换为 java,而是将 .jar 打包成 .exe 转换回原始 .jar。

【问题讨论】:

  • 如何将它放入 exe 中?通过使用什么工具?在不知道这一点的情况下,这可能是一个无法回答的问题。 OTOH,即使您知道这一点,也可能无法回答。
  • 解决方案首先取决于它是如何被包裹在 exe 文件中的。如果你不知道,那么你最好的选择是资源黑客工具,angusj.com/resourcehacker(这个不再维护,但它曾经为我工作)
  • 您可以尝试使用 7Zip 之类的工具来解压缩文件,但不能保证它会起作用
  • @HovercraftFullOfEels 不幸的是我不知道这个罐子是怎么包装的。
  • 您应该避免所有这些繁重的工作,请向为您提供“.exe”的人员/公司授予您对 JAR 或源代码的访问权限。

标签: java windows jar exe decompiler


【解决方案1】:

在不知道它是如何打包成 exe 的任何信息的情况下,一种方法是替换 rt.jar 中的核心 ClassLoader 并将数据写入其 defineClass 方法中的文件。这样,每当加载类时,它们都会被写入相应的文件中。

请注意,这是一个 hack,并且有很多陷阱。举个例子,它不会在 jar 文件中包含其他数据,例如资源。最好的办法是了解它是如何像 @HovercraftFullOfEels 提到的那样打包的。

OpenJDK java.lang.ClassLoader source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2021-09-16
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多