Java

Можно ли скомпилированное Jar приложение обратно разобрать на код?

Можно, если взять кучу декомпиляторов (от 1 до 10 шт.), а также решить вопрос с дизассемблированием (с возможностью сборки обратно) и дебагом (найти сторонние средства для этого, ну или хотя бы стандартный дебаггер jdb, но он убог, а для дизасма-асма применить smali и конвертировать туда-сюда, но это неудобно; гуглить java bytecode viewer, java bytecode editor). Этот вопрос я сам пока не решил в силу того, что маловостребовано - больше на Android, а там по-другому. Если применено JNI, то там еще код на C/C++, поэтому нужна IDA Pro, а в качестве дебаггера либо она же, либо gdb. Кроме того, могут быть нужны всевозможные сетевые снифферы, HEX-редактор.

Тема очень обширна. Предварительно следует вообще изучить РАЗРАБОТКУ на джаве, и как можно лучше, годика так 2. Но все это позволяет:
- изучить и пропатчить локальные моменты в коде Java
- полностью декомпилировать код Java до компилируемого+рабочего состояния
- изучить и пропатчить локальные моменты в коде C++, если он есть
- можно и код C++ полностью декомпилировать, но скорость проходки крайне медленная, а багов много, поэтому если он не совсем маленький, то лучше сделать как-то иначе, может быть не декомпилировать, а дизассемблировать его, работать с асмом, все переименовать и "разлохматить" (чтобы нельзя было идентифицировать происхождение, если вы копируете приложение), и в таком виде собрать обратно.
К*
Клара ***
2 270
Лучший ответ
Еркебулан ... В jar разве бывает dll? dll обычно идёт отдельным файлом.
Можно попытаться декомпилировать при помощи декомпилятора. Список декомпиляторов http://www.javadecompilers.com/

Для подробного ответа загугли:
декомпиляция jar java
Е.
Еркебулан ...
36 282
можно посмотреть байткод:

javap -v hello.class

файл класса может быть любой.
Иван Шумейко
Иван Шумейко
1 090