在我的Java项目中,我使用第三方库(jar(并在开始时调用该库的函数。
public static void main(String args[]) {
long handle = Library.method(params);
if (0 == handle) {
// error
}
}
使用日食进行开发。问题是,当我在 RUN 模式下运行项目(调用主(时,我得到了句柄。但是当我使用 DEBUG 模式(未附加任何断点(调用时,我没有得到句柄。(运行/调试设置相同,没有其他 VM 或程序参数(
问题:
- 库如何检测它在调试模式下被调用,以及阻止归还手柄?
- 如何调试此项目(我需要一些调试(
库如何检测它在调试模式下被调用并阻止返回句柄?
有几种方法,例如:
如何确定是否启用了"调试模式">
但肯定不可能汇集完整的可能性列表。
如何调试此项目(我需要一些调试(
您要么需要找到一个可调试的版本(也许可以从库的开发人员那里获得额外费用?(要么克服保护。
例如,一个人知道谁不是我,首先会尝试拆卸库,以了解它实际上是如何受到保护的。如果拆卸成功,那么甚至可以移除保护。