Декомпиляция exe-файлов
Содержание:
- Decompilers
- Full features list
- Подсистема «Показатели объектов»
- With Flash Decompiler you can
- Exec — Выполнение кода, консоль запросов и не только!
- Файл spec
- Introduction
- Создание exe файла с помощью PyInstaller
- Методика оптимизации программного кода 1С: проведение документов
- Как декомпилировать EXE-файл
- Related Repositories
- Как пользоваться
- Faster — многофункциональный ускоритель работы программиста 1С и других языков программирования Промо
- Legality
- Универсальная учетная система с конструктором документов и справочников в режиме 1С: Предприятие
- Групповая проверка доработок
- Добавление файлов с данными и параметр onefile
- Build in Docker
- Source code
- Licenses + Acknowledgments
Decompilers
A decompiler tries to translate an object file into a compilable
source file. There are many decompilers for C# or Java,
but only a few for C/C++. See in particular:
-
Ghidra:
An open-source decompiler developed by the U.S. National Security Agency,
is an advanced interactive environment (seems inspired by IDA — below),
for binary analysis and decompilation. It’s written in Java, has a user
interface resembling the Eclipse IDE (in fact there’s also a plug-in for Eclipse).
I’ve analyzed its implementation (the decompiler is in C++) and it has
many of the features I wanted to implement in my own decompiler (see REC, below).
Users can write their own plug-in for target-specific analysis in either
Java or python!
Runs on Windows, Linux, MacOS, and supports many processors. New processors
can be added by writing text files to specify the processor architecture’s
and its instruction set.
Overall, an excellent work, which sets a new standard for decompilers. -
reko:
Another open-source decompiler. Written in C#, it thus only
run on Windows, or on platforms supporting mono.
It accepts binaries compiled for many processors. It has both a GUI
with all the standard views (disassembly, hexdump, C source, project),
and can also be used from the command line. -
RetDec:
Originally developed by the Brno University of Technology, Czech Republic,
as an on-line service, and AVG Technologies, now part of Avast, it can be downloaded
from a GitHub repository and run locally.
I have not evaluated it, but at the time I had read the paper published by the
Brno University team, and it seemed at the level of the other advanced
decompilers available at the time. -
C4Decompiler:
(The original link seems to be dead. I’m leaving the description here
in case it becomes available again — I think I have an old version
downloaded on my hard-disk)
A new decompiler under development. Windows only, has a slick
user interface inspired to Visual Studio 2010 with many useful
interactions, that unfortunately are not always obvious. One
has to right-click to discover them.
The analysis seems very good, at least for the debug-compiled
example included in the installation. Trying it on random executables
from the Windows folder had mixed results, from completion of the
analysis to crashes to endless loops.Still it’s very promising, as its authors have
clearly put a lot of thought and effort in its development. -
Boomerang:
open source C decompiler. Very advanced set of analyses
that attempt to solve the most difficult problems
facing decompilers. The generated code quality varies greatly:
some functions are almost perfect in their representation of code
structure, local variables and types. Other functions look highly
obfuscated by the number of variables and their uses.
It’s also rather fragile, as it often crashes with big programs. -
REC:
My own C decompiler for Linux, DOS and Windows.
The first decompiler to work on multiple platforms and that supports
multiple processors (x86 16 and 32-bits, MIPS, 680×0, PowerPC).
It’s very stable, as it’s been tested with hundreds of programs.
The quality of the output is not as good as Boomerang’s,
since its implementation is based on 20 years old coding style
(read very difficult to extend). I’ve now published a new version,
RecStudio 4, which supports 64-bit executables. It has not been
tested on as many executables, so problems still remain. Also the
different analyses performed (SSA), generate totally different
code that at times may seem of much worse quality (although it’s
probably more correct), than the code generated by the previous
version. -
Hex Rays:
a decompiler plug-in for IDA Pro. The combination
with IDA’s advanced disassembly capabilities and run-time debugger
make it the ideal choice. However it’s still very new, and requires IDA Pro.
Unlike the others decopilers, it’s not free.
It also has to stand the test of time in terms of stability. Very promising. -
Dcc:
DOS to C decompiler. One of the first decompilers. It shows its age,
but it’s still referenced by many other decompilers for its
structuring abilities. Only supports 8086 (16 bits) programs. -
More on other decompilers at the
Program Transformation Wiki on Decompilation
Here’s a comparison of the various decompilers:
Decompiler | Platform | TargetsSupport | Binary FormatSupport | InteractiveBatch | RecompilableOutput | Structuring | Variables | Types | Notes |
C4Decompiler | Windows | IA64 | PE-COFF | Interactive GUI | No | Very Good | Good | Fair | |
Boomerang | Windows/Linux | IA32MIPSPPC | ELFPE-COFFMac-OS | Batch withGUI front-end | No | Very good | Good | Very good | |
REC | Windows/Linux | IA32IA64MIPSPPCmc68k | ELFPE-COFFAOUTRAWPS-X | Batch / Interactive | No | Good | Fair | Partial | |
dcc | Windows | 8086 | DOS .com | Batch | No | Good | Fair | Poor | |
Hex Rays | Windows | ? | ? | Interactive | ? | ? | ? | ? |
Full features list
Full support of Flash 5, 6, 7, 8, 9, 10, Flash CS5, CS6 and CC including AS 2.0 and 3.0 | |
Extract all Flash file resources into various formats | |
Support of SWF files built in Flex (v3 and v4 supported) | |
Extract Flash video into AVI, MPEG and other playable formats | |
Flash files conversion into Adobe Flash CS5 file format (.xfl — XML-based FLA) | |
Basic conversion of SWF files with a standard Flash preloader (e.g. files with TLF texts) | |
Basic decompilation of Adobe AIR applications | |
Batch decompilation and conversion of Flash movies | |
Edit more Flash objects now without converting to FLA: images, texts, static links, sounds, colors and lines | |
Support of SWF files embedded into a SWF file as binary data (nested SWF files) | |
New scalable shining interface with ribbon bar | |
Advanced built-in Flash player to preview and playback your Flash movies | |
P-code and common ActionScript representation. Also Hex dump view (currently not in AS 3.0) | |
Detailed configuration of SWF to FLA conversion (motion tweens, library, FLA format, AS and other settings) | |
Take screenshots of Flash file played | |
Unique global ActionScripts search in all tasks simultaneously | |
Multi-window interface with a possibility to work with and compare several SWF files at a time | |
Simple and effective adding of multiple files or folders to the Tasks list | |
Easily change the background color of any SWF file | |
Detailed tag information panel | |
Dump View, which shows the detailed tag structure of a SWF file | |
support for LZMA-compressed SWF files | |
The software is digitally signed to verify Eltima quality and software authenticity | |
Many other convenient features for professional Flash decompilation |
Подсистема «Показатели объектов»
Если вашим пользователям нужно вывести в динамический список разные показатели, которые нельзя напрямую получить из таблиц ссылочных объектов, и вы не хотите изменять структуру справочников или документов — тогда эта подсистема для вас. С помощью нее вы сможете в пользовательском режиме создать свой показатель, который будет рассчитываться по формуле или с помощью запроса. Этот показатель вы сможете вывести в динамический список, как любую другую характеристику объекта. Также можно будет настроить отбор или условное оформление с использованием созданного показателя.
2 стартмани
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.
Exec — Выполнение кода, консоль запросов и не только!
Незаменимый инструмент администратора БД и программиста:
Выполняйте произвольный код из режима 1С Предприятие; сохраняйте/загружайте часто используемые скрипты; выполняйте запросы с замером производительности запроса в целом и каждой из временных таблиц в частности, а также с просмотром содержимого временных таблиц; произвольным образом изменяйте любые объекты БД, редактируя даже не вынесенные на формы реквизиты и записывая изменения в режиме «ОбменДанными.Загрузка = Истина»; легко узнавайте ИД объектов БД; выполняйте прямые запросы к SQL с замером производительности и не только!
5 стартмани
Файл spec
Файл spec — это первый файл, который PyInstaller создает, чтобы закодировать содержимое скрипта Python вместе с параметрами, переданными при запуске.
PyInstaller считывает содержимое файла для создания исполняемого файла, определяя все, что может понадобиться для него.
Файл с расширением .spec сохраняется по умолчанию в текущей директории.
Если у вас есть какое-либо из нижеперечисленных требований, то вы можете изменить файл спецификации:
- Собрать в один бандл с исполняемым файлы данных.
- Включить другие исполняемые файлы: .dll или .so.
- С помощью библиотек собрать в один бандл несколько программы.
Например, есть скрипт simpleModel.py, который использует TensorFlow и выводит номер версии этой библиотеки.
Копировать
Компилируем модель с помощью PyInstaller:
После успешной компиляции запускаем исполняемый файл, который возвращает следующую ошибку.
Исправим ее, обновив файл spec. Одно из решений — создать файл spec.
Команда pyi-makespec создает spec-файл по умолчанию, содержащий все параметры, которые можно указать в командной строке. Файл simpleModel.spec создается в текущей директории.
Поскольку был использован параметр , то внутри файла будет только раздел exe.
Если использовать параметр по умолчанию или onedir, то вместе с exe-разделом будет также и раздел collect.
Можно открыть simpleModel.spec и добавить следующий текст для создания хуков.
Создаем хуки и добавляем их в hidden imports и раздел данных.
Introduction
The term decompiler is most commonly applied to a program which translates executable programs (the output from a compiler) into source code in a (relatively) high level language which, when compiled, will produce an executable whose behavior is the same as the original executable program. By comparison, a disassembler translates an executable program into assembly language (and an assembler could be used to assemble it back into an executable program).
Decompilation is the act of using a decompiler, although the term, when used as a noun, can also refer to the output of a decompiler. It can be used for the recovery of lost source code, and is also useful in some cases for computer security, interoperability and error correction.[] The success of decompilation depends on the amount of information present in the code being decompiled and the sophistication of the analysis performed on it. The bytecode formats used by many virtual machines (such as the Java Virtual Machine or the .NET Framework Common Language Runtime) often include extensive metadata and high-level features that make decompilation quite feasible. The presence of debug data can make it possible to reproduce the original variable and structure names and even the line numbers. Machine language without such metadata or debug data is much harder to decompile.
Some compilers and post-compilation tools produce obfuscated code (that is, they attempt to produce output that is very difficult to decompile). This is done to make it more difficult to reverse engineer the executable.
Создание exe файла с помощью PyInstaller
PyInstaller собирает в один пакет Python-приложение и все необходимые ему библиотеки следующим образом:
- Считывает файл скрипта.
- Анализирует код для выявления всех зависимостей, необходимых для работы.
- spec, который содержит название скрипта, библиотеки-зависимости, любые файлы, включая те параметры, которые были переданы в команду PyInstaller.
- Собирает копии всех библиотек и файлов вместе с активным интерпретатором Python.
- Создает папку BUILD в папке со скриптом и записывает логи вместе с рабочими файлами в BUILD.
- Создает папку DIST в папке со скриптом, если она еще не существует.
- Записывает все необходимые файлы вместе со скриптом или в одну папку, или в один исполняемый файл.
Если использовать параметр команды или при генерации исполняемого файла, тогда все будет помещено в одну папку. Это поведение по умолчанию. Если же использовать параметр или , то все окажется в одном исполняемом файле.
Возьмем в качестве примера простейший c названием simple.py, который содержит такой код.
Копировать
Создадим один исполняемый файл. В командной строке введите:
После завершения установки будет две папки, BUILD и DIST, а также новый файл с расширением .spec. Spec-файл будет называться так же, как и файл скрипта.
Python создает каталог распространения, который содержит основной исполняемый файл, а также все динамические библиотеки.
Вот что произойдет после запуска файла.
Методика оптимизации программного кода 1С: проведение документов
Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С.
Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия.
К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).
1 стартмани
Как декомпилировать EXE-файл
К сожалению, Windows не предусматривает в своем инструментарии встроенных инструментов, позволяющих выполнить декомпиляцию, поэтому придется пользоваться только сторонним ПО. Такое ПО может быть полезно как пользователям, которые просто желают получше изучить исходный код той или иной программы, так и разработчикам.
Вариант 1: VB Decompiler
Корректно способен провести декомпиляцию EXE-файлов, написанных и скомпилированных через Visual Basic 5.0 и 6.0. Это самая популярная среда разработки программ для Windows. Сама программа полностью бесплатна и занимает на диске всего несколько мегабайт.
- В верхней части интерфейса кликните по пункту «Файл» и выберите из контекстного меню вариант «Открыть программу». Вместо этого можно воспользоваться сочетанием клавиш Ctrl+O.
- В «Проводнике» отыщите исполняемый файл той программы, декомпиляцию которой вы собираетесь провести. Выделите его и нажмите на кнопку «Открыть», чтобы выполнить загрузку файла в рабочую среду.
- Путь до нужного EXE-файла отобразится в строке «Файл». Нажмите на кнопку «Старт», чтобы запустить процедуру декомпиляции.
- Программа не оповещает о завершении процедуры декомпиляции. О завершении таковой будет свидетельствовать только надпись «Декомпилировано» в нижней левой части окна.
- Для сохранения декомпилированного файла нажмите по кнопке «Файл» в верхнем меню и выберите из выпадающего списка вариант «Сохранить декомпилированный проект». Можете просто воспользоваться сочетанием клавиш Ctrl+S.
Вариант 2: EMS Source Rescuer
Данный декомпилятор корректно работает с файлами, скомпилированными с помощью Delphi и C++ Builder. Работа с другими компиляторами возможна, но официально не поддерживается, поэтому есть риски. Программа распространяется полностью бесплатно.
- Запустите EMS Source Rescuer. Его интерфейс представлен в качестве блоков с шагами. На первом шаге вам требуется указать путь до проекта, который будет декомпилирован. Это можно сделать, нажав на кнопку папки в строке «Executable File».
- Выберите нужный EXE-файл в окошке «Проводника».
- В поле «Project name» пропишите имя декомпилируемого проекта и нажмите «Next».
- На следующем шаге потребуется выбрать язык программирования, используемый в выбранном проекте. Это делается в блоке «Output style». Поставив маркер на нужном месте нажмите «Next».
- Вы перейдете сразу на 3-й шаг. Здесь будет показан исходный код проекта. Ниже выберите папку, в которую будут сохранены исходные файлы, извлеченные из EXE-файла, и нажмите «Save».
Вариант 3: ReFox
ReFox отлично зарекомендовал себя в декомпиляции проектов, созданных через Visual FoxPro и FoxBASE+. Сама программа носит условно-бесплатный характер использования. Есть демонстрационная версия, использование которой бесплатно, но только определенный период времени.
Инструкция по использованию данной программы выглядит так:
- В левую часть интерфейса программы уже встроен обозреватель файлов. Воспользуйтесь им, чтобы найти и открыть нужный EXE-файл. В правой части отображается техническая информация о выбранном элементе.
- Кликните правой кнопкой мыши по выбранному файлу. В контекстном меню выберите пункт «Decompile».
- Появится окошко, в котором будет указана директория декомпилируемого файла. Если там все верно, то нажмите «Ок» для продолжения операции.
- По завершении процесса вы получите соответствующее сообщение. Нажмите там «Ок». Результат можно посмотреть в той папке, которую вы указали во 2 шаге.
Вариант 4: DeDe
Эта программа для декомпиляции не так функциональна и поддерживает только одни язык – Delphi.
- Около самого верхнего поля нажмите на кнопку в виде раскрытой папки. Она отвечает за добавление папки.
- Выберите в «Проводнике» нужный EXE-файл и нажмите «Открыть».
- Чтобы запустить процесс декомпиляции, нажмите на кнопку «Процесс», которая расположена около строки указания проекта.
- При успешном завершении вы получите соответствующее сообщение. Нажмите «Ок» или закройте его.
- Теперь вам осталось сохранить результаты декомпилирования на компьютере. Переключитесь на вкладку «Project».
- Рекомендуется отметить галочками все пункты в блоке «Сохранить Делфи Проект». В строке «Папка проекта» укажите директорию, куда будет выполнено сохранение. Нажмите на кнопку «Сделать файлы», чтобы завершить сохранение.
Представленные декомпиляторы способы выполнить обратное преобразование большинства EXE-файлов, написанных на разных языках программирования. Как видите, в самом процессе, вне зависимости от выбранной программы, нет ничего сложного.
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).
Как пользоваться
Как его использовать на примере ELMA BPM и C#.
- Запустите IlSpy.exe (находится в скачанном архиве, предварительно распаковать)
- Скопируйте файлы с расширением .dll в отдельную папку
- файлы .dll серверных частей модулей Elma BPM лежат в папке <Elma>/Web/bin
- файлы .dll веб частей модулей Elma BPM лежат в папке <Elma>/Web/Modules/<ModuleName>/bin
в папке веб модуля есть 90% исходного кода в виде файлов .cs
- Перенесите содержимое папки в левую часть окна IlSpy
- Результат — мы имеем декомпилированный код модулей.
Инструкция:
- Вспоминаем где используется нужный нам механизм (на примере texttemplate)
- Определяем область поиска и ищем по смыслу нужные примеры в исходниках.
*Внутри Elma BPM два генератора текста — в «базовом» не работают функции для шаблонов. На скриншоте полноценный вариант
Точки расширения системы
— интерфейсы при реализации которых добавляется новый функционал.
Например как добавить новую функцию в генератор Elma BPM — вот статья, а как:
- Добавить новую функцию в EQL ( например вам нужна функция которая вернет начало текущего года — CurrentYear())
- Выполнить действие по событию переназначения задачи (например при переназначении процессной задачи (изменении исполнителя) — нужно изменить поле в сущности)
И так далее ( а таких точек расширения десятки а то и сотни) — этого в документации нет.
Служебные механизмы
Следующее с чем сталкиваются это:
— «Elma как то генерирует текст по шаблону — мне нужно то же самое!» (нет не по файлу, именно тексту)
как это сделать база знаний не ответит, за то ответит исходный код:
Особенности работы с базой данных
Изучите как устроены модули, из полезного я так нашел (точнее мне оно очень нужно было):
- Как правильно создавать и вызвать хранимые процедуры в ELMA BPM
- Как создавать индексы в базе данных
- Как вызвать sql скрипт из кода
— последние два пункта — домашнее задание)
Как используются паттерны в Elma BPM
Иногда приходится разобраться как правильно применить паттерны (также как производитель)
- Паттерн Unit Of Work
- Как вызвать отдельный поток (попробуйте найти сами)
- Как создать пул потоков и воспользоваться сервисами ELMA BPM (используется в Workflow для исполнения элементов бизнес процесса)
- Как работает IoC в Elma BPM (используется Autofac, инверсия управления и внедрение зависимостей)
Доработать функционал веб части
Тут даже может не потребоваться декомпилятор, исходный код открыт.
Типичные примеры:
- Нужен универсальный модуль массового редактирования полей :
- Нужен универсальный модуль импорта :
Для этого вам нужно
- Открыть исходный код веб части модуля Common (работа со справочниками)
- Изучить то как устроен контроллер (это из MVC, обычный класс с методами) Catalogs
- Скопировать в свой модуль, добавить зависимости
- Добавить функционал который требуется ( например импорт справочников, логику придется придумать самостоятельно)
далее пофантазируйте — что еще можно сделать зная «правду»
Faster — многофункциональный ускоритель работы программиста 1С и других языков программирования Промо
Программа Faster 9.4 позволяет ускорить процесс работы программиста
(работает в любом текстовом редакторе).
Подсказка при вводе текста на основе ранее введенного текста и настроенных шаблонов.
Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код.
Исправление введенных фраз двойным Shift (с помощью speller.yandex). Переводчик текста. Переворачивает текст случайно набранный на другой раскладке.
Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования.
Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода.
Настройка любых шорткатов под себя с помощью скриптов.
Никаких установок и лицензий, все бесплатно.
1 стартмани
Legality
The majority of computer programs are covered by copyright laws. Although the precise scope of what is covered by copyright differs from region to region, copyright law generally provides the author (the programmer(s) or employer) with a collection of exclusive rights to the program. These rights include the right to make copies, including copies made into the computer’s RAM.[] Since the decompilation process involves making multiple such copies, it is generally prohibited without the authorization of the copyright holder. However, because decompilation is often a necessary step in achieving software interoperability, copyright laws in both the United States and Europe permit decompilation to a limited extent.
In the United States, the copyright fair use defense has been successfully invoked in decompilation cases. For example, in Sega v. Accolade, the court held that Accolade could lawfully engage in decompilation in order to circumvent the software locking mechanism used by Sega’s game consoles.
In Europe, the 1991 Software Directive explicitly provides for a right to decompile in order to achieve interoperability. The result of a heated debate between, on the one side, software protectionists, and, on the other, academics as well as independent software developers, Article 6 permits decompilation only if a number of conditions are met:
- First, a person or entity must have a license to use the program to be decompiled.
- Second, decompilation must be necessary to achieve interoperability with the target program or other programs. Interoperability information should therefore not be readily available, such as through manuals or API documentation. This is an important limitation. The necessity must be proven by the decompiler. The purpose of this important limitation is primarily to provide an incentive for developers to document and disclose their products’ interoperability information.
- Third, the decompilation process must, if possible, be confined to the parts of the target program relevant to interoperability. Since one of the purposes of decompilation is to gain an understanding of the program structure, this third limitation may be difficult to meet. Again, the burden of proof is on the decompiler.
In addition, Article 6 prescribes that the information obtained through decompilation may not be used for other purposes and that it may not be given to others.
Overall, the decompilation right provided by Article 6 codifies what is claimed to be common practice in the software industry. Few European lawsuits are known to have emerged from the decompilation right. This could be interpreted as meaning either one of two things: 1) the decompilation right is not used frequently and the decompilation right may therefore have been unnecessary, or 2) the decompilation right functions well and provides sufficient legal certainty not to give rise to legal disputes. In a recent report regarding implementation of the Software Directive by the European member states, the European Commission seems to support the second interpretation.
Универсальная учетная система с конструктором документов и справочников в режиме 1С: Предприятие
Заголовок статьи звучит фантастично, но это не шутка. Занимаясь внедрениями, я часто сталкивался с ситуацией, когда надо было к типовой конфе приделать простенький модуль учета чего-нибудь, не специфичного для самой конфы. Например в УТ учет материалов в эксплуатации. Модуль обычно состоял из пары справочников (2-3), 3-х документов и регистра или пары регистров. Однажды подобные пристройки понадобились одновременно на 3 проектах. Скучно делать одинаковую работу, и я подумал, а что, если сделать универсальный инструмент, в котором пользователь сам сможет нарисовать себе справочники, реквизиты к ним, документы и движения. Т.е. конструктор полноценных документов в пользовательском режиме. Это оказалось не так сложно — все дело в подходящей архитектуре данных.
1 стартмани
Групповая проверка доработок
Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР.
Выдает список обнаруженных ошибок.
Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям.
В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем.
Проверялась на Зарплата и управление персоналом КОРП 3.1.8.216, Управление торговлей 11, 1С:ERP Управление предприятием 2.4.7.141, Бухгалтерия предприятия КОРП 3.0.68.66.
2 стартмани
Добавление файлов с данными и параметр onefile
Если задать параметр , то PyInstaller распаковывает все файлы в папку TEMP, выполняет скрипт и удаляет TEMP. Если вместе с add-data указать onefile, то нужно считать данные из папки. Путь папки меняется и похож на «_MEIxxxxxx-folder».
Копировать
Скрипт обновлен для чтения папки TEMP и файлов с данными. Создадим exe-файл с помощью onefile и add-data.
После успешного создания файл simple1.exe появится в папке DIST.
Можно скопировать исполняемый файл на рабочий стол и запустить, чтобы убедиться, что нет никакой ошибки, связанной с отсутствием файла.
Дополнительные импорты с помощью Hidden Imports
Исполняемому файлу требуются все импорты, которые нужны Python-скрипту. Иногда PyInstaller может пропустить динамические импорты или импорты второго уровня, возвращая ошибку …
Для решения этой ошибки нужно передать название недостающей библиотеки в hidden-import.
Например, чтобы добавить библиотеку os, нужно написать вот так:
Build in Docker
Docker support is maintained by community. If something does not work for you or if you have suggestions for improvements, open an issue or PR.
Build Image
Building in Docker does not require installation of the required libraries locally. This is a good option for trying out RetDec without setting up the whole build toolchain.
To build the RetDec Docker image, run
This builds the image from the master branch of this repository.
To build the image using the local copy of the repository, use the development Dockerfile, :
Run Container
If your is not 1000, make sure that the directory containing your input binary files is accessible for RetDec:
Now, you can run the decompiler inside a container:
Note: Do not modify the part is. You only need to change . Output files will then be generated to .
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)
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: