Декопилировать Java

Java   9 Декабрь 2012  Автор статьи:  

Для декомпиляции программ, написанных на Java, можно применять различные программы, так как я программирую в среде intellij idea ,то я могу посоветовать вам использовать плагин. Но его настройка связана с некоторыми трудностями, так что если вы хотите сразу и быстро декомпилировать код, то тогда следует использовать JD. Это достаточно мощный декомпилятор, он позволяет декомпилировать, как из классов(файлов .class), так и из jar файлов. JD снабжен графической оболочкой, в которой достаточно выбрать файл, который вы хотите декомпилировать:
После этого, вы сможете как просто просматривать исходный код, так и можете заставить Java Decompiler создать папочку, где будут содержаться все исходные коды java приложения, которое вы хотели декомпилировать, после этого в любой среде, в которой вы привыкли программировать, вы сможете создать из них проект. Кроме этого, программа позволяет очень удобно быстро пробежаться по основным классам и методам декомпилированной программы. Понятное дело, что декомпилировать Java class или jar может понадобиться в случае, если вам нужны исходные коды программы. Я использовал данную программу для двух целей: для того, чтобы проверить, а легко ли можно декомпилировать мое приложение и для декомпиляции своих программ, если был утерян последний исходный код, разрабатываемого приложения. Как можно защитить себя от декомпиляции? Тут существует несколько методик:

  • Сделать декомпиляцию невозможной. В случае с java это практически не реально
  • Затруднить работу с декомпилированной программой на столько, чтобы злоумышленник не смог понять назначение методов и классов, и внести существенные изменения в работу программы.

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

Научиться программировать

  • на Delphi

  • на Java

  • на C++