Руководство пользователя

(руководство описывает сборку 080215)

Диалоговый режим работы

Декомпилятор добавляет следующие команды в меню:

Примечание: в текстовой версии IDA диалоговый режим работы не поддерживается.

View, Open subviews, Pseudocode (рус. Представление, Открыть подпредставления, Псевдокод) (вызывающая клавиша F5)

Эта команда декомпилирует текущую функцию. Если декомпиляции завершается успешно, команда открывает новое окно с названием "Pseudocode" (рус. "Псевдокод") и помещает туда сгенерированный код на C.

Вы можете использовать следующие команды в окне псевдокода: Если текущий элемент - локальная переменная, в контекстном меню могут появиться дополнительные элементы:

Вы можете также выбрать текст и скопировать его в буфер обмена при помощи сочетания клавиш Ctrl-C.

Нажатие на Ввод на имени функции декомпилирует её. Нажатие на Esc возвращает к ранее декомпилированной функции. Если таковых нет ни одной, то окно псевдокода будет закрыто.

Ctrl-Ввод или Ctrl-двойной щелчёк на имени функции, открывает для неё новое окно псевдокода.

Нажатие на F5, во время пребывания в окне псевдокода обновляет его константы. Пожалуйста, обратите внимание, что декомпилятор никогда не обновляет псевдокод самостоятельно, потому что это может потребовать много времени.

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

Jump, Jump to pseudocode (рус. Переход, Перейти к псевдокоду) (вызывающая клавиша Tab)

Эта команда переключает между представлением дизассемблированного кода и псевдокода. Если нет никакого окна псевдокода, то будет создано новое окно.

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

Обращайтесь выше к документации по команде Open pseudocode (рус. Открыть псевдокод) за дополнительной информацией.

File, Produce file, Create C file (рус. Файл, Произвести файл, Создать файл Си) (вызывающая клавиша Ctrl-F5)

Эта команда декомпилирует выбранные функции или целое приложение. Она попросит название выходного .c файла.

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

Когда декомпилируется целое приложение, применяются следующие правила:
  • порядок декомпиляции определяется декомпилятором. Он начнется с функций-листьев и продолжается в порядке постнумерации в графе вызовов. При этом порядке, когда мы декомпилируем функцию, у нас будет вся информация о вызванных функциях. Очевидно, для рекурсивных функций некоторая информация будет всё ещё отсутствовать.
  • библиотечные (светло-голубого цвета) функции не будут декомпилированы. Между прочим, это - удобная особенность, служащая для исключения функций из вывода.
  • отказ декомпиляции не остановит анализ, но возникнут внутренние ошибки. Декомпилятор сгенерирует директивы #error для неудавшихся функций.

Edit, Comments, Add pseudocode comments (рус. Правка, Комментарии, Добавить комментарии к псевдокоду)

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

Этот пункт меню выполняет точно такие же действия что и команда Copy to assembly (рус. Копировать в сборку).

Edit, Comments, Delete pseudocode comments (рус. Правка, Комментарии, Удалить комментарии из псевдокода)

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

Edit, Other, Toggle skippable instructions (рус. Правка, Другие, Переключить пропускаемые команды)

Эта команда команды помечает/снимает инструкции, которые будут пропущены декомпилятором. Она полезна, если некоторые команды пролога/эпилога были пропущены IDA Pro. Если такие команды не были обнаружены и отмечены, декомпиляция может потерпеть неудачу (чаще всего будет терпеть неудачу анализ вызова).

Декомпилятор пропускает пролог, эпилог, и команды переключателя. Он полагается на IDA Pro при отметке этих команд. Иногда IDA не в состоянии отметить их, и эта команда может использоваться, чтобы исправить ситуацию.

Если команда будет применена к отмеченным командам, то она снимет с них пометки.

По умолчанию, пропущенные команды не визуализируются. Чтобы сделать их видимыми, отредактируйте файл IDA.CFG и удалите комментарий у следующих строк:
PC_PROLOG_COLOR = 0xE0E0E0            // серый
PC_EPILOG_COLOR = 0xE0FFE0            // светло-зелёный
PC_SWITCH_COLOR = 0xE0E0FF            // розовый

Edit, Other, Reset decompiler type information (рус. Правка, Другие, Сбросить информацию декомпилятора о типах)

Эта команда удаляет информацию о типах декомпилятора у текущей функции.

Используйте эту команду, если Вы неосторожно удалили тип, на который ссылается функция декомпилятора. Такая "повисшая" ссылка делает декомпиляцию невозможной.

Help, Send database

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

База данных пересылается в сжатой форме в целях сохранения полосы пропускания. Для передачи используется зашифрованное подключение (SSL).