Создание исходного кода из сборок .net во время отладкиgenerate source code from .net assemblies while debugging
Содержание:
- Групповая проверка доработок
- Use
- Декомпиляция приложений и её функции
- Вступление
- Automated TeamCity Builds
- Способы преобразования файлов EXE
- Значит я могу взять исходники и сделать свою Elma BPM?
- What’s new:
- Как декомпилировать EXE-файл
- Как пользоваться
- Source code
- Licenses + Acknowledgments
- Методика оптимизации программного кода 1С: проведение документов
- Извлечение и просмотр внедренного исходного кодаExtract and view the embedded source code
- Набор подсистем «Умные таблицы»
- Authors
- Инструктор. Прототип инструмента создания быстрых пользовательских инструкций
- Создание исходного кодаGenerate source code
- Навигатор по конфигурации базы 1С 8.3 Промо
- Licenses + Acknowledgments
- Законность
Групповая проверка доработок
Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР.
Выдает список обнаруженных ошибок.
Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям.
В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем.
Проверялась на Зарплата и управление персоналом КОРП 3.1.8.216, Управление торговлей 11, 1С:ERP Управление предприятием 2.4.7.141, Бухгалтерия предприятия КОРП 3.0.68.66.
2 стартмани
Use
Please, ensure that you reading instructions corresponding to the used RetDec version. If unsure, refer to the file in the installation.
Linux
-
After , install the following packages via your distribution’s package manager:
-
To decompile a binary file named , run
For more information, run with .
FreeBSD (Experimental)
-
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.
-
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):
-
list(APPEND CMAKE_PREFIX_PATH ${RETDEC_INSTALL_DIR})
-
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.
Декомпиляция приложений и её функции
Один из языков программирования, который используется при написании программ для ОС Android – Java. На нём, как правило, пишут программы новички и люди, которые привыкли к его инструментарию. Крупные разработчики используют другие языки, которые дают больше свободы в использовании сторонних библиотек или программных компонентов.
Для того, чтобы написанный код превратился работающее приложение, его нужно скомпилировать встроенным в SDK (Software Development Kit) компилятором. Обратный же процесс, когда из готового APK-файла получается программный код, называется декомпиляцией.
Для чего может понадобиться декомпилировать такие файлы? Есть несколько ситуаций, в которых это пригодится:
- Пользователю недостаточно предоставленного функционала и он обладает достаточными знаниями и опытом, чтобы вносить изменения в готовый код.
- Посмотреть, как работает определённый компонент программы и приобрести нужный опыт в его реализации при создании собственного продукта.
- Определить, используются ли в приложении какие-либо части вредоносного кода.
Как видно, все эти задачи требуют некоторого опыта работы с языками программирования и Android SDK. Но при этом, на просторах интернета есть множество инструкций, которые под силу и новичкам, что делает процесс обратной компиляции полезным и для них. Нужно просто следовать инструкциям.
Вступление
Термин декомпилятор чаще всего применяется к программе, которая переводит исполняемые программы (вывод компилятора ) в исходный код на (относительно) языке высокого уровня, который при компиляции создает исполняемый файл, поведение которого такое же, как и у исходного исполняемого файла. программа. Для сравнения, дизассемблер переводит исполняемую программу на язык ассемблера (и ассемблер может быть использован для сборки ее обратно в исполняемую программу).
Декомпиляция — это действие с использованием декомпилятора, хотя этот термин также может относиться к выходным данным декомпилятора. Его можно использовать для восстановления утерянного исходного кода, а в некоторых случаях он также полезен для обеспечения компьютерной безопасности , взаимодействия и исправления ошибок . Успех декомпиляции зависит от количества информации, содержащейся в декомпилируемом коде, и сложности анализа, выполняемого над ним. Форматы байт-кода, используемые многими виртуальными машинами (такими как виртуальная машина Java или среда CLR .NET Framework ), часто включают обширные метаданные и высокоуровневые функции, которые делают декомпиляцию вполне возможной. Наличие отладочных данных позволяет воспроизвести исходные имена переменных и структур и даже номера строк. Машинный язык без таких метаданных или отладочных данных декомпилировать гораздо сложнее.
Некоторые компиляторы и инструменты посткомпиляции создают запутанный код (то есть они пытаются произвести вывод, который очень трудно декомпилировать или который декомпилируется до запутанного вывода). Это сделано для того, чтобы затруднить обратное проектирование исполняемого файла.
В то время как декомпиляторы обычно используются для (воссоздания) исходного кода из двоичных исполняемых файлов, существуют также декомпиляторы для превращения определенных файлов двоичных данных в читаемые и редактируемые источники.
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.
Способы преобразования файлов EXE
Необходимость преобразовать подобные файлы может возникнуть у пользователей, которые хотят получить информацию о характеристике различных утилит. Имеются определенные программы, предназначенные специально для декомпиляции.
Способ 1: Использование утилиты VB Decompiler
Данный софт используется для преобразования утилит, которые были созданы на Visual Basic 5.0 или 6.0.
- Активируем программу и в главном окне выбираем вкладку «Файл».
- В появившемся меню нажимаем на «Открыть программу». Выполнить ту же процедуру можно используя быстрые клавиши Ctrl+O.
- В «Проводнике» находим нужный файл.
- Процесс преобразования должен запуститься самостоятельно. Если по какой-либо причине это не произошло, выберите «Старт».
- По завершению процедуры высветится надпись «Декомпилировано».
- Основное поле программы будет поделено на два окна. В левом можно увидеть хронологию, а в правом отобразится исходный код.
- Есть возможность сохранить на компьютер преобразованные файлы. В верхнем меню выберите «Файл» и перейдите по вкладке «Сохранить декомпилированный проект».
Способ 2: Воспользоваться программой ReFox
Данная программа предназначена для преобразования утилит написанных на FoxPro или FoxBASE+.
- Откройте программу и воспользуйтесь интегрированным Проводником для поиска необходимого файла. При нажатии на него сразу можно увидеть некоторую информацию.
- Нажмите правой кнопкой мыши на файл и в появившемся меню кликните на «Decompile».
- В следующем окне определите место для хранения новых файлов.
- После нажатия на «ОК», процедура будет автоматически запущенна и по окончанию выдаст оповещение.
Способ 3: С помощью DeDe
Эта утилита используется при необходимости выполнить процедуру с программами, написанными на Delphi.
- Запустите софт, и найдите значок «Добавление файла».
- Выберете файл с необходимым расширением.
- Для запуска работы утилиты кликните на «Процесс».
- После завершения процедуры появится окно со следующим текстом: «Дампирование Выполнено».
- Теперь можно просмотреть всю полученную информацию.
- Для сохранения полученных данных перейдите на раздел «Project» и поставьте напротив необходимых объектов галочки.
Способ 4: Программа EMS Source Rescuer
Данная утилита может работать с файлами, написанными на двух языках Delphi и C++ Builder.
- Активируйте программу и в первой строке выставьте путь к нужному файлу.
- Пропишите имя нового объекта в графе «Project name».
- Определите нужные файлы и выберите, какой кодировкой они были созданы.
- Открывшееся окно показывает еще не сохраненный код. Для дублирования его на компьютер укажите необходимый каталог и нажмите на «Save».
В этой статье был рассмотрен софт, помогающий в декомпиляции программ, написанных различным кодом. Известно еще множество подобных утилит, но именно эти обладают необходимыми функциями и довольно-таки просты в использовании.
Значит я могу взять исходники и сделать свою Elma BPM?
— нет этого сделать не получится
- Почти весь серверный код обфусцирован (преобразован в непонятный вид для человека — без изменения логики для машины)
- Все модули связаны и подписаны ( ключом шифрования) — один без другого не запустится
Вывод: это делать бессмысленно — вы больше потратите времени чтобы разобраться и собрать свою копию чем сделать заново
— но приложения других разработчиков вы можете повторить, чей код не обфусцирован ( я не призываю так делать)
Украсть не получится — понятно
— тогда может хотя бы взломать активацию (сделать генератор ключей)?
* Забегая вперед — тоже не получится )
В Elma BPM используется механизм односторонних функций — пара связанных функций
- одна шифрует в одну сторону
- другая в обратную
а в наличии только последняя.
- Представьте что вы пропустили лист бумаги через шредер (измельчитель бумаги)
- И теперь представьте механизм превращающий из мусора лист бумаги без потери информации… (у вас именно такой механизм)
- А теперь вам предстоит подобрать нужный шредер — удачи)
— такие функции используют преобразования XOR(исключающий или) — где обратная операция возвращает неоднозначный ответ (например на вход 1, на выход 0 или 1 — неизвестно).
What’s new:
Added
- Debugger — AS1/2 Show registers
- Debugger — display variables in the tree structure
- Debugger — set value of variable
- Debugger — AS1/2 View constantpool
- Debugger — P-code level debugging for both AS1/2 and AS3
- Basic SVG import for shapes
- Simplify expression setting
- Allow adding tag to main timeline
- AS1/2: Ctrl+click to declaration of variables, registers
- Allow trait specification in pcode import
- Icons for tag types in Dump view
- Show error message when a text tag is invalid (glyph index problem)
- AS3 direct editation — store local register names in debug info = allow to rename them
Changed
- New application icon and splash screen
- Binary export — use .swf extension for swf files
- Better tree labels in generic tag editor (Raw edit)
Fixed
- AS3 Switch fixes
- Default clause position in switch
- Font wideOffsets,wideCodes fixed in DefineFont2/3
- AS3: super method call
Как декомпилировать 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-файлов, написанных на разных языках программирования. Как видите, в самом процессе, вне зависимости от выбранной программы, нет ничего сложного.
Как пользоваться
Как его использовать на примере 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
- Скопировать в свой модуль, добавить зависимости
- Добавить функционал который требуется ( например импорт справочников, логику придется придумать самостоятельно)
далее пофантазируйте — что еще можно сделать зная «правду»
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:
Методика оптимизации программного кода 1С: проведение документов
Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С.
Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия.
К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).
1 стартмани
Извлечение и просмотр внедренного исходного кодаExtract and view the embedded source code
Исходные файлы, внедренные в файл символов, можно извлечь с помощью команды Извлечь исходный код в контекстном меню окна Модули.You can extract source files that are embedded in a symbol file using the Extract Source Code command in the context menu of the Modules window.
Извлеченные исходные файлы добавляются в решение как прочие файлы.The extracted source files are added to the solution as miscellaneous files. В Visual Studio функция «Прочие файлы» по умолчанию отключена.The miscellaneous files feature is off by default in Visual Studio. Чтобы включить эту функцию, установите флажок Инструменты > Параметры > Среда > Документы > Показывать прочие файлы в Обозревателе решений.You can enable this feature from the Tools > Options > Environment > Documents > Show Miscellaneous files in Solution Explorer checkbox. Без включения этой функции вы не сможете открыть извлеченный исходный код.Without enabling this feature, you won’t be able to open the extracted source code.
Извлеченные исходные файлы отображаются в разделе прочих файлов в Обозревателе решений.Extracted source files appear in the miscellaneous files in Solution Explorer.
Набор подсистем «Умные таблицы»
Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.
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
Инструктор. Прототип инструмента создания быстрых пользовательских инструкций
Прототип дружелюбного и эффективного инструмента для написания пользовательских экспресс-инструкций.
Задействована штатная утилита Windows, о существовании которой многие не знают и которая умеет делать огромную работу по логированию действий и снятию скриншотов на всех ПК с Windows (начиная с версии Win7).
«Инструктор» не требует никакой установки и дополнительных библиотек!
Это означает, что инструмент будет работать и на домашнем ПК и на «чужом ноутбуке» и на терминальном win-сервере у заказчика, где ваши права сильно ограничены.
Вы просто подключаете легкую файловую базу 1С и получаете инструмент по снятию скриншотов с интересной функциональностью…
1 стартмани
Создание исходного кодаGenerate source code
Если при выполнении отладки исходный код недоступен, в Visual Studio отображается документ Исходный код не найден, а если отсутствуют символы для сборки, отображается документ Символы не загружены.When you’re debugging and no source code is available, Visual Studio shows the Source Not Found document, or if you don’t have symbols for the assembly, the No Symbols Loaded document. Оба документа имеют параметр Декомпилировать исходный код, который создает код C# для текущего расположения.Both documents have a Decompile source code option that generates C# code for the current location. Созданный код C# можно использовать так же, как любой другой исходный код.The generated C# code can then be used just like any other source code. Можно просматривать этот код, проверять переменные, устанавливать точки останова и т. д.You can view the code, inspect variables, set breakpoints, and so on.
Символы не загруженыNo symbols loaded
На следующем рисунке показано сообщение Символы не загружены.The following illustration shows the No Symbols Loaded message.
Исходный код не найденSource not found
На следующем рисунке показано сообщение Исходный код не найден.The following illustration shows the Source Not Found message.
Навигатор по конфигурации базы 1С 8.3 Промо
Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3.
Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д.
Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы.
Отображает структуру хранения объектов базы данных, для регистров доступен сервис «Управление итогами».
Платформа 8.3, управляемые формы. Версия 1.1.0.71 от 01.12.2020
3 стартмани
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:
Законность
На большинство компьютерных программ распространяются законы об авторском праве . Хотя точный объем того, что покрывается авторским правом, отличается от региона к региону, закон об авторском праве обычно предоставляет автору (программисту (программистам) или работодателю) совокупность исключительных прав на программу. Эти права включают право делать копии, включая копии, сделанные в ОЗУ компьютера (если создание такой копии не является необходимым для использования программы). Поскольку процесс декомпиляции включает в себя создание нескольких таких копий, это обычно запрещено без разрешения правообладателя. Однако, поскольку декомпиляция часто является необходимым шагом в достижении функциональной совместимости программного обеспечения , законы об авторском праве как в Соединенных Штатах, так и в Европе разрешают декомпиляцию в ограниченной степени.
В Соединенных Штатах защита авторских прав на основе добросовестного использования была успешно задействована в случаях декомпиляции. Например, в деле Sega v. Accolade суд постановил, что Accolade может на законных основаниях заниматься декомпиляцией, чтобы обойти механизм блокировки программного обеспечения, используемый игровыми консолями Sega. Кроме того, Закон об авторском праве в цифровую эпоху (ПУБЛИЧНЫЙ ЗАКОН 105–304) имеет соответствующие исключения как для тестирования безопасности, так и для оценки в §1205 (i), а также для обратного проектирования в §1205 (f).
В Европе Директива по программному обеспечению 1991 г. прямо предусматривает право на декомпиляцию для достижения функциональной совместимости. В результате жарких дебатов между, с одной стороны, сторонниками протекционизма, а с другой — учеными, а также независимыми разработчиками программного обеспечения, статья 6 разрешает декомпиляцию только при соблюдении ряда условий:
Во-первых, физическое или юридическое лицо должно иметь лицензию на использование декомпилируемой программы.
Во-вторых, декомпиляция должна быть необходима для обеспечения взаимодействия с целевой программой или другими программами. Поэтому информация о совместимости не должна быть легко доступна, например, в руководствах или документации API
Это важное ограничение. Необходимость должна быть доказана декомпилятором
Целью этого важного ограничения является прежде всего стимулирование разработчиков к документированию и раскрытию информации о совместимости своих продуктов.
В-третьих, процесс декомпиляции должен, по возможности, ограничиваться частями целевой программы, имеющими отношение к взаимодействию. Поскольку одной из целей декомпиляции является понимание структуры программы, это третье ограничение может быть трудным для выполнения. Опять же, бремя доказательства лежит на декомпиляторе.
Кроме того, статья 6 предписывает, что информация, полученная путем декомпиляции, не может использоваться для других целей и не может быть передана другим лицам.
В целом, право на декомпиляцию, предусмотренное статьей 6, кодифицирует то, что считается обычной практикой в индустрии программного обеспечения. Известно, что некоторые европейские иски возникли из-за права на декомпиляцию. Это может быть истолковано как означающее одно из трех: 1) право на декомпиляцию не часто используется, и поэтому право на декомпиляцию могло быть ненужным, 2) право на декомпиляцию функционирует хорошо и обеспечивает достаточную юридическую уверенность, чтобы не вызывать юридических споров или 3) незаконная декомпиляция в значительной степени остается незамеченной. В недавнем отчете о реализации Директивы по программному обеспечению европейскими государствами-членами Европейская комиссия, похоже, поддерживает вторую интерпретацию.