2012-05-04 2 views
3

Моя главная проблема заключается в том, что у меня есть некоторые файлы классов из игры, где я wan't редактировать/изменять ее частиСамый простой способ редактирования/изменить скомпилированный файл класса

Что было бы самым простым способом для достижения этой цели ?

Декомпиляция всего кода и перекомпиляция не является вариантом, если у вас нет декомпилятора, который не вызывает ошибок в исходном коде, поскольку я не хочу тратить время на их исправление.

С наилучшими пожеланиями

+0

Какие декомпиляторы используются у вас? – DaTroop

+0

Вы уверены, что вам разрешено изменять код этой игры? Если да, может быть, существует распределение источника вместо декомпиляции/перекомпиляции? В зависимости от частей, которые вы хотите изменить, вам может понадобиться декомпилировать большую часть игры в любом случае. – Thomas

+0

Я использую jd decompiler –

ответ

7

Раствор может быть использование байт-кода манипуляторов, как ASM или BCEL. Оба они предоставляют API для загрузки файла класса, изменения его части и сохранения. Преимущество ASM состоит в том, чтобы иметь возможность делать это во время выполнения.

+0

Woah - Именно то, что я искал. Спасибо :) –

1

Вы также можете использовать Krakatau disassembler/assembler Я написал. Дисассемблер превращает файл класса в удобочитаемый (хорошо читаемый, если вы все-таки понимаете байт-код) формат, который вы можете редактировать и собирать. Это полезно, если вы хотите вручную просмотреть и отредактировать файлы классов, где писать кучу библиотечных вызовов, а затем компилировать и запускать программу только для использования ASM или BCEL довольно громоздко.

В Krakatau также есть декомпилятор, специально предназначенный для обработки запутанных классов, поэтому он может создавать допустимый исходный код, даже если никакой другой декомпилятор не может. Конечно, если класс запутан, генерируемый источник, вероятно, все еще будет нечитабельным.

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