【问题标题】:How to check what is inside a JAR archive that you are running?如何检查您正在运行的 JAR 存档中的内容?
【发布时间】:2017-09-18 17:03:40
【问题描述】:

我似乎只能得到 jar 的文件夹,而不是里面的内容。

基本上有人破解了我的程序,他们将一个文件放入程序加载的 JAR 中,我想在 API 中添加一些偷偷摸摸的检查,用于检查里面是否有额外的文件并禁用产品如果是这样的话。

那么 - 我如何检查 JAR 文件中的任何 .json 或 .file 文件?我看了这个Viewing contents of a .jar file,但没有得到我想要的答案。

谢谢。

【问题讨论】:

  • 您链接的帖子中的答案将与您在此处获得的答案相同:1. 使用jar tf your-jar 2. 使用 7-Zip 或 WinRar 等软件提取 3. 使用反编译器,例如贾德。您还可以在运行时使用JarFile 加载内容,并且您可以混淆您的代码以阻止黑客。
  • 老实说,这就是 JAR 签名和校验和的用途

标签: java


【解决方案1】:

为了验证 jar 是否未更改,对 jar 签名或使用 SHA256 之类的校验和更为常见和可靠。

在您的罐子上签名就像一个密封件,如果罐子打开,它就会被破坏。对 jar 进行签名需要花费金钱和时间,因此它通常仅用于生产型软件。

将根据所有二进制和其他内容计算校验和。如果内容发生变化,校验和也会发生变化。使用 SHA256 校验和将导致几乎不可能出现重复的哈希,尤其是在工作代码中。

【讨论】:

  • 我没有在上面花钱 - 我如何手动检查 jar 中是否有额外的文件?我还打算编辑API并插入这段代码,因为它是一个很大的API,没有人会知道它隐藏在里面。
  • 在您关心的文件夹上内部运行校验和。如果校验和改变,则内容改变(即添加/删除)。
猜你喜欢
  • 1970-01-01
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-16
  • 2012-07-07
  • 2012-09-29
  • 2012-08-08
  • 1970-01-01
相关资源
最近更新 更多