Декомпиляция apk-файла на андроид

Содержание:

Поддержка и активность проекта

Fernflower

С одной стороны, этот декомпилятор используется в Intellij IDEA, что гарантирует жизнь и поддержку этого проекта.

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

Если судить по репозиторию на гитхабе, активного добавления новых фич в этот проект не наблюдается. Последний коммит в случился 3 месяца назад (состояние на осень 2019). Точнее понять, что происходит с этим проектом, трудно, так как кодовая база является частью репозитория Intellij IDEA.

CFR

Код пишется одним человеком, но релизы происходят регулярно (по нескольку раз в год). На все замечания, отправленные мной автору на почту, он ответил в течение нескольких дней и исправил ошибки в течение недели-двух. Только за время написания этой статьи вышел новый релиз (0.147), в котором починена одна из упомянутых ошибок.

Также этот проект относительно быстро развивается, и поддержка новых фич появляется в нем довольно оперативно.

Procyon

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

jadx

Этот декомпилятор постоянно развивается, репозиторий и ишью-трекер на гитхабе очень живые и активные. 20 июня 2019 произошел релиз версии 1.0.0. Новые фичи и поддержка более актуальных версий DVM добавляются.

Automated TeamCity Builds

Our TeamCity servers are continuously generating up-to-date RetDec packages from the latest commit in the branch. These are mostly meant to be used by RetDec developers, contributors, and other people experimenting with the product (e.g. testing if an issue present in the official release still exists in the current ).

You can use these as you wish, but keep in mind that there are no guarantees they will work on your system (especially the Linux version), and that regressions are a possibility. To get a stable RetDec version, either download the latest official pre-built package or build the latest RetDec version tag.

Работа с системными APK

Для того чтобы модифицировать системные приложения необходимо прежде всего необходимо скормить программе APKTOOL системный файл framework -res.apk который находиться в системном разделе Android:

/system/framework/framework -res.apk

Для того чтобы скормить Apktool данный файл необходимо, ввести команду:

apktool if framework -res.apk

Учитывайте что, команду нужно вводить относительно пути расположения, то есть если файл framework -res.apk находиться в папке C:\primer, то команда будет выглядеть следующим обзором:

apktool if С:\primer\framework -res.apk

Также для того чтобы можно было модифицировать системные файлы прошивка должна быть вначале Deodex-ирована.

Теперь как это можно все упросить! (не использовать командную строку)

, данное программа имеет графический интерфейс и очень легкая в использование. Автор данной программы мой хороший друг Никита Коровкин (на данный момент работает в Surfingbird)! за что ему огромное Спасибо!

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.

Source code

Branches

Git source control manager supports multiple code branches. We use two main branches.

  • — for released «stable» versions
  • — for newest changes from developers — «nightly» version is released from this branch

You can switch to branch with following git command:

Ant

If you do not have Netbeans, you can build source code also with Apache Ant.
After installing Ant it is good to put it into your PATH variable.
Open up commandline and navigate to sources directory.
To run application, execute task «run» by entering this command:

To only build, execute build task:

For creating EXE, Installer and ZIP version, there exist Ant tasks «exe»,»installer»,»release». These tasks require additional software installed:

You must configure installation path of these tools in tools.properties file, which could look like this for windows:

Building libraries

There are few libraries which need to be built too. These libraries are placed in «libsrc» directory.

  • FFDec_lib — core of decompilation, SWF parsing, exporting
    This library is built automatically with main project, but can be build also separately with its own Ant script.
  • jpacker — used for compression of JavaScript Canvas scripts (Netbeans/Ant project)
  • jpproxy — proxy part of FFDec (Netbeans/Ant project)
  • jsyntaxpane — code editor (Netbeans/Apache Maven project)
  • LZMA — used for SWF compression (Netbeans/Ant project)
  • nellymoser — used for Nelly Moser sounds decoding (Netbeans/Ant project)
  • Swf2Exe — Stub for «Save to EXE» feature (Delphi 7 Project)
  • ttf — used for TTF font export (Netbeans/Ant project)
  • gnujpdf — used for PDF export (Netbeans/Ant project)

Faster — многофункциональный ускоритель работы программиста 1С и других языков программирования Промо

Программа Faster 9.4 позволяет ускорить процесс работы программиста
(работает в любом текстовом редакторе).
Подсказка при вводе текста на основе ранее введенного текста и настроенных шаблонов.
Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код.
Исправление введенных фраз двойным Shift (с помощью speller.yandex). Переводчик текста. Переворачивает текст случайно набранный на другой раскладке.
Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования.
Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода.
Настройка любых шорткатов под себя с помощью скриптов.
Никаких установок и лицензий, все бесплатно.

1 стартмани

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

Универсальная учетная система с конструктором документов и справочников в режиме 1С: Предприятие

Заголовок статьи звучит фантастично, но это не шутка. Занимаясь внедрениями, я часто сталкивался с ситуацией, когда надо было к типовой конфе приделать простенький модуль учета чего-нибудь, не специфичного для самой конфы. Например в УТ учет материалов в эксплуатации. Модуль обычно состоял из пары справочников (2-3), 3-х документов и регистра или пары регистров. Однажды подобные пристройки понадобились одновременно на 3 проектах. Скучно делать одинаковую работу, и я подумал, а что, если сделать универсальный инструмент, в котором пользователь сам сможет нарисовать себе справочники, реквизиты к ним, документы и движения. Т.е. конструктор полноценных документов в пользовательском режиме. Это оказалось не так сложно — все дело в подходящей архитектуре данных.

1 стартмани

Как декомпилировать 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?

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

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

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

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

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

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

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

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

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

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

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

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

Известные ограничения

Требуется режим прерывания выполнения

Создание исходного кода с помощью декомпиляции возможно только в том случае, если отладчик находится в режиме прерывания выполнения и приложение приостановлено. Например, Visual Studio переходит в режим прерывания, попадая в точку останова или в исключение. Вы можете легко активировать прерывание выполнения Visual Studio при следующем запуске кода с помощью команды Прервать все ().

Ограничения декомпиляции

Создание исходного кода из промежуточного языка (IL), используемого в сборках .NET, имеет некоторые внутренние ограничения. Поэтому созданный исходный код не выглядит в точности как оригинальный исходный код. Большая часть различий сосредоточена в тех местах, где информация в оригинальном исходном коде не нужна во время выполнения. Например, во время выполнения не нужна такая информация, как пробелы, комментарии и имена локальных переменных. Рекомендуется использовать созданный исходный код, чтобы понять, как выполняется программа, а не в качестве замены оригинального исходного кода.

Отладка оптимизированных сборок или сборок выпуска

При отладке кода, декомпилированного из сборки, которая была скомпилирована с использованием оптимизаций компилятора, вы можете столкнуться со следующими проблемами:

  • точки останова могут не всегда быть привязаны к соответствующим исходным расположениям;
  • при пошаговом выполнении шаг может не всегда переходить в правильное место;
  • имена локальных переменных могут быть неточными;
  • некоторые переменные могут быть недоступны для оценки.

Дополнительные сведения можно найти в описании проблемы GitHub Интеграция ICSharpCode.Decompiler с отладчиком VS.

Надежность декомпиляции

Относительно небольшой процент попыток декомпиляции может привести к сбою. Это происходит из-за ошибки пустой ссылки точки последовательности в ILSpy. Мы устранили этот сбой путем перехвата таких проблем и корректного завершения попытки декомпиляции.

Дополнительные сведения можно найти в описании проблемы GitHub Интеграция ICSharpCode.Decompiler с отладчиком VS.

Ограничения при работе с асинхронным кодом

Результаты декомпиляции модулей с шаблонами кода async/await могут быть неполными или неудачными в целом. Шаблоны кода async/await и машины состояния yield state-machine в ILSpy реализованы только частично.

Дополнительные сведения можно найти в описании проблемы GitHub Состояние генератора PDB.

Только мой код

Параметры режима Только мой код (JMC) позволяют Visual Studio выполнять шаг с обходом системы, платформы, библиотеки и других вызовов непользовательского кода. Во время сеанса отладки в окне Модули отображаются модули кода, которые отладчик воспринимает как «Мой код» (т. е. пользовательский код).

При декомпиляции оптимизированных модулей или модулей выпуска создается непользовательский код. Если отладчик прерывается в декомпилированном непользовательском коде, появляется окно Отсутствует источник. Чтобы отключить режим «Только мой код», перейдите в раздел Инструменты > Параметры (или Отладка > Параметры) > Отладка > Общие и снимите флажок Включить только мой код. .

Извлеченный исходный код

Исходный код, извлеченный из сборки, имеет следующие ограничения.

  • Имена и расположение созданных файлов нельзя настроить.
  • Файлы являются временными и будут удалены Visual Studio.
  • Файлы помещаются в одну папку без использования какой-либо иерархии, которая была в оригинальных исходных файлах.
  • Имя каждого файла содержит хэш контрольной суммы файла.

Создается только код C#

При декомпиляции создаются только файлы исходного кода на C#. Возможность создавать файлы на каком-либо другом языке отсутствует.

Decompile .NET assemblies to C# or IL

dotPeek can decompile any .NET assemblies into equivalent C# code and optionally show the underlying IL code.

Libraries, executables and more

dotPeek can work with a variety of formats, such as libraries (.dll),
executables (.exe), and metadata files (.winmd).

dotPeek can also decompile .baml files, enabling you to reconstruct XAML UI
definitions.

In addition to traditional assemblies and executables, you can have dotPeek open archives
(.zip, .vsix, or
.nupkg) and folders. You can also find and load
NuGet packages (and their dependencies) from any online package source, or load
packages listed in a packages.config file in your Visual Studio project.

View source code if available

Decompiled code is better than nothing but sometimes you can match an assembly to its source code, so why not take advantage of this? dotPeek can
identify local source code based on PDB files, or
fetch source code from source servers such as
Microsoft Reference Source Center or
SymbolSource.org. Moreover, dotPeek can generate PDB files.

Use the navigation mode drop-down in the menu bar to choose whether you only want dotPeek to decompile assemblies, or try find source code if possible.

Show or hide compiler-generated code

You can choose to show certain compiler transformations, thus making code structure that dotPeek displays very similar to what the compiler turns it to. This helps see how compiler deals with
lambdas, closures, and auto-properties, among other things.

Explore running processes

The Process Explorer window shows the list of all currently running processes and allows exploring their
modules and decompiling those of them that are .NET assemblies. You can choose to show or hide native processes and modules, or turn on process hierarchy view.

Filter the list to find a module or process that you’re looking for, and then add its assemblies to
Assembly Explorer for further investigation.

View IL code in a separate view

Whenever you want to dive deeper than source code, you can navigate to IL code from any point
in decompiled C#.

The easiest way to do this is to show IL code in a separate tool window that is synchronized with the main code
viewer.

dotPeek can display IL code both for decompiled code and for source code reproduced from
symbol files.

Alternatively, you can opt to show IL code as comments to decompiled C# code, which effectively merges
its default text viewer and the normally separate
IL Viewer window, all in one view.

Продолжение анализа

Далее начинается более сложный анализ:

  • Пройтись по всем возможным ветвям выполнения, на каждом шаге сохраняя выражения для значений регистров и флагов сравнений, транслировать инструкции в выражения, а условия EQ/NE/… — в выражения сравнений. Наибольшая проблема здесь — циклы.
  • Отобразить ветвления либо на if’ы, либо на циклы, либо, на крайний случай, на goto («кривые» конструкции).
  • Можно выделять ещё не выделенные функции — ими можно сделать всё, на что (ещё?) не найдены BL-переходы, но что оканчивается записью LR в PC (BX LR / MOV PC, LR / LDM …), а начинается с инструкции, к которой нет перехода с предыдущей. То есть когда предыдущая — либо данные (не инструкция), либо когда она содержит безусловный переход, обходящий следующую инструкцию. NOP’ы между предыдущей и началом функции не учитывать.
  • Можно выделять дальние вызовы (long call) функции — то есть, вызовы, в которых адрес функции сначала грузится в регистр, а потом вызывается из регистра; это несложно, потому что сложных выражений отслеживать не надо, в качестве адреса используется константа.
  • Можно осилить даже часть непрямых вызовов функций (по хз откуда взятому адресу).
  • Найти все ASCII-строки в бинарнике, и подставить в обращения к ним.

Обработка конкретных фич языка

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

Краткое резюме этого параграфа показано в таблице ниже. При этом надо не забывать, что результаты, показанные jadx, не вполне релевантны. Для jadx в следующей секции проведен отдельный разбор, в котором в качестве подопытного взят Android-проект.

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

for-each

Fernflower всегда раскрывает конструкции через итераторы. Причем делает он это не вполне корректно.

Например, здесь засоряет внешнюю область видимости, из-за чего может происходить переопределение переменной. К тому же, у итератора не указан параметр типа, что приводит к в четвертой строке:

Тернарный оператор при индексации массива

Стандартная и очень неприятная ошибка Procyon’а. Разобраться, что хотел сказать автор, не имея исходного кода под рукой, — задача не очень тривиальная, особенно в более сложных случаях:

Статическое поле в интерфейсе

Загадочная ошибка, воспроизводящаяся только при использовании Procyon. Атрибут , указанный вместо в определении , порождает ошибку:

Создание exe файла с помощью PyInstaller

PyInstaller собирает в один пакет Python-приложение и все необходимые ему библиотеки следующим образом:

  1. Считывает файл скрипта.
  2. Анализирует код для выявления всех зависимостей, необходимых для работы.
  3. spec, который содержит название скрипта, библиотеки-зависимости, любые файлы, включая те параметры, которые были переданы в команду PyInstaller.
  4. Собирает копии всех библиотек и файлов вместе с активным интерпретатором Python.
  5. Создает папку BUILD в папке со скриптом и записывает логи вместе с рабочими файлами в BUILD.
  6. Создает папку DIST в папке со скриптом, если она еще не существует.
  7. Записывает все необходимые файлы вместе со скриптом или в одну папку, или в один исполняемый файл.

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

Возьмем в качестве примера простейший c названием simple.py, который содержит такой код.

Копировать

Создадим один исполняемый файл. В командной строке введите:

После завершения установки будет две папки, BUILD и DIST, а также новый файл с расширением .spec. Spec-файл будет называться так же, как и файл скрипта.

Python создает каталог распространения, который содержит основной исполняемый файл, а также все динамические библиотеки.

Вот что произойдет после запуска файла.

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

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

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

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

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

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

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).
Добавить комментарий

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

Adblock
detector