Назад к содержанию

Описание

VB Decompiler - это декомпилятор программ (EXE, DLL, OCX), написанных на Visual Basic 5.0 и 6.0, а также на любом из языков, основанных на .NET технологии (Visual C#, Visual Basic .NET). Также декомпилятор позволяет в режиме одного одна исследовать как декомпилированный, так и дизассемблированный код, а также смотреть нужные адреса и константы в HEX редакторе. Программы, разработанные на Visual Basic'е, могут быть скомпилированы либо в интерпретируемый псевдокод (p-code) или в машинный код для процессоров x86 (native code). В свою очередь .NET сборки компилируются либо в псевдокод MS IL (так называемый управляемый managed код), так и в машинный код для архитектур x86 и x64 (так называемый неуправляемый unmanaged код).

VB Decompiler главное окно программы

Так как p-code представляет собой высокоуровневые команды, то появляется реальная возможность восстановить из этого кода почти исходный (естественно имена переменных и некоторых функций само собой восстановить не удастся ввиду их отсутствия в скомпилированной программе). Несмотря на наличие около 1400 никак и нигде не документированных различных команд псевдокода, VB Decompiler восстанавливает исходный код максимально близко к оригинальному, поэтому при некоторых доработках его реально довести до компилируемого.

Если программа была откомпилирована в native code, то о полном восстановлении исходника из машинных инструкций не может быть и речи. Но VB Decompiler и здесь поможет анализировать программу. В него встроен мощный дизассемблер и эмулятор команд, позволяющий насколько это возможно приблизить ассемблерный код к исходному. Поддерживается декомпиляция более 500 переходников API библиотек MSVBVM50.DLL и MSVBVM60.DLL На сколько это возможно восстанавливается код раннего и позднего связывания COM OLE объектов. В общем декомпилятор делает все возможное для получение читаемого кода для исследования или восстановления. Естественно из-за сложности обработки всякого рода оптимизаций тут не обходится без ошибок сворачивания и вывода неверных инструкций, но для анализа кода данный метод декомпиляции и свертывания максимально полезен и экономит море времени.

В случае если программа была создана в среде Visual Studio .NET декомпилятор полностью восстановит структуру таблиц сборки, дизассемблирует все приватные и публичные методы (вне зависимости от типа компиляции: MS IL или машинный код), а также частично декомпилирует MS IL код в код на языке Visual C#. При этом для декомпиляции не потребуется ни сама среда .NET Framework, ни поддерживаемая .NET операционная система. Весь код декомпилятора .NET разработан полностью с нуля и не использует Reflections классы. Это в свою очередь повышает его стабильность, если код защтищен обфускаторами.

В общем, VB Decompiler - идеальное средство для анализа программ и отлично подходит в случае как утери исходных кодов и необходимости частично восстановить проект, так и для анализа кода в антивирусных компаниях и криминалистике.