Сторонняя библиотека (JAR) не работает в режиме отладки (Java)

avatar
benchpresser
8 апреля 2018 в 08:57
227
1
1

В моем проекте Java я использую стороннюю библиотеку (jar) и вызываю функцию этой библиотеки при запуске.

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

Использовать eclipse для разработки. Вопрос в том, когда я запускаю проект (вызов основного) в режиме RUN, я получаю хэндл. Но когда я звоню в режиме DEBUG (без каких-либо точек останова), я не получаю дескриптор. (Настройки запуска/отладки такие же, без дополнительных параметров ВМ или программы)

Вопрос:

  • Как библиотека может определить, что она вызывается в режиме отладки и предотвратить возврат ручки?
  • Как я могу отлаживать этот проект (мне нужно немного отладки)
Источник
lexicore
8 апреля 2018 в 09:29
0

Назовите библиотеку?

benchpresser
10 апреля 2018 в 06:15
0

Это коммерческая библиотека для защиты лицензии и программного ключа, я не думаю, что это хорошая идея, чтобы назвать ее здесь. Извиняюсь.

benchpresser
10 апреля 2018 в 06:17
0

Я нашел ответ здесь coderhelper.com/questions/3776204/…

lexicore
10 апреля 2018 в 06:33
0

Я сослался на этот вопрос в своем ответе.

benchpresser
10 апреля 2018 в 10:36
0

извините, я этого не видел. хорошо, помечено как полезный и принятый ответ.

Ответы (1)

avatar
lexicore
8 апреля 2018 в 09:29
3

Как библиотека может определить, что она вызывается в режиме отладки, и предотвратить возврат дескриптора?

Есть способы, например:

Как узнать, включен ли "режим отладки"

Но, безусловно, невозможно составить полный список возможностей.

Как я могу отладить этот проект (мне нужна отладка)

Вам нужно либо найти отлаживаемую версию (возможно, доступную у разработчика библиотеки за дополнительную плату?), либо преодолеть защиту.

Один-парень-я-знаю-кто-не-я, например, сначала попытался бы разобрать библиотеку, чтобы узнать, как она на самом деле защищена. Если разборка пройдет успешно, возможно, даже удастся снять защиту.