Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Софт JVM Inspector — x64dbg плагин для реверса Java приложений

...............
...............
Статус
Оффлайн
Регистрация
26 Янв 2024
Сообщения
13
Реакции
8
Плагин для x64dbg который превращает дебаггер в полноценный инструмент для анализа Java приложений. Подключаешься к любому Java процессу — видишь классы, методы, байткоды, JIT код, объекты, потоки. Всё через чтение памяти, никакого JVMTI или Attach API.

Работает через VMStructs — экспортируемые символы из jvm.dll которые дают оффсеты всех внутренних структур HotSpot JVM. Тот же механизм что используют Serviceability Agent и JConsole, но без необходимости подключать агент.

Основные фичи

Анализ классов
  • Браузер классов с деревом пакетов (как JD-GUI)​
  • Встроенный декомпилятор + интеграция с CFR​
  • Просмотр байткодов с подсветкой синтаксиса​
  • Просмотр полей, vtable, аннотаций, иерархии наследования​
  • Поддержка Mojang маппингов для Minecraft​

JIT анализ
  • CodeCache viewer — все скомпилированные методы (C1/C2)​
  • nmethod анализатор — entry point, code size, state, compile ID​
  • Interpreter dispatch table — все 256 opcode handler'ов​
  • Деоптимизация трекер — какие методы деоптимизированы и почему​

Хакинг тулкит
  • jvm.bp — брейкпоинт на Java метод по имени​
  • jvm.patch — патч байткодов в рантайме (return true/false/null)​
  • jvm.watch — hardware watchpoint на поле объекта​
  • Realtime field monitor — как Cheat Engine, значения обновляются каждые 200мс​
  • Field freezer — заморозка значения поля​
  • Memory pattern scanner (AOB scan)​

Native Obfuscator анализ
  • Детект native стабов (методы переведённые в нативный код)​
  • DLL маппер — какая DLL обслуживает какие методы​
  • String pool finder — поиск строковых пулов в DLL обфускатора​
  • JNI function tracer — трассировка RegisterNatives, FindClass, CallVoidMethod через JNI function table​
  • Экспорт маппинга в CSV​

Дамп классов
  • Дамп одного класса или ВСЕХ классов из памяти​
  • Экспорт в ZIP архив​
  • Un-rewrite HotSpot байткодов обратно в стандартные​
  • Работает с зашифрованными классами (дамп из runtime, не с диска)​

GUI

5 главных табов в x64dbg:​
  • JVM Classes — браузер классов + 21 подтаб справа (декомпилятор, хуки, строки, поиск, нативы, трейс, хип, потоки, GC, локи, деопты, пакеты, native obf, JNI trace, иерархия, vtable, размеры, диспатч, аннотации, invokedynamic, AOB scan)​
  • JVM CodeCache — таблица JIT методов с цветовой кодировкой C1/C2​
  • JVM Objects — инспектор объектов с freeze/set value​
  • JVM Native — анализ native обфускации​
  • JVM Watch — realtime монитор полей​

Команды

26+ команд:
Код:
Expand Collapse Copy
jvm.classes String          — найти классы
jvm.methods java/lang/String — методы класса
jvm.bp java/lang/String.equals — брейкпоинт на метод
jvm.patch class.method return_true — патч метода
jvm.hooks                   — детект хуков
jvm.strings minecraft       — поиск строк
jvm.search render           — глобальный поиск методов
jvm.watch 0xADDR health     — watchpoint на поле
jvm.profile                 — топ горячих методов
jvm.dump java/lang/String   — дамп класса
jvm.dumpall                 — дамп всех классов в ZIP
jvm.mappings client.txt     — загрузить Mojang маппинги
jvm.loaders                 — дерево ClassLoader'ов
jvm.flags                   — VM константы

Как работает

Плагин читает экспорты из jvm.dll:​
  • gHotSpotVMStructs — таблица всех полей всех структур JVM (тип, имя, оффсет)​
  • gHotSpotVMTypes — размеры всех типов​
  • gHotSpotVMIntConstants — целочисленные константы​

Из этих таблиц получаем оффсеты: ClassLoaderDataGraph._head → ClassLoaderData._klasses → InstanceKlass._methods → Method._constMethod → байткоды. Всё через cross-process memory read, никакого инжекта.

Установка

1. Скачать jvm-inspector.dp64 из релизов
2. Кинуть в папку x64dbg/x64/plugins/
3. Перезапустить x64dbg
4. Аттачнуться к Java процессу

Для Minecraft

Код:
Expand Collapse Copy
jvm.mappings C:\path\to\client.txt
jvm.cfr C:\path\to\cfr.jar

Скачать маппинги для своей версии: https://piston-meta.mojang.com/mc/game/version_manifest_v2.json

Стек технологий
  • C++ / Qt5 (GUI)​
  • x64dbg Plugin SDK​
  • OpenJDK VMStructs​
  • CFR Decompiler (опционально)​
  • ~55 файлов, ~17K строк кода​


GitHub

https://github.com/Share-devn/jvm-inspector

Релиз с бинарником: v1.0.0
 
Ребят, заметил новый тренд — теперь темы на ЮГ выкладывают через ИИ. Никакой ручной верстки, никаких тонн скринов. Закинул запрос в нейронку — получил готовый тред с заголовками, картинками, даже с аргументацией под разные точки зрения. Экономия времени — дикая. Кто пробовал уже? Какую нейросеть лучше юзать под холиварные темы?
 
Ребят, заметил новый тренд — теперь темы на ЮГ выкладывают через ИИ. Никакой ручной верстки, никаких тонн скринов. Закинул запрос в нейронку — получил готовый тред с заголовками, картинками, даже с аргументацией под разные точки зрения. Экономия времени — дикая. Кто пробовал уже? Какую нейросеть лучше юзать под холиварные темы?
Думаю нейросеть под названием "мозги" подойдет.
 
ну вот когда с нейросети перейдешь на мозги скажешь
Ну если ты мой мозг считаешь нейрасетью то это уже проблемы у тебя парень, ты смотри что бы у тебя продящие мимо люди не были нейросетями а твой туалет не был матрицой
 
из твоего же видео
1775527978252.png
мимо пробегал и решил глянуть, модели выше уровня веба я не юзал ни разу, но вид этих иконок можно узнать из тысячи. хуй пойми че там, но видно подобие перплексити, клода и курсора. интересно нахуя тебе ноушен конечно с таким набором, страшно представить что при каком то сценарии ты работаешь в команде.
теперь у меня ноль сомнений касательно этого, человек который без ллм в слове хуй три ошибки сделает никогда не будет писать километровые комментарии на английском руками. вайбкодер на вайбкодере, вайбкодером погоняет; помойка.

Hey there! I am using WhatsApp.
 
из твоего же видео
мимо пробегал и решил глянуть, модели выше уровня веба я не юзал ни разу, но вид этих иконок можно узнать из тысячи. хуй пойми че там, но видно подобие перплексити, клода и курсора. интересно нахуя тебе ноушен конечно с таким набором, страшно представить что при каком то сценарии ты работаешь в команде.
теперь у меня ноль сомнений касательно этого, человек который без ллм в слове хуй три ошибки сделает никогда не будет писать километровые комментарии на английском руками. вайбкодер на вайбкодере, вайбкодером погоняет; помойка.

Hey there! I am using WhatsApp.
Ну если ты судишь человека по закрепленным иконкам на панельке,то мне тебя очень жаль
 
Плагин для x64dbg который превращает дебаггер в полноценный инструмент для анализа Java приложений. Подключаешься к любому Java процессу — видишь классы, методы, байткоды, JIT код, объекты, потоки. Всё через чтение памяти, никакого JVMTI или Attach API.

Работает через VMStructs — экспортируемые символы из jvm.dll которые дают оффсеты всех внутренних структур HotSpot JVM. Тот же механизм что используют Serviceability Agent и JConsole, но без необходимости подключать агент.

Основные фичи

Анализ классов
  • Браузер классов с деревом пакетов (как JD-GUI)​
  • Встроенный декомпилятор + интеграция с CFR​
  • Просмотр байткодов с подсветкой синтаксиса​
  • Просмотр полей, vtable, аннотаций, иерархии наследования​
  • Поддержка Mojang маппингов для Minecraft​

JIT анализ
  • CodeCache viewer — все скомпилированные методы (C1/C2)​
  • nmethod анализатор — entry point, code size, state, compile ID​
  • Interpreter dispatch table — все 256 opcode handler'ов​
  • Деоптимизация трекер — какие методы деоптимизированы и почему​

Хакинг тулкит
  • jvm.bp — брейкпоинт на Java метод по имени​
  • jvm.patch — патч байткодов в рантайме (return true/false/null)​
  • jvm.watch — hardware watchpoint на поле объекта​
  • Realtime field monitor — как Cheat Engine, значения обновляются каждые 200мс​
  • Field freezer — заморозка значения поля​
  • Memory pattern scanner (AOB scan)​

Native Obfuscator анализ
  • Детект native стабов (методы переведённые в нативный код)​
  • DLL маппер — какая DLL обслуживает какие методы​
  • String pool finder — поиск строковых пулов в DLL обфускатора​
  • JNI function tracer — трассировка RegisterNatives, FindClass, CallVoidMethod через JNI function table​
  • Экспорт маппинга в CSV​

Дамп классов
  • Дамп одного класса или ВСЕХ классов из памяти​
  • Экспорт в ZIP архив​
  • Un-rewrite HotSpot байткодов обратно в стандартные​
  • Работает с зашифрованными классами (дамп из runtime, не с диска)​

GUI

5 главных табов в x64dbg:​
  • JVM Classes — браузер классов + 21 подтаб справа (декомпилятор, хуки, строки, поиск, нативы, трейс, хип, потоки, GC, локи, деопты, пакеты, native obf, JNI trace, иерархия, vtable, размеры, диспатч, аннотации, invokedynamic, AOB scan)​
  • JVM CodeCache — таблица JIT методов с цветовой кодировкой C1/C2​
  • JVM Objects — инспектор объектов с freeze/set value​
  • JVM Native — анализ native обфускации​
  • JVM Watch — realtime монитор полей​

Команды

26+ команд:
Код:
Expand Collapse Copy
jvm.classes String          — найти классы
jvm.methods java/lang/String — методы класса
jvm.bp java/lang/String.equals — брейкпоинт на метод
jvm.patch class.method return_true — патч метода
jvm.hooks                   — детект хуков
jvm.strings minecraft       — поиск строк
jvm.search render           — глобальный поиск методов
jvm.watch 0xADDR health     — watchpoint на поле
jvm.profile                 — топ горячих методов
jvm.dump java/lang/String   — дамп класса
jvm.dumpall                 — дамп всех классов в ZIP
jvm.mappings client.txt     — загрузить Mojang маппинги
jvm.loaders                 — дерево ClassLoader'ов
jvm.flags                   — VM константы

Как работает

Плагин читает экспорты из jvm.dll:​
  • gHotSpotVMStructs — таблица всех полей всех структур JVM (тип, имя, оффсет)​
  • gHotSpotVMTypes — размеры всех типов​
  • gHotSpotVMIntConstants — целочисленные константы​

Из этих таблиц получаем оффсеты: ClassLoaderDataGraph._head → ClassLoaderData._klasses → InstanceKlass._methods → Method._constMethod → байткоды. Всё через cross-process memory read, никакого инжекта.

Установка

1. Скачать jvm-inspector.dp64 из релизов
2. Кинуть в папку x64dbg/x64/plugins/
3. Перезапустить x64dbg
4. Аттачнуться к Java процессу

Для Minecraft

Код:
Expand Collapse Copy
jvm.mappings C:\path\to\client.txt
jvm.cfr C:\path\to\cfr.jar

Скачать маппинги для своей версии:
Пожалуйста, авторизуйтесь для просмотра ссылки.


Стек технологий
  • C++ / Qt5 (GUI)​
  • x64dbg Plugin SDK​
  • OpenJDK VMStructs​
  • CFR Decompiler (опционально)​
  • ~55 файлов, ~17K строк кода​


GitHub

Пожалуйста, авторизуйтесь для просмотра ссылки.


Релиз с бинарником:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Очень полезная хуйня +реп
 
Назад
Сверху Снизу