Отладка JVM

Тема в разделе "WASM.ZEN", создана пользователем Mika0x65, 2 мар 2009.

  1. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Мое почтение всем.

    Есть некий framework, построенный на базе eclipse. Все на Java. Есть ключ к нему в виде USB устройства. Без ключа работать не хочет. Устройство использует свой драйвер (естественно, не Java :) ). Хочу отучить framework от этой пагубной привычки. С jvm на уровне отладки дела не имел. Первое, что приходит в голову -- покопаться в jvm на уровне вызовов API. Подозреваю, что общение с внешним миром в виде устройства происходит через DeviceIoControl. Надеялся с помощью сниффинга DeviceIoControl хоть примерно узнать, как framework общается с устройством.

    Проблема в том, что при попытке зацепиться на jvm с помощью Olly все потоки jvm останавливаются. Антиотладки, вроде, нет. Здесь описывается нечто подобное, но WinDbg еще не пробовал (на эту машину не хотел ставить). Кто-нибудь сталкивался с jvm на уровне отладки? Что можно сделать? М.б. стоит как-то по-другому подойти к проблеме? Можно, конечно, покопать само приложение на Java, но учитывая, что я не знаю ее байт-кода, это может занять много врмени. +framework очень большой.

    Заранее благодарен.
     
  2. scf

    scf Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    386
    почитай про JNI
     
  3. bsnake

    bsnake New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    91
    Java декомпилируется на ура. Посмотри например вот это http://java.decompiler.free.fr/
    Конечно код может быть обфуцированный, но и его тоже можно понять.
     
  4. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    scf
    Насчет JNI спасибо, но хотелось с помощью отладичка получить общую картину.

    bsnake
    Декомпилировать, вероятно, придется, но позже. Т.к. framework большой (300 МБ инсталляция, хотя это с ресурсами и прочим), то надо максимально точно вычислить места, которые меня могут интересовать.

    В общем, таки поставил WinDbg и запустил framework под ним. Сейчас все Ок. Пока что выяснил, что jvm использует библиотеку winscard.dll через JNI для работы с картой.