Взлом борландии: изящная декомпиляция delphi
Содержание:
- Методика оптимизации программного кода 1С: проведение документов
- Authors
- Навигатор по конфигурации базы 1С 8.3 Промо
- Способы декомпиляции EXE-файлов
- 9 best Java Decompiler to be used
- легальность
- Exec — Выполнение кода, консоль запросов и не только!
- Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия — Simple UI (обновлено 14.11.2019)
- Source code
- decompiler
- Декомпиляция APK онлайн
- Отслеживание данных
- Source code
- Начальный анализ
- Набор подсистем «Умные таблицы»
- Данные декомпиляции
- Make sense of assemblies
Методика оптимизации программного кода 1С: проведение документов
Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С.
Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия.
К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).
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
- koiru — japanese translation
Навигатор по конфигурации базы 1С 8.3 Промо
Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3.
Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д.
Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы.
Отображает структуру хранения объектов базы данных, для регистров доступен сервис «Управление итогами».
Платформа 8.3, управляемые формы. Версия 1.1.0.71 от 01.12.2020
3 стартмани
Способы декомпиляции EXE-файлов
Декомпиляция может быть полезной автору ПО, который потерял исходные коды, или просто пользователям, желающим узнать свойства той или иной программы. Для этого существуют специальные программы-декомпиляторы.
Способ 1: VB Decompiler
Первым рассмотрим VB Decompiler, который позволяет декомпилировть программы, написанные на Visual Basic 5.0 и 6.0.
- Нажмите «Файл» и выберите пункт «Открыть программу» (Ctrl+O).
Найдите и откройте программу.
Декомпиляция должна сразу запуститься. Если этого не произошло, нажмите кнопку «Старт».
По завершении внизу окна появится слово «Декомпилировано». В левой части расположено дерево объектов, а в центральной можно просматривать код.
При необходимости, сохраните декомпилированные элементы. Для этого нажмите «Файл» и выберите подходящий вариант, например, «Сохранить декомпилированный проект», чтобы извлечь все объекты в папку на диске.
Способ 2: ReFox
В плане декомпиляции программ, скомпилированных через Visual FoxPro и FoxBASE+, неплохо себя зарекомендовал ReFox.
- Через встроенный обозреватель файлов найдите нужный EXE-файл. Если его выделить, то справа будет отображаться краткая информация о нём.
Откройте контекстное меню и выберите пункт «Decompile».
Откроется окно, где нужно указать папку для сохранения декомпилированных файлов. После нажмите «ОК».
По окончании появится такое сообщение:
Можно просмотреть результат в указанной папке.
Способ 3: DeDe
А DeDe будет полезна для декомпиляции программ на Delphi.
- Нажмите кнопку «Добавление файла».
Найдите файл EXE и откройте его.
Для запуска декомпиляции нажмите кнопку «Процесс».
При успешном завершении процедуры появится такое сообщение:
В отдельные вкладки будет выведена информация о классах, объектах, формах и процедурах.
Для сохранения всех этих данных откройте вкладку «Project», проставьте галочки рядом с типами объектов, которые нужно сохранить, выберите папку и нажмите «Сделать файлы».
Способ 4: EMS Source Rescuer
Декомпилятор EMS Source Rescuer позволяет работать с EXE-файлами, скомпилированными при помощи Delphi и C++ Builder.
- В блоке «Executable File» нужно указать нужную программу.
- В «Project name» пропишите имя проекта и нажмите «Next».
Выберите необходимые объекты, укажите язык программирования и нажмите «Next».
В следующем окне исходный код доступен в режиме предпросмотра. Осталось выбрать выходную папку и нажать кнопку «Save».
Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.
9 best Java Decompiler to be used
There are many best Java Decompiler which provide offline services. You can easily download these applications from the internet in order to get the work done. Here are some of the best java Decompiler on the internet today those are friendly to work with and have a good user interface.
1) JD Project
JD Project is one of the most frequently used best java decompiler offline. It is developed to decompile Java 5 and beyond, which currently goes up to Java 8. It is available for Windows, Mac, and Linux and is the best decompiler for eclipse and IntelliJ as it provides a plugin for each platform separately. This proves to be extremely useful during the debugging process.
It uses the JD- GUI. This is an easy to use and an interactive graphical interface.
2) Cavaj Java Decompiler
This is another great tool for converting bytecodes to Java source code. If you are a Windows user, then Cavaj is the best option available for you out there. It is simple to use and decompiles any given Java class file. One major drawback for this application is that it lacks Syntax Highlighting. It is also not available for Mac and Linux Operating softwares. In short, this is a standalone Windows application that converts bytecodes into class code.
3) DJ Java Decompiler
This is yet another standalone Windows Application. It is available for Windows XP, Windows 2003, Windows Vista, Windows 7, Windows 8, Windows 8.1 and Windows 10. It can easily decompile complex Java applets and binaries to produce accurate source code. There are drag and drop features for smooth working, so you can decompile .class files on your computer’s hard disk or on a network drive that you have connected.
4) JBVD
JBVD stands for Java Bytecode Viewer and Decompiler. It is based on the Javassist open source library. Like the others, this application too is available only for Windows users. It is one of the most powerful bytecode viewer and decompiler. Of course, this program needs Java to be installed on your computer to work JBVD can thus be used both, as a Java viewer and a decompiler.
5) AndroChef Java Decompiler
If you are on the lookout for a Java decompiler to view and analyze bytecode then AndroChef should be your preferred option. It is capable of easily converting Java .class files and applets into Java source code. It is simple and easy to use, however it is only available on the Windows Operating System. With Androchef, you can decompile apk. dex, jar, and java class files.
6) Procyon
It is one of the most popular open source Java decompiler. One of its most amazing features is the ability to deal with Java 8. Procyon can handle all those features which were launched with Java 5 to the latest version to Java. Due to this, Procyon can be used as an alternative where other java versions fail. It can also easily deal with other features such as local classes, annotations, Enum declarations, and Lamdas in Java 8.
7) CFR Decompiler
This is another such decompiler that was developed to deal with the latest features and updates in Java programming. It can easily decompile the latest Java features such as Lamdas and Switch Statement. This means if you are using Java 8, you can be at peace with yourself. The only downside here is that this decompiler is not an open source program. However, it has a command line tool that makes the decompiling process faster and even more efficient.
8) FernFlower
Apart from the decompilers mentioned above, the ones mentioned here are still in nascent stages and are under development. Fernflower is one of those. Fren is an analytical decompiler for Java and has recently been made open sourced. The software renames all the obfuscated symbols and puts them into a JAR file in the end. FrenFlower is used to decompile .class, zip and JAR file extensions.
9) Krakatau
It is an interesting decompiler as it has been written in Python. It is still in the development stage. However, it contains three tools: a decompiler and disassembler for Java class files and an assembler to create class files. However, one major drawback here is that it does not support all Java 8 features.
Conclusion- Which is best Java Decompiler?
If you are looking out for a best Java decompiler then you can try out any of the ones mentioned above. Just download them and try them out. You could share your experience in the comments below and even if you are aware of other amazing decompilers, then you could share those two. I would love to add it to the above list. You can also check out detailed tools section for more content.
Java Decompiler Software
$0
5
Summary
Check these 9 best offline Java decompiler which help you manage the codes and convert it as required. You can download these top Java decompilers and install it on your system.
легальность
Большинство компьютерных программ распространяются авторскими законами. Хотя точный масштаб того , что объект авторского права отличается от региона к региону, закон об авторском праве в целом обеспечивает автор (программист (ы) или работодатель) с коллекцией исключительных прав на программу. Эти права включают в себя право делать копии, в том числе копий , сделанные в компьютере оперативной памяти (если создание такой копии не является необходимым для использования программы). Поскольку процесс декомпиляции предполагает создание нескольких таких копий, как правило , запрещено без разрешения владельца авторских прав. Однако, поскольку декомпиляция часто является необходимым шагом в достижении программного обеспечения совместимости , законы об авторском праве, как в Соединенных Штатах и Европе позволяют декомпиляции в ограниченной степени.
В Соединенных Штатах, авторское право добросовестное использование защита была успешно применена в случаях декомпиляции. Например, в Sega v. Accolade , суд постановил , что Accolade может законно заниматься декомпиляции, чтобы обойти механизм блокировки программного обеспечения , используемого игровых приставок от Sega. Кроме того, Закон Digital Millennium Copyright (PUBLIC LAW 105-304) имеет соответствующие льготы как для тестирования безопасности и оценки в §1205 (I), и реинжиниринг в §1205 (е).
В Европе, 1991 Директивы по программному обеспечению явно предусматривает право декомпилировать для достижения совместимости. В результате жарких споров между, с одной стороны, программное обеспечение протекционистами, и, с другой стороны , ученые, а также независимых разработчиков программного обеспечения, статья 6 разрешает декомпиляция только если число условий:
Во- первых, физическое или юридическое лицо должно иметь лицензию на использование программы , которая будет декомпилированный.
Во- вторых, декомпиляция должны быть необходимы для достижения совместимости с целевой программой или другими программами. Поэтому информация Interoperability не должна быть легко доступна, например, с помощью руководств или API документации
Это важное ограничение. Необходимость должна быть доказана декомпилятора
Цель этого важного ограничения в первую очередь , чтобы обеспечить стимул для разработчиков документа и раскрывать информацию совместимости своих продуктов.
В-третьих, процесс декомпиляции должен, если это возможно, ограничиваться частями целевой программы, имеющие отношение к взаимодействию. Поскольку одна из целей декомпилирования, чтобы получить представление о структуре программы, это ограничение может третье будет трудно удовлетворить. Опять же, бремя доказывания лежит на декомпилятор.
Кроме того, статья 6 предусматривает, что информация, полученная через декомпиляцию не может быть использована для других целей, и что она не может быть дана другим.
В целом, право декомпиляции , предусмотренное статьей 6 систематизирует то , что , как утверждается, распространенная практика в индустрии программного обеспечения. Немногие европейские судебные процессы , как известно, вышли из права декомпиляции. Это может быть истолковано как означающие одну из трех вещей: 1) декомпилируемое право часто не используются и декомпиляция права может поэтому была не нужна, правильные функции 2) декомпиляции также и обеспечивает достаточная правовая определенность не порождает правовые споры или 3) незаконная декомпиляция идет в основном незамеченной. В недавнем докладе о реализации Директивы по программному обеспечению со стороны европейских государств — членов, Европейская комиссия , кажется, поддерживает вторую интерпретацию.
Exec — Выполнение кода, консоль запросов и не только!
Незаменимый инструмент администратора БД и программиста:
Выполняйте произвольный код из режима 1С Предприятие; сохраняйте/загружайте часто используемые скрипты; выполняйте запросы с замером производительности запроса в целом и каждой из временных таблиц в частности, а также с просмотром содержимого временных таблиц; произвольным образом изменяйте любые объекты БД, редактируя даже не вынесенные на формы реквизиты и записывая изменения в режиме «ОбменДанными.Загрузка = Истина»; легко узнавайте ИД объектов БД; выполняйте прямые запросы к SQL с замером производительности и не только!
5 стартмани
Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия — Simple UI (обновлено 14.11.2019)
Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.
5 стартмани
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)
decompiler
Главная / Инструменты / decompiler
Пакеты, которые пытаются преобразовать скомпилированные программы в исходный код.
Всего: 28
Имя | Версия | Описание | Категория | Веб-сайт |
---|---|---|---|---|
avaloniailspy | 198.a465d9f | .NET Decompiler (port of ILSpy) | decompiler | |
beebug | 25.cddb375 | Это инструмент, который можно использовать для проверки возможности эксплуатации сбоя программы. | decompiler disassembler reversing | |
cafebabe | 0.1.2 | Java bytecode editor & decompiler. | decompiler reversing | |
cfr | 150 | Ещё один Java декомпилятор. | decompiler | |
dnspy | 6.1.7 | .NET debugger and assembly editor. | windows decompiler binary reversing | |
dotpeek | 2020.2.1 | Free .NET Decompiler and Assembly Browser. | windows decompiler binary reversing | |
fernflower | 485.e19aab6 | Аналитический декомпилятор для Java. | decompiler | |
ffdec | 11.0.0 | Открытый декомпилятор и редактор Flash SWF. | decompiler binary misc | |
flasm | 1.62 | Дизассемблер для байт-кода SWF. | reversing decompiler | |
gadgetinspector | 6.ac7832d | A byte code analyzer for finding deserialization gadget chains in Java applications. | decompiler binary | |
hopper | 4.5.29 | Reverse engineering tool that lets you disassemble, decompile and debug your applications. | reversing disassembler decompiler binary | |
iaito | 5.2.2 | Qt and C++ GUI for radare2 reverse engineering framework | reversing decompiler disassembler debugger | |
jadx | 1.2.0 | Инструменты командной строки и с графическим интерфейсом для создания исходного кода Java из файлов Android Dex и APK. | decompiler reversing | |
jd-cli | 1.1.0 | Command line Java Decompiler. | decompiler reversing | |
jd-gui | 1.6.6 | Автономная графическая утилита, которая отображает исходные коды Java файлов .class. | decompiler reversing | |
jpexs-decompiler | 12.0.1 | JPEXS бесплатный декомпилятор Flash. | decompiler | |
justdecompile | 22018 | The decompilation engine of JustDecompile. | windows decompiler binary reversing | |
luyten | 0.5.4 | Графический интерфейс с открытым исходным кодом декомпилятора Java для Procyon. | decompiler misc | |
pcode2code | 4.4de2193 | VBA p-code decompiler. | decompiler | |
procyon | 0.5.36 | Набор на Java инструментов метапрограммирования, сфокусированных на генерации кода и анализе. | decompiler code-audit | |
python-uncompyle6 | 3.7.4 | Декомпилятор между различными версиями Python. | decompiler | |
r2cutter | 1:1.12.0 | Qt and C++ GUI for radare2 reverse engineering framework | reversing decompiler disassembler debugger | |
r2ghidra | 5.2.1 | Deep ghidra decompiler integration for radare2 and r2cutter | reversing decompiler disassembler debugger | |
radare2-cutter | 1:1.12.0 | Графический интерфейс на Qt и C++ для radare2 — платформы обратной инженерии. | decompiler reversing disassembler debugger | |
recaf | 2.18.3.2136.419925d9 | Современный редактор байткоода Java. | decompiler reversing | |
recstudio | 4.1 | Кроссплатформенный интерактивный декомпилятор. | decompiler reversing | |
retdec | 1927.b3749201 | Перенаправляемый декомпилятор машинного кода, базируется на LLVM. | decompiler reversing | |
snowman | 0.1.3 | Нативный (родной) декомпилятор C/C++. | windows decompiler |
Декомпиляция APK онлайн
- Предисловие
- Что такое декомпиляция
- Декомпилятор APK файлов онлайн
- Онлайн сервис APK Decompilers
- Онлайн сервис Javadecompilers
- Онлайн сервис APK-Deguard
- Выводы
Декомпилятор пытается перевести скомпилированный бинарный файл обратно в некое подобие исходного кода. Качество данной операции напрямую зависит от особенностей языка программирования исходника.
Для языка программирования Java существует большое количество декомпиляторов. Байт-код Java содержит много информации. Это облегчает декомпилятору восстанавливать изначальный код до состояния, пригодного к повторной компиляции.
Декомпиляция APK
Как вы знаете, Андроид-приложения как правило пишут на Java. С момента выхода самой первой версии Андроид перед программистами стояла задача — не только компилировать из файлов Java в APK файл для установки его в Android-устройство, но и произвести обратное действие, т.е. декомпилировать файл APK.
Ответ простой — для того чтобы в первую очередь посмотреть, как работает то или иное Android-приложение, ну и конечно изменить если требуется. При декомпиляции APK-файла (если он не был подвергнут предварительной обфускации) вы получаете полный комплект Java файлов с исходным кодом.
Большинству нужно именно просмотреть содержимое и для того чтобы это сделать на компьютере нужно установить много различных инструментов. Требуется наличие установленной Java-машины, Android SDK и таких инструментов как: JavaDecompiler, dex2jar и т.д. На самом деле это хоть и сложная, но самая правильная дорога, увы требующая от пользователя некоторых знаний и навыков, ну и конечно возни.
Да, конечно. С развитием облачных технологий появились бесплатные онлайн-сервисы о которых я сейчас расскажу.
Декомпиляция APK онлайн с Javadecompilers
Начнем наш обзор с онлайн сервиса Javadecompilers. Данный инструмент основан на оффлайн версии декомпилятора Jadx.
1. Заходим на сайт Javadecompilers нажимаем кнопку «Обзор» и выбираем необходимое приложение.
2. Нажимаем на кнопку «Upload and Decompile».
Javadecompilers
3. Через несколько минут (в зависимости от размера приложения) будет отображен результат, который можно скачать на компьютер нажав на кнопку «Save».
Javadecompilers
4. Вы также можете просмотреть все файлы находящиеся в директориях и скачать каждый по отдельности.
Javadecompilers
Кроме этого на сайте есть и другие инструменты. В целом сайт очень даже неплох. Однозначно в закладки!
Декомпиляция APK онлайн с APK-Deguard
Еще один интересный онлайн сервис называется APK-Deguard. Работает по тому же принципу. Заходим, загружаем на сайт необходимый файл и нажимаем на кнопку «Upload».
APK-Deguard
Вот как выглядит декомпилированный APK-файл на сайте.
APK-Deguard
Онлайн-сервис APK-Deguard, как и предыдущий сайт, позволяет скачать исходники. В формате txt, zip и apk.
APK-Deguard
Есть ограничение на максимальный размер загружаемого приложения. Размер файла не должен превышать 16мб. Сервис не плохой и вполне юзабельный, уже давно добавлен в закладки.
Декомпилятор APK Decompilers
Ну и напоследок в двух словах про сервис APK Decompilers. Коротко, потому что особенно не о чем и рассказывать, сайт для декомпиляции APK файлов.
APK Decompilers
По функционалу уступает предыдущим. Позволяет скачать исходники на компьютер без возможности просмотра директорий и файлов на сайте.
Выводы
Возможности облачного онлайн сервиса не сравнить с оффлайн способом декомпиляции APK файлов, который более функционален и позволяет компилировать. Но рассмотренный в статье метод в некоторых ситуациях для определенных задач может быть вполне достаточен.
На этом все. Сегодня вы узнали больше о строении и декомпиляции APK файлов. Я уверен вам понадобиться эта информация и эти навыки для защиты от вредоносных программ при установке подозрительных приложений на Android.
Отслеживание данных
Отслеживать данные и строить граф ветвлений нужно вместе, а начинать следует сразу после разбора objdump’овского листинга с какой-нибудь точки входа. При этом для каждого непрерывного блока нужно сохранять входные значения и выходные, относительные входных. Выражения, порождаемые и используемые только внутри блока, можно подставлять сразу. Часть выражений, которые после выхода из блока не будут использоваться, можно забыть.
Выделять циклы и условные операторы на этом этапе ещё не нужно, потому что граф ветвлений может поменяться в процессе анализа, а от интерпретации циклов и условных операторов зависят и окончательные выражения. Правда, нужно иметь ввиду, что после выделения блоков могут появиться и новые переходы, влияющие и на граф и снова на циклы и т. п., но в основном такие переходы будут, скорее всего, вызовами функций, поэтому пока что можно сильно не заморачиваться.
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)
Начальный анализ
- Представить адреса, которые очевидно читаются/пишутся, данными:
- Взятые относительно PC и числа — сразу. Которые только читаются, можно сразу принять за константы и подставить в код (аналог LDR xx, =const в IDA).
- Потом, уже в процессе декомпиляции, могут выявиться новые адреса с данными — нужно уметь их «сделать» данными в будущем. Чувствуете? Уже появляется «интерактивщина», аналогичная букве I в названии IDA.
- Выделяем очевидные функции:
- Все константные адреса, на которые делается BL или BLX — это «ближние» (short) вызовы функций.
- В будущем, при трассировке выражений, могут появиться ещё функции — нужно уметь их тоже «сделать» функциями. Ещё чуть-чуть интерактивщины.
- Разобрать код на непрерывные блоки, забыть про условные суффиксы.
- Построить граф ветвлений — литературное название также «Control Flow Graph», или «граф управляющей логики».
Набор подсистем «Умные таблицы»
Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.
1 стартмани
Данные декомпиляции
Что есть у декомпилятора:
- На каждый dword либо метка «данные», либо «код» + разобранная инструкция.
- На каждую инструкцию — блок, к которому она принадлежит. Тупо номер блока.
- Список точек входа, изначально содержащий единственную точку входа в программу.
- Список функций — по сути, адресов, с которых они начинаются.
- Хеш использования переменных, функций и т. п. По сути, каждый адрес может использоваться другими адресами.
- Ориентированный граф ветвлений, состоящий из непрерывных блоков выполнения и переходов между ними.
- На каждую инструкцию внутри блока — отслеженные с начала функции либо всей программы выражения.
- На каждый блок — входные и выходные значения регистров и т. п., относительные входных + транслированное тело.
- Список ASCII-строк с их адресами.
Всё это в процессе анализа может меняться и дополняться.
Make sense of assemblies
dotPeek provides tools to quickly grasp the structure of any given assembly, understand relationships between assemblies, as well as organize assemblies into discrete lists, which helps only focus on assemblies that you’re interested for your current assignment.
Manage assembly lists
You can work with different assembly lists depending on your context. You can save and reopen assembly lists, and
clear the current list if you no longer need it. Assembly lists are not limited to
.dll and
.exe files: they can also contain NuGet packages, archives, and folders.
Explore assembly contents
When you’re working with an assembly list, the
Assembly Explorer shows what kind of references,
resources, and code a particular assembly has, all the way from namespaces to type members.
For each type, it highlights nodes representing its base types and inheritors — in
addition to the actual list of members.
Quick search and node filtering using lowerCamelHumps are supported as well.
Explore assembly metadata
dotPeek also helps you explore assembly metadata and dig through all items (tables, blobs, strings, etc.) inside it.
Under the
Metadata node, you can explore values of blob items, PE file headers, usages of metadata table items.
Same as elsewhere in the assembly tree, you can
double-click metadata items to decompile and display the corresponding code.
View dependencies between assemblies
If you want to know how assemblies are dependent on each other, you can select several
assemblies in the Assembly Explorer and tell dotPeek to
display an assembly dependency diagram.
This will visualize any relationships that exist between the selected assemblies by virtue of
their references.