Отладка JVM

Discussion in 'WASM.ZEN' started by Mika0x65, Mar 2, 2009.

  1. Mika0x65

    Mika0x65 New Member

    Blog Posts:
    0
    Мое почтение всем.

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

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

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

    scf Member

    Blog Posts:
    0
    почитай про JNI
     
  3. bsnake

    bsnake New Member

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

    Mika0x65 New Member

    Blog Posts:
    0
    scf
    Насчет JNI спасибо, но хотелось с помощью отладичка получить общую картину.

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

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