第三方库(JAR)在调试模式下不起作用(Java)

时间:2018-04-08 08:57:42

标签: java debugging jvm jvm-hotspot

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

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

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

问题:

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

1 个答案:

答案 0 :(得分:3)

  

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

有很多方法,例如:

  

How to find out if "debug mode" is enabled

但肯定不可能收集完整的可能性清单。

  

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

您是否需要找到可调试版本(可能从图书馆的开发者处获得额外费用?)或克服保护。

一个人 - 我知道谁是谁 - 例如,我会首先尝试反汇编库,以了解它是如何实际受到保护的。如果拆卸成功,那么甚至可以取消保护。