2013-12-02 2 views
0

У меня есть программа декомпилятора java jd-gui.exe, которая декомпилирует файлы jar/class, она отлично работает, но у меня есть маршалированный объект внутри файла jar, который jd-gui.exe не может его понять.decompile marshaled java object

вопрос в том, можно ли декомпилировать маршалинский объект java ?! Я имею в виду unmarshal объект в файл класса, а затем декомпилировать его.

благодарит заранее.

EDIT: выстраивали объект своего рода сериализовать объект

+1

Когда вы говорите, маршаллированный объект java, что вы имеете в виду? Маршаллированный объект (= JAXB?), Сериализованный объект (= Java Serialization API), несколько «специальный» файл класса? Я имею в виду без какой-либо конкретной информации, это чертовски сложно дать хороший ответ. – Matthias

ответ

1

Я полагаю, что когда вы говорите о выстроил объектов, вы имеете в виду объекты, которые были сериализованы с использованием подсистемы сериализации объектов Java.

Сериализация содержит состояние объекта (ов) вместе с их сигнатурами типа. Он не включает байт-коды для методов объектов. Поэтому ответ на ваш вопрос заключается в том, что это невозможно ... если у вас нет байт-кодов в другом месте JAR-файла.


FWIW - Я не знаю ни схемы сериализации для Java, в которой байткоды заделаны в последовательной форме. Таким образом, вышеупомянутый ответ, вероятно, применяется в общем случае.

+0

* Вы не знаете какой-либо схемы сериализации Java с этой функцией, поэтому их не может быть? Интересная точка зрения. Кстати, вопрос в том, что RMI и RMI * * могут загружать байт-код через сеть. Он не встроен в сериализованные данные, но никто не говорит, что внедрение является единственным способом его достижения. – Holger

+0

@ Хольгер - я не говорил, что быть не может. Повторите мой ответ. («Общий случай» для реализации сериализации, кроме тех, которые были написаны, чтобы опровергнуть, что это невозможно ... «люди не согласятся с форматом, загруженным встроенными байт-кодами!). Я знаю о RMI и его способности к стороне -load-код. Но мое чтение заключается в том, что вопрос конкретно касается случая, когда код >> является << встроенным. –

+0

Я не вижу, что вопрос относится ко всему встроенному байтовому коду. Не совсем понятно, что думает вопрос, но для меня это выглядит просто как ситуация, когда классы не находятся в обычном пути класса, который * возможен * с RMI. Конечно, все еще возможно, что вопроситель не может рассказать поток сериализованных объектов и класс байтов классов. Но в любом случае, хотя можно было бы дать совет относительно ситуации, которую я имею в виду, я никогда не даю совет по использованию декомпиляторов специально для пользователей с низкой репутацией, поэтому мы можем закончить обсуждение здесь ... – Holger

Смежные вопросы