Содержание справки · Справка в PDF
Просмотр и сравнение кода
Изучайте восстановленные операторы Delphi-подобного Pascal, чтобы понять работу процедуры, и сверяйте их с машинными инструкциями. Этот порядок анализа применим к поддерживаемым программам, созданным как в Delphi, так и в C++Builder.
Следование по листингу
Выберите процедуру в дереве. Изучите сигнатуру, локальные объявления и поток управления перед переходом к отдельным выражениям. Сгенерированные имена идентифицируют восстановленные значения там, где недоступно оригинальное имя из исходного кода. Подсветка синтаксиса и сворачиваемые блоки помогают ориентироваться в длинных процедурах.
Восстановленные тела могут быть заключены в обёртки комментариев Pascal для экспорта. DE Decompiler по-прежнему рассматривает эти тела как код для подсветки идентификаторов, поиска ссылок и переименования. Строковые литералы и обычные комментарии остаются исключёнными из совпадений ссылок на код.
Идентификаторы и навигация по коду
Установите курсор на имя регистра, переменной или функции, чтобы выделить все совпадающие вхождения в текущем листинге. Выделение локального или глобального идентификатора в одной процедуре отделено от поиска ссылок во всём проекте.
Дважды щёлкните по распознанному вызову процедуры, чтобы открыть вызываемую процедуру. Константы, похожие на адреса, могут привести к соответствующим байтам файла в HEX-редакторе. Используйте Esc, стрелки истории или кнопки мыши «Назад» и «Вперёд», чтобы вернуться.
Синхронизация адресов
Переключение между Декомпилятором и Дизассемблером следует текущему адресу курсора, включая полные Win64 адреса. Если отсутствует метка идентичной инструкции, выбирается ближайший доступный адрес. Открываются только свёртки, содержащие пункт назначения.
Смешанные представления высокого уровня и нативного кода
Щёлкните правой кнопкой мыши по коду и выберите «Скопировать в дизассемблер» (Copy to disassembler), или нажмите D в представлении кода. Полученное представление размещает восстановленные операторы с метками адресов рядом с соответствующими нативными инструкциями. Свёрнутый исходный код включается без разворачивания оригинального редактора, а объявления без адресов исключаются из аннотаций. Сохраняйте «Добавлять адреса» (Add Addresses) включённым при использовании сравнения на основе адресов.

Ссылки и имена
Используйте «Найти ссылки» (Find references) на процедуре, выбранной в дереве, или нажмите X, чтобы просмотреть распознанные вызывающие объекты. Дважды щёлкните по результату для анализа вызывающего объекта. Поиск ссылок требует полной обработки: отключите «Быстрая декомпиляция» (Fast decompilation) и повторно откройте входные данные, если будет предложено. Список ссылок на основе не декодированных кэшированных тел является неполным. В представлении кода установите курсор на глобальную переменную и нажмите X для поиска её ссылок. Косвенные или динамически разрешаемые использования могут отсутствовать в списке распознанных ссылок.
Используйте «Переименовать переменную» (Rename variable) или N для присвоения осмысленного имени анализа. Имена подчиняются правилам идентификаторов Pascal. Переименование с учётом совпадений нечувствительно к регистру и проверяет коллизии с параметрами, локальными объявлениями и зарезервированными ключевыми словами. «Отменить переименование» (Undo renaming) или Ctrl+Shift+Z отменяет переименование переменной независимо от обычного отмены редактирования текста. Сохраняйте имена, присвоенные аналитиком, отличными от оригинальных имён, сохранённых в бинарном файле.
Клавиатурный доступ
| Фокус | Сочетание клавиш | Действие |
|---|---|---|
| Код | D | Объедините восстановленный листинг с дизассемблированием. |
| Код | N | Переименовать выбранную переменную. |
| Код | Ctrl+Shift+Z | Отменить переименование переменной. |
| Код | X | Найти ссылки на глобальную переменную под курсором. |
| Дерево | X | Найти ссылки на выбранную процедуру. |
| Дерево | G | Переход по пути раздела. |
| Дерево | Ctrl+C | Скопировать полный путь к выбранному объекту в дереве. |
| Дерево | Пробел или Insert | Отметить или снять отметку с выбранного элемента. |
| Представления | Alt+1 | Переключить фокус между деревом и активным представлением. |
| История | Esc | Вернуться к предыдущей процедуре. |
Однобуквенные сочетания зависят от клавиатурного фокуса. Они не заменяют обычное вводе текста в полях ввода.