【问题标题】:Third party library (JAR) does not work in debug mode (Java)第三方库 (JAR) 在调试模式 (Java) 下不起作用
【发布时间】:2018-09-17 20:42:01
【问题描述】:

在我的 java 项目中,我使用第三方库 (jar) 并在启动时调用该库的函数。

public static void main(String args[]) {
   long handle = Library.method(params);
   if (0 == handle) {
      // error
   }
}

使用eclipse进行开发。问题是,当我在 RUN 模式下运行项目(调用主程序)时,我得到了句柄。但是当我使用调试模式(没有附加任何断点)调用时,我没有得到句柄。 (运行/调试设置相同,没有额外的VM或程序参数)

问题:

  • 库如何检测到它是在调试模式下调用的? 防止返回手柄?
  • 如何调试这个项目(我需要 一些调试)

【问题讨论】:

  • 你能命名图书馆吗?
  • 它是一个用于许可证保护和基于软件的加密狗的商业库,我认为在这里命名它不是一个好主意。对不起。
  • 我在这里找到了答案stackoverflow.com/questions/3776204/…
  • 我在回答中提到了这个问题。
  • 对不起,我没看到。好的,标记为有用且已接受的答案。

标签: java debugging jvm jvm-hotspot


【解决方案1】:

库如何检测到它在调试模式下被调用并防止返回句柄?

有办法,比如:

How to find out if "debug mode" is enabled

但肯定不可能汇总完整的可能性列表。

如何调试这个项目(我需要一些调试)

您要么需要找到一个可调试的版本(也许可以从库的开发者那里获得额外费用?)或克服保护。

例如,我知道谁不是我的人会首先尝试反汇编库以了解它实际上是如何受到保护的。如果反汇编成功,那么甚至可以解除保护。

【讨论】:

    猜你喜欢
    • 2018-10-25
    • 2019-01-07
    • 2020-07-02
    • 1970-01-01
    • 2023-03-15
    • 2013-07-10
    • 2011-06-27
    • 1970-01-01
    相关资源
    最近更新 更多