Sergey Chubchenko's Blog

Информационный блог о разработках DotFix Software

 

VB Decompiler v9.4: Декомпилятор, Дизассемблер, HEX Редактор

 

Рад представить очередное обновление VB Decompiler! Основные усилия при разработке этого релиза были направлены на удобство использования декомпилятора при анализе кода. Изменения назревали давно и на данный момент должны сильно повысить удобство при использовании продукта. Но обо всем по порядку.

Переходы между функциями

 

Несмотря на то, что данная возможность появилась еще в прошлой версии, мало кто о ней знает или использует на практике. Именно поэтому я хотел бы рассказать о ней подробнее. При анализе кода очень часто в той или иной функции идет вызов других функций или процедур. Раньше приходилось искать вызываемую функцию в дереве со списком модулей и процедур после чего переходить в нее для просмотра. Теперь все упростилось – достаточно дважды щелкнуть по имени вызываемой функции внутри кода. Декомпилятор сам отыщет нужную функцию и откроет для просмотра (ссылки пока не подсвечиваются). Возврат в предыдущую функцию сделать также просто: для этого служит горячая клавиша Esc. Также переход можно осуществить кнопками со стрелками, расположенными над деревом объектов.

vb_decompiler_jumps_to_function

 

HEX Редактор

 

В декомпилятор теперь встроен современный и удобный HEX редактор, позволяющий редактировать анализируемый файл как побайтно, так и использовать блочные копирования и вставки. Поддерживается отмена сделанных изменений (функции Undo и Redo), выделение и копирование блоков кода. В редакторе присутствует функция умного перехода по адресам. При этом адреса можно вводить как в виде Offset’ов, так и в виде виртуальных адресов VA. Допускается использование приставки “loc_” перед адресом. Единственное условие – адрес должен быть в HEX виде.

vb_decompiler_hex_editor_1

 

Новый формат главного окна

 

Существенным изменением в новой версии продукта является разделение главного экрана с кодом на вкладки. Во вкладке Disassembler теперь отображается код низкого уровня. Для проектов, откомпилированных в Native Code это код на языке ассемблера, для P-Code проектов это псевдокод VB. Также присутствует окно редактирования программы во встроенном HEX редакторе. При переходе в ту или иную функцию она автоматически обрабатывается и выводится во всех окнах, а в HEX редакторе делается переход на адрес начала функции.
Автоматический переход на начало объекта просмотра в HEX редакторе работает также и для форм. Для этого необходимо в настройках включить опцию Show offsets в разделе Forms.

vb_decompiler_hex_editor

 

Декомпиляция “If” конструкций в Native Code

 

Начиная с версии 9.4 декомпилятор поддерживает обработку IfElseEnd If конструкций в проектах, откомпилированных в Native Code. Для включения режима обработки If конструкций необходимо в настройках активировать опцию Process If … End If blocks в разлеле Decompilation. При этом код подобный нижеследующему:

Private Sub Command1_Click()
sTest = Rnd
If sTest = “15” Then
MsgBox “Test complete”, vbInformation, “Message header”
Else
MsgBox “Test fail”, vbInformation, “Message header”
End If
End Sub

Будет представлен следующим образом:

vb_decompiler_native_code_if_blocks

Стоит заметить, что при отключении данной опции код будет представлен хоть и без обработки If блоков, но информативнее чем ранее. Начиная с версии 9.4 декомпилятор помечает адреса внутри кода, на которые идет переход – референсами, с указанием адреса, с которого идет обращение:

vb_decompiler_native_code_no_if_blocks

 

Поддержка увеличнных шрифтов в Windows

 

По многочисленным просьбам интерфейс VB Decompiler бы адаптирован для корректного отображения в операционных системах с включенным режимом увеличения шрифтов (125 и 150 процентов).

Автоматический выбор языка интерфейса

 

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

vb_decompiler_language_select

 

Исправленна и улучшена поддержка плагинов

 

Начиная с версии 9.4 Plugins SDK был расширен рядом функций для доступа к дизассемблированному коду. Теперь имеется возможность считать как декомпилированный код той или иной функции так и дизассемблированный. Причем имеются функции для доступа к коду из активного окна программы (к коду функции, исследуемой пользователем в данный момент времени), а также к любой функции программы (если отключена опция Fast decompilation).
В дополнении к этому были исправлены недочеты, приводящие к ошибкам в плагинах при чтении возвращаемых декомпилятором данных. Теперь стабильность работы плагинов значительно увеличена!
Спешим напомнить. Уже не первый год действует акция: “Напиши полезный плагин и получи лицензию на VB Decompiler бесплатно”. Если у Вас есть интересные идеи на тему плагинов – обязательно свяжитесь с нами. Если тема окажется интересной для нас, и Вы сможете ее реализовать в новом плагине, мы предоставим Вам лицензионную копию VB Decompiler.

Другие приятные улучшения

 

В новой версии продукта также были сделаны различные улучшения в плане юзабилити. Теперь при щелчке по функциям и процедурам в дереве объектов фокус автоматически перемещается на код, а выделенный элемент дерева продолжает подсвечиваться, информируя о выбранной функции.
При щелчке по любому элементу дерева правой кнопкой, вызывается меню, позволяющее скопировать путь внутри дерева. Данная функция очень полезна при работе в команде и необходимости объяснить, где размещен код.
Исправлено сохранение координат размещения окна декомпилятора. Теперь сохраняются не только линейные размеры окна но и его размещение на экране.
Еще одним приятным улучшением является фильтрация пустых папок внутри дерева объектов. Теперь если в программе нет форм, то папка Forms не будет выводиться. Тоже касается и папок UserControls и папки Project, если проект состоит только из модулей.

 

No Responses to “VB Decompiler v9.4: Декомпилятор, Дизассемблер, HEX Редактор”

 

Leave a Reply

You must be logged in to post a comment.