Декомпиляция exe-файлов

Содержание:

Authors

The decompiler was originally written by Jindra Petřík also known as JPEXS.
The application was made in Czech republic.

Developers

  • JPEXS — leader, development of the decompiler, website main admin, github account admin, organization
  • honfika — development of the decompiler
  • Paolo Cancedda — former developer
  • …other pushers on GitHub or Google Code

Translators

  • Jaume Badiella Aguilera — catalan translation
  • Capasha — swedish translation
  • 王晨旭 (Chenxu Wang) — chinese translation
  • focus — russian translation
  • honfika — hungarian translation
  • kalip — italian translation
  • Krock — german translation
  • Laurent LOUVET — french translation
  • MaGiC — portugese translation
  • martinkoza — polish translation
  • Osman ÖZ — turkish translation
  • pepka — ukrainian and dutch translation
  • poxyran — spanish translation
  • realmaster42 — portugese-brasil translation
  • Rtsjx — chinese translation
  • koiru — japanese translation

decompiler

Home / Tools / decompiler

Packages that attempt to reverse a compiled program into source code.

Tool count: 28

Name Version Description Category Website
avaloniailspy 193.0bff746 .NET Decompiler (port of ILSpy) decompiler
beebug 25.cddb375 A tool for checking exploitability. decompiler disassembler reversing
cafebabe 0.1.2 Java bytecode editor & decompiler. decompiler reversing
cfr 150 Another Java decompiler. decompiler
dnspy 6.1.7 .NET debugger and assembly editor. windows decompiler binary reversing
dotpeek 2020.2.1 Free .NET Decompiler and Assembly Browser. windows decompiler binary reversing
fernflower 485.e19aab6 An analytical decompiler for Java. decompiler
ffdec 11.0.0 Open source Flash SWF decompiler and editor. decompiler binary misc
flasm 1.62 Disassembler tool for SWF bytecode reversing decompiler
gadgetinspector 6.ac7832d A byte code analyzer for finding deserialization gadget chains in Java applications. decompiler binary
hopper 4.5.29 Reverse engineering tool that lets you disassemble, decompile and debug your applications. reversing disassembler decompiler binary
iaito 5.2.0 Qt and C++ GUI for radare2 reverse engineering framework reversing decompiler disassembler debugger
jadx 1.2.0 Command line and GUI tools to produce Java source code from Android Dex and APK files decompiler reversing
jd-cli 1.1.0 Command line Java Decompiler. decompiler reversing
jd-gui 1.6.6 A standalone graphical utility that displays Java source codes of .class files. decompiler reversing
jpexs-decompiler 12.0.1 JPEXS Free Flash Decompiler. decompiler
justdecompile 22018 The decompilation engine of JustDecompile. windows decompiler binary reversing
luyten 0.5.4 An Open Source Java Decompiler Gui for Procyon. decompiler misc
pcode2code 4.4de2193 VBA p-code decompiler. decompiler
procyon 0.5.36 A suite of Java metaprogramming tools focused on code generation and analysis. decompiler code-audit
python-uncompyle6 3.7.4 A Python cross-version decompiler. decompiler
r2cutter 1:1.12.0 Qt and C++ GUI for radare2 reverse engineering framework reversing decompiler disassembler debugger
r2ghidra 5.2.0 Deep ghidra decompiler integration for radare2 and r2cutter reversing decompiler disassembler debugger
radare2-cutter 1:1.12.0 Qt and C++ GUI for radare2 reverse engineering framework. decompiler reversing disassembler debugger
recaf 2.18.3.2136.419925d9 Modern Java bytecode editor. decompiler reversing
recstudio 4.1 Cross platform interactive decompiler decompiler reversing
retdec 1919.b2079307 Retargetable machine-code decompiler based on LLVM. decompiler reversing
snowman 0.1.3 A native code to C/C++ decompiler, see the examples of generated code. windows decompiler

Набор подсистем «Умные таблицы»

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия — Simple UI (обновлено 14.11.2019)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

9 best Java Decompiler to be used

There are many best Java Decompiler which provide offline services. You can easily download these applications from the internet in order to get the work done. Here are some of the best java Decompiler on the internet today those are friendly to work with and have a good user interface.

1) JD Project

JD Project is one of the most frequently used best java decompiler offline. It is developed to decompile Java 5 and beyond, which currently goes up to Java 8. It is available for Windows, Mac, and Linux and is the best decompiler for eclipse and IntelliJ as it provides a plugin for each platform separately. This proves to be extremely useful during the debugging process.
It uses the JD- GUI. This is an easy to use and an interactive graphical interface.

2) Cavaj Java Decompiler

This is another great tool for converting bytecodes to Java source code. If you are a Windows user, then Cavaj is the best option available for you out there. It is simple to use and decompiles any given Java class file. One major drawback for this application is that it lacks Syntax Highlighting. It is also not available for Mac and Linux Operating softwares. In short, this is a standalone Windows application that converts bytecodes into class code.

3) DJ Java Decompiler

This is yet another standalone Windows Application. It is available for Windows XP, Windows 2003, Windows Vista, Windows 7, Windows 8, Windows 8.1 and Windows 10. It can easily decompile complex Java applets and binaries to produce accurate source code. There are drag and drop features for smooth working, so you can decompile .class files on your computer’s hard disk or on a network drive that you have connected.

4) JBVD

JBVD stands for Java Bytecode Viewer and Decompiler. It is based on the Javassist open source library. Like the others, this application too is available only for Windows users. It is one of the most powerful bytecode viewer and decompiler. Of course, this program needs Java to be installed on your computer to work JBVD can thus be used both, as a Java viewer and a decompiler.

5) AndroChef Java Decompiler

If you are on the lookout for a Java decompiler to view and analyze bytecode then AndroChef should be your preferred option. It is capable of easily converting Java .class files and applets into Java source code. It is simple and easy to use, however it is only available on the Windows Operating System. With Androchef, you can decompile apk. dex, jar, and java class files.

6) Procyon

It is one of the most popular open source Java decompiler. One of its most amazing features is the ability to deal with Java 8. Procyon can handle all those features which were launched with Java 5 to the latest version to Java. Due to this, Procyon can be used as an alternative where other java versions fail. It can also easily deal with other features such as local classes, annotations, Enum declarations, and Lamdas in Java 8.

7) CFR Decompiler

This is another such decompiler that was developed to deal with the latest features and updates in Java programming. It can easily decompile the latest Java features such as Lamdas and Switch Statement. This means if you are using Java 8, you can be at peace with yourself. The only downside here is that this decompiler is not an open source program. However, it has a command line tool that makes the decompiling process faster and even more efficient.

8) FernFlower

Apart from the decompilers mentioned above, the ones mentioned here are still in nascent stages and are under development. Fernflower is one of those. Fren is an analytical decompiler for Java and has recently been made open sourced. The software renames all the obfuscated symbols and puts them into a JAR file in the end. FrenFlower is used to decompile .class, zip and JAR file extensions.

9) Krakatau

It is an interesting decompiler as it has been written in Python. It is still in the development stage. However, it contains three tools: a decompiler and disassembler for Java class files and an assembler to create class files. However, one major drawback here is that it does not support all Java 8 features.

Conclusion- Which is best Java Decompiler?

If you are looking out for a best Java decompiler then you can try out any of the ones mentioned above. Just download them and try them out. You could share your experience in the comments below and even if you are aware of other amazing decompilers, then you could share those two. I would love to add it to the above list. You can also check out detailed tools section for more content.

Java Decompiler Software
$0

5

Summary

Check these 9 best offline Java decompiler which help you manage the codes and convert it as required. You can download these top Java decompilers and install it on your system.

Значит я могу взять исходники и сделать свою Elma BPM?

— нет этого сделать не получится

  • Почти весь серверный код обфусцирован (преобразован в непонятный вид для человека — без изменения логики для машины)
  • Все модули связаны и подписаны ( ключом шифрования) — один без другого не запустится

Вывод: это делать бессмысленно — вы больше потратите времени чтобы разобраться и собрать свою копию чем сделать заново

— но приложения других разработчиков вы можете повторить, чей код не обфусцирован ( я не призываю так делать)

Украсть не получится — понятно

— тогда может хотя бы взломать активацию (сделать генератор ключей)?

* Забегая вперед —  тоже не получится )

В Elma BPM используется механизм односторонних функций — пара связанных функций

  • одна шифрует в одну сторону
  • другая в обратную

а в наличии только последняя.

  1. Представьте что вы пропустили лист бумаги через шредер (измельчитель бумаги)
  2. И теперь представьте механизм превращающий из мусора лист бумаги без потери информации… (у вас именно такой механизм)
  3. А теперь вам предстоит подобрать нужный шредер — удачи)

— такие функции используют преобразования XOR(исключающий или) — где обратная операция возвращает неоднозначный ответ (например на вход 1, на выход 0 или 1 — неизвестно).

Related Repositories

  • retdec-idaplugin — Embeds RetDec into IDA (Interactive Disassembler) and makes its use much easier.
  • retdec-r2plugin — Embeds RetDec into Radare2 and makes its use much easier.
  • retdec-regression-tests-framework — A framework for writing and running regression tests for RetDec and related tools. This is a must if you plan to contribute to the RetDec project.
  • retdec-regression-tests — A suite of regression tests for RetDec and related tools.
  • retdec-build-system-tests — A suite of tests for RetDec’s build system. This can also serve as a collection of demos on how to use RetDec libraries.
  • vim-syntax-retdecdsm — Vim syntax-highlighting file for the output from the RetDec’s disassembler ( files).

Декомпиляция приложений и её функции

Один из языков программирования, который используется при написании программ для ОС Android – Java. На нём, как правило, пишут программы новички и люди, которые привыкли к его инструментарию. Крупные разработчики используют другие языки, которые дают больше свободы в использовании сторонних библиотек или программных компонентов.

Для того, чтобы написанный код превратился работающее приложение, его нужно скомпилировать встроенным в SDK (Software Development Kit) компилятором. Обратный же процесс, когда из готового APK-файла получается программный код, называется декомпиляцией.

Для чего может понадобиться декомпилировать такие файлы? Есть несколько ситуаций, в которых это пригодится:

  1. Пользователю недостаточно предоставленного функционала и он обладает достаточными знаниями и опытом, чтобы вносить изменения в готовый код.
  2. Посмотреть, как работает определённый компонент программы и приобрести нужный опыт в его реализации при создании собственного продукта.
  3. Определить, используются ли в приложении какие-либо части вредоносного кода.

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

Licenses + Acknowledgments

Application

FFDec Application is licensed with GNU GPL v3, see the license.txt.
It uses modified code of these libraries:

And links also these libraries:

  • Java Native Access — JNA (Registry association, Process memory reading) — LGPL
  • javactivex (Flash Player ActiveX embedding) — LGPLv3
  • flashdebugger library (Debugging ActionScript) — LGPLv3
  • FFDec Library (LGPLv3) — see below

Library

FFDec Library is licensed with GNU LGPL v3, see license.txt for details.
It uses modified code of these libraries:

  • UAB «DKD» NellyMoser ASAO codec (Decoding Nelly Moser sound format) — LGPL

And links also these libraries:

With Flash Decompiler you can

  • Did you lose your original FLAs or Flex project files? Did your computer crash? Actually, it doesn’t matter where your original FLAs now, but it is a great problem if you don’t have them. Actually, the solution is right in front of you. Flash Decompiler by Eltima is able to restore your original source code FLA or Flex so you can edit and alter them in any way you want in the native Flash environment.
  • Unique Edit SWF capabilities of Flash Decompiler let you edit existing sounds, images, colors, gradients, lines, texts and static links even without conversion to FLA or Flex source format. A built-in explorer makes browsing your PC for Flash movies and adding them even for batch decompilation and conversion extremely simple. Intellectual item-by-item preview, user-friendly controls with fully-customizable interface make Flash Decompiler a feature-rich user-friendly environment for professional work.
  • With SWF Decompiler Trillix you can easily export SWF elements to your hard drive: Flash Video to AVI, MPEG, FLV and FLA, save sounds as WAV or MP3, images — as PNG, JPEG and BMP, texts as RTF, TXT and HTML. Flash Decompiler Trillix lets you convert the whole SWF file into FLA, or export certain Flash resources into FLA format. Flash Player EXE files are decompiled the same easy way as common SWF files.

Как декомпилировать EXE-файл

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

Вариант 1: VB Decompiler

Корректно способен провести декомпиляцию EXE-файлов, написанных и скомпилированных через Visual Basic 5.0 и 6.0. Это самая популярная среда разработки программ для Windows. Сама программа полностью бесплатна и занимает на диске всего несколько мегабайт.

  1. В верхней части интерфейса кликните по пункту «Файл» и выберите из контекстного меню вариант «Открыть программу». Вместо этого можно воспользоваться сочетанием клавиш Ctrl+O.
  2. В «Проводнике» отыщите исполняемый файл той программы, декомпиляцию которой вы собираетесь провести. Выделите его и нажмите на кнопку «Открыть», чтобы выполнить загрузку файла в рабочую среду.
  3. Путь до нужного EXE-файла отобразится в строке «Файл». Нажмите на кнопку «Старт», чтобы запустить процедуру декомпиляции.
  4. Программа не оповещает о завершении процедуры декомпиляции. О завершении таковой будет свидетельствовать только надпись «Декомпилировано» в нижней левой части окна.
  5. Для сохранения декомпилированного файла нажмите по кнопке «Файл» в верхнем меню и выберите из выпадающего списка вариант «Сохранить декомпилированный проект». Можете просто воспользоваться сочетанием клавиш Ctrl+S.

Вариант 2: EMS Source Rescuer

Данный декомпилятор корректно работает с файлами, скомпилированными с помощью Delphi и C++ Builder. Работа с другими компиляторами возможна, но официально не поддерживается, поэтому есть риски. Программа распространяется полностью бесплатно.

  1. Запустите EMS Source Rescuer. Его интерфейс представлен в качестве блоков с шагами. На первом шаге вам требуется указать путь до проекта, который будет декомпилирован. Это можно сделать, нажав на кнопку папки в строке «Executable File».
  2. Выберите нужный EXE-файл в окошке «Проводника».
  3. В поле «Project name» пропишите имя декомпилируемого проекта и нажмите «Next».
  4. На следующем шаге потребуется выбрать язык программирования, используемый в выбранном проекте. Это делается в блоке «Output style». Поставив маркер на нужном месте нажмите «Next».
  5. Вы перейдете сразу на 3-й шаг. Здесь будет показан исходный код проекта. Ниже выберите папку, в которую будут сохранены исходные файлы, извлеченные из EXE-файла, и нажмите «Save».

Вариант 3: ReFox

ReFox отлично зарекомендовал себя в декомпиляции проектов, созданных через Visual FoxPro и FoxBASE+. Сама программа носит условно-бесплатный характер использования. Есть демонстрационная версия, использование которой бесплатно, но только определенный период времени.

Инструкция по использованию данной программы выглядит так:

  1. В левую часть интерфейса программы уже встроен обозреватель файлов. Воспользуйтесь им, чтобы найти и открыть нужный EXE-файл. В правой части отображается техническая информация о выбранном элементе.
  2. Кликните правой кнопкой мыши по выбранному файлу. В контекстном меню выберите пункт «Decompile».
  3. Появится окошко, в котором будет указана директория декомпилируемого файла. Если там все верно, то нажмите «Ок» для продолжения операции.
  4. По завершении процесса вы получите соответствующее сообщение. Нажмите там «Ок». Результат можно посмотреть в той папке, которую вы указали во 2 шаге.

Вариант 4: DeDe

Эта программа для декомпиляции не так функциональна и поддерживает только одни язык – Delphi.

  1. Около самого верхнего поля нажмите на кнопку в виде раскрытой папки. Она отвечает за добавление папки.
  2. Выберите в «Проводнике» нужный EXE-файл и нажмите «Открыть».
  3. Чтобы запустить процесс декомпиляции, нажмите на кнопку «Процесс», которая расположена около строки указания проекта.
  4. При успешном завершении вы получите соответствующее сообщение. Нажмите «Ок» или закройте его.
  5. Теперь вам осталось сохранить результаты декомпилирования на компьютере. Переключитесь на вкладку «Project».
  6. Рекомендуется отметить галочками все пункты в блоке «Сохранить Делфи Проект». В строке «Папка проекта» укажите директорию, куда будет выполнено сохранение. Нажмите на кнопку «Сделать файлы», чтобы завершить сохранение.

Представленные декомпиляторы способы выполнить обратное преобразование большинства EXE-файлов, написанных на разных языках программирования. Как видите, в самом процессе, вне зависимости от выбранной программы, нет ничего сложного.

Как пользоваться

Как его использовать на примере ELMA BPM и C#.

  1. Запустите IlSpy.exe (находится в скачанном архиве, предварительно распаковать)
  2. Скопируйте файлы с расширением .dll в отдельную папку
    • файлы .dll серверных частей модулей Elma BPM лежат в папке <Elma>/Web/bin
    • файлы .dll веб частей модулей Elma BPM лежат в папке <Elma>/Web/Modules/<ModuleName>/bin

      в папке веб модуля есть 90% исходного кода в виде файлов .cs

  3. Перенесите содержимое папки в левую часть окна IlSpy
  4. Результат — мы имеем декомпилированный код модулей.

Инструкция:

  1. Вспоминаем где используется нужный нам механизм (на примере texttemplate)
  2. Определяем область поиска и ищем по смыслу нужные примеры в исходниках.

*Внутри Elma BPM два генератора текста — в «базовом» не работают функции для шаблонов. На скриншоте полноценный вариант

Точки расширения системы

— интерфейсы при реализации которых добавляется новый функционал.

Например как добавить новую функцию в генератор Elma BPM — вот статья, а как:

  • Добавить новую функцию в EQL ( например вам нужна функция которая вернет начало текущего года — CurrentYear())
  • Выполнить действие по событию переназначения задачи (например при переназначении процессной задачи (изменении исполнителя) — нужно изменить поле в сущности)

И так далее ( а таких точек расширения десятки а то и сотни) — этого в документации нет.

Служебные механизмы

Следующее с чем сталкиваются это:

— «Elma как то генерирует текст по шаблону — мне нужно то же самое!» (нет не по файлу, именно тексту)

как это сделать база знаний не ответит, за то ответит исходный код:

Особенности работы с базой данных

Изучите как устроены модули, из полезного я так нашел (точнее мне оно очень нужно было):

  • Как правильно создавать и вызвать хранимые процедуры в ELMA BPM
  • Как создавать индексы в базе данных
  • Как вызвать sql скрипт из кода

— последние два пункта — домашнее задание) 

Как используются паттерны в Elma BPM

Иногда приходится разобраться как правильно применить паттерны (также как производитель)

  • Паттерн Unit Of Work
  • Как вызвать отдельный поток (попробуйте найти сами)
  • Как создать пул потоков и воспользоваться сервисами ELMA BPM  (используется в Workflow для исполнения элементов бизнес процесса)
  • Как работает IoC в Elma BPM (используется Autofac, инверсия управления и внедрение зависимостей)

Доработать функционал веб части

Тут даже может не потребоваться декомпилятор, исходный код открыт.

Типичные примеры:

  • Нужен универсальный модуль массового редактирования полей :
  • Нужен универсальный модуль импорта :

Для этого вам нужно

  1. Открыть исходный код веб части модуля Common (работа со справочниками)
  2. Изучить то как устроен контроллер (это из MVC, обычный класс с методами) Catalogs
  3. Скопировать в свой модуль, добавить зависимости
  4. Добавить функционал который требуется ( например импорт справочников, логику придется придумать самостоятельно)

далее пофантазируйте — что еще можно сделать зная «правду»

Методика оптимизации программного кода 1С: проведение документов

Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С.
Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия.
К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

1 стартмани

Licenses + Acknowledgments

Application

FFDec Application is licensed with GNU GPL v3, see the license.txt.
It uses modified code of these libraries:

And links also these libraries:

  • Java Native Access — JNA (Registry association, Process memory reading) — LGPL
  • javactivex (Flash Player ActiveX embedding) — LGPLv3
  • flashdebugger library (Debugging ActionScript) — LGPLv3
  • FFDec Library (LGPLv3) — see below

Library

FFDec Library is licensed with GNU LGPL v3, see license.txt for details.
It uses modified code of these libraries:

  • UAB «DKD» NellyMoser ASAO codec (Decoding Nelly Moser sound format) — LGPL

And links also these libraries:

References

  1. Miecznikowski, Jerome; Hendren, Laurie (2002). «Decompiling Java Bytecode: Problems, Traps and Pitfalls». In R Nigel Horspool. Compiler Construction: 11th International Conference, proceedings / CC 2002. Springer-Verlag. pp. 111–127. ISBN 3-540-43369-4.
  2. Mycroft, Alan (1999). «Type-Based Decompilation». In S. Doaitse Swierstra. Programming languages and systems: 8th European Symposium on Programming Languages and Systems. Springer-Verlag. pp. 208–223. ISBN 3-540-65699-5.
  3. Rowland, Diane (2005). Informtion technology law (3rd ed.). Cavendish. ISBN 1-85941-756-6.
  4. B. Czarnota and R.J. Hart, Legal protection of computer programs in Europe: a guide to the EC directive. 1991, London: Butterworths.

Подсистема «Показатели объектов»

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

2 стартмани

Результаты

По результатам сравнения можно сказать следующее:

CFR

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

Из минусов — проект относительно молодой, разрабатывается одним человеком и, предположительно, довольно сырой (в одном из релизов произошла небольшая регрессия, которую, правда, быстро исправили; еще полгода назад результирующий код мог содержать синтаксические ошибки).

Procyon

Более надежный и стабильный, но почти не развивается. Из-за этого начал отставать от CFR в смысле поддержки фич Java 9 и старше. Также Procyon до сих пор содержит довольно маргинальные баги (обработка некоторых и ).

Fernflower

Не очень подходит для наших задач. Проигрывает конкурентам по скорости и качеству результата (во всяком случае на необфусцированных данных). С другой стороны, Fernflower используется в Intellij IDEA, что дает некоторые гарантии того, что проект не умрет в ближайшем будущем.

jadx

Единственный достойный (если вообще не единственный) декомпилятор, предназначенный для Android. Дает неплохие результаты, но работает нестабильно (иногда декомпилирует байткод в корректный, но абсолютно нечитаемый код). Не поддерживает некоторые фичи языка (например, ) и некоторые инструкции DVM старше 37 версии. Для декомпиляции JAR файлов не подходит в принципе.

P.S. уже после написания этого текста, нашлась вот такая статья: очень подробное сравнение декомпиляторов. Статья формальная, научная, но оценивает декомпиляторы в основном со стороны корректности получающегося кода, не рассматривая такие метрики, как читаемость кода и скорость работы декомпилятора.

Use

Please, ensure that you reading instructions corresponding to the used RetDec version. If unsure, refer to the file in the installation.

Linux

  1. After , install the following packages via your distribution’s package manager:

  2. To decompile a binary file named , run

    For more information, run with .

FreeBSD (Experimental)

  1. There are currently no pre-built «ports» packages for FreeBSD. You will have to build and install the decompiler by yourself. The process is described below.

  2. To decompile a binary file named , run

    For more information, run with .

Use of RetDec libraries

As of RetDec version 4.0 you can easily use various RetDec libraries in your projects — if they are build with CMake. RetDec installation contains all the necessary headers, libraries, and CMake scripts.

If you installed RetDec into a standard installation location of your system (e.g. , ), all you need to do in order to use its components is:

find_package(retdec 4.0 REQUIRED
   COMPONENTS
      <component>
      
)
target_link_libraries(your-project
   PUBLIC
      retdec::<component>
      
)

If you did not install RetDec somewhere where it can be automatically discovered, you need to help CMake find it before is used. There are generally two ways to do it (pick & use only one):

  1. list(APPEND CMAKE_PREFIX_PATH ${RETDEC_INSTALL_DIR})
  2. Set the path to installed RetDec CMake scripts to :

    set(retdec_DIR ${RETDEC_INSTALL_DIR}/share/retdec/cmake)

See the Repository Overview wiki page for the list of available RetDec components, or the retdec-build-system-tests for demos on how to use them.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector