Современные решения

для защиты Windows приложений

и восстановления исходного кода
Автор: Сергей Чубченко. Дата публикации: 19.11.2021

Новый уровень удобства использования и функционал для аналитиков в новом VB Decompiler 11.7

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

Подсветка текущей команды, регистра или переменной

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



Функционал для аналитиков теперь доступен и для .NET приложений

Ни для кого не секрет, что VB Decompiler поддерживает дизассемблирование .NET приложений. Причем не важно, под 32 или 64 битую архитектуру Intel оно собрано. Не важно, на каком языке был написан код программы - Visual Basic, C# или что-то еще. Более того, неважно Managed там код или Unmanaged. Поддерживается как IL, так и x86 и x64 ассемблеры!



И вот теперь Analytic Features доступны и для .NET! Теперь, как и VB5/6 приложение, антивирусный аналитик может открыть в VB Decompiler любую .NET малварь (троян, вирус, иной вредоносный код) и сразу получить полный отчет о функциях, выполняющих любые критичные операции: работа с файлами, реестром, сетью Internet, базами данных и много чем еще.



По традиции, такой отчет разделен на две части: сухой список кликабельных функций по той или иной категории и тот же список, но с перечнем используемых в каждой такой функции строк! Второго списка обычно более чем достаточно, чтобы не открывая кода, уже понимать где и что происходит во вредоносе!





Переход на нужную функцию по ее пути

Исследуемые файлы бывают разные. Иногда это 3 формы и 5 классов. И тут все достаточно просто. А вот когда это 480 форм и под тысячу модулей и классов, то в этом случае закончив анализ в 348 классе на 89 функции, найти ее на следующий день бывает ой как непросто. И даже зная имя класса и функции скролить все дерево, вглядываясь в имен, процесс крайне неудобный. Я знал о проблеме, и теперь она решена! В дереве объектов теперь имеется функция "Jump to the section", которая работает совместно с "Copy the name of section". Просто копируем путь к тому или иному коду и переходим к нему в нужный момент в два клика!



Определение возвращаемого значения приватными функциями

Наиболее сложным звеном работы любого декомпилятора является анализ прототипа того или иного кода. Функция это или процедура? А если функция, то сколько параметров она возвращает? К сожалению, для Visual Basic получить эту информацию из метаданных возможно только для Public функций классов и форм. Private функции, а также вообще любые в модулях, хранятся без каких-либо метаданных. VB Decompiler давно имеет свои собственные алгоритмы поиска таких функций и анализа их прототипов. В новой версии этот функционал также был переработан. Анализатор переобучен на новых вариациях, проведено множество сравнений и тестов на разного рода оптимизациях. Сейчас этот функционал работает существенно лучше. И более того, уже в процессе работа над разбором ранее неизвестных декомпилятору метаданных публичных функций.



Работа над таблицами и метаданными .NET

Для разработки функционала аналитики .NET кода потребовалось очень существенно переработать само качество дизассемблерных листингов. Декомпилятор теперь знает ссылки на разного рода ранее неиспользуемые таблицы. Поддерживает разбор полного прототипа методов и свойств классов. Знает о параметрах вызываемых функций и их типах, а также поддерживает обработку еще более сурово обфусцированных и криво сдампленных файлов! Естественно, работа с кривыми дампами не гарантируется никогда, но когда вы открываете в VB Decompiler файл, на котором падают другие продукты, знайте - это не "повезло", а огромная работа, которая постоянно ведется в этом направлении.



Локализации на Иврит и Турецкий языки

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



Улучшения и исправления

И по традиции, многое улучшено и исправлено. Сделаны дополнительные обработчики подсветки синтаксиса под разные типы строк (для VB5/6 и для .NET), чтобы поддерживать разные виды вставок служебных символов в строки. Улучшена работа режима трассировки P-Code. Теперь двойные и тройные проходы учитываются при процессинге. Сделан более точный анализ числа аргументов публичных функций. Из-за особенностей GoSub, адреса в ссылках на Return съезжали на один байт - поправлено. Проведена доработка эмулятора FPU команд. А также произведен очень серьезный объем исправлений Procedure analyzer and optimizer'а который отвечает за упрощение и сворачивание блоков декомпилированного кода, делая его более читаемым.



Я искренне надеюсь, что новая версия Вам понравится также, как и мне. Благодарю, что остаетесь с нами!

(C) Сергей Чубченко, разработчик VB Decompiler



* Visual Basic and Visual Studio are registered trademarks of Microsoft Corporation.





Комментарии

отсутствуют

Добавление комментария


Ваше имя (на форуме):

Ваш пароль (на форуме):

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

Комментарий: