к примеру, браузер получает локальный IP вызовом определенных ява-функций, по теории это переходники на системные либы(wsock32,iphlpapi). или же ява напрямую общается с девайсом DeviceIoControl? вообщем,возможен ли перехват java? если установить хуки на сист. либы?
пробовал ставить хук на GetIpAddrTable результата не дало. есть какие-нить мысли? можт кто сталкивался?
Java ходит во внешний мир через JNI. Требований JNI к коду я не знаю, т.к. видел только "изнутри" как это работает (мне не JNI, а по другим делам надо было). Обычно переходником служит динамическая библиотека, имена экспортов которой соответствуют полному имени package'а. В общем, это приходится искать вручную, хотя, думаю, найти можно проще по строкам ".dll", "jni" в .class файлах. Далее соединяемся с процессом javaw в WinDbg (Olly1.X не тянет, 2.X не проверял), ставим точки останова и вперед .
valterg, все просто, ольгой выяснил, что функции которые юзает java находяться в net.dll (либа из папки ..\java\bin\) есесно это переходники (в моем случаи) на GetIfTable,GetIpAddrTable,GetAdaptersInfo и еще нескольких (из iphlpapi.dll) Проанализировал далее, выяснено что они общаются с девайсом \Device\Tcp, \Device\Afd, собсно чтобы нe замарачиватся, хукнул ZwDeviceIoControlFile (IoControlCode=IOCTL_TCP_QUERY_INFORMATION_EX; toi_type = INFO_TYPE_PROVIDER; toi_entity=CL_NL_ENTITY; toi_id=IP_MIB_ADDRTABLE_ENTRY_ID or IP_MIB_ARPTABLE_ENTRY_ID)