Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #57, АВГУСТ 2005 г.

Декомпиляторы

GPcH (admin@dotfix.net)

Спецвыпуск: Хакер, номер #057, стр. 057-016-5


VBParser

Почти полный аналог exdec, только написанный китайскими разработчиками. Результат своей работы не только выводит на экран, но и сохраняет в файле ParseVB.txt. На случай ее падения (а такое частенько случается) этот файл здорово пригодится.

Бери ее с диска - судя по всему, она не имеет родного сайта.

p32Dasm by DARKER

Лучшая альтернатива exdec'у и VBParser'у. В отличие от двух предыдущих, написана на VB (exdec и VBParser на C++) и достаточно неплохо развивается в последнее время. Имеет подсветку синтаксиса, калькулятор адресов, умеет декомпилировать с определенного смещения в файле, а также, подобно дизассемблерам, способна представить все строки и функции, используемые в программе, в удобном списке с возможностью мгновенно перейти на интересующую тебя позицию в листинге. Главный недостаток - нестабильность работы и медленная скорость, в остальном же программа стоит того, чтобы не только посмотреть ее, но и даже записать в джентльменский набор. Распространяется бесплатно.

Брать отсюда: http://llamellik.webzdarma.cz/forumb/index.php.

VBDE by iorior

Довольно неплохой декомпилятор, причем бесплатный. Декомпилит формы (правда, без ActiveX). Выдает адреса на все процедуры, а если это возможно, то выводит не только адрес процедуры, но и ее имя, что значительно упрощает анализ. Пытается декомпилировать native-код, однако в большинстве случаев, кроме операторов сложения, вычитания и вывода MessageBox'а, ничего декомпильнуть не может. Несмотря на все эти ужасы, этот зверь довольно удобный и стабильный, поэтому рекомендую всегда держать его под рукой.

Сайта у программы нет - бери ее с диска.

Semi VB Decompiler by vbgamer45

Довольно интересный проект. До недавнего времени распространялся в исходниках на VB, а теперь стал коммерческим. Несмотря на некоторую глючность, бесплатная версия умеет довольно многое. Декомпилятся формы, содержащаяся в них графика и названия процедур. Также определяются используемые в программе API-функции. Помимо этого, предоставляется информация из заголовков PE. Есть даже попытки декомпилировать p-код. В общем, создается довольно приятное впечатление. Огромный респект автору за сорцы. Думаю, многим будет полезно заглянуть в них, чтобы понять, как происходит анализ кода VB. Честности ради скажу, что исходники написаны жутко, и порой, когда смотришь на некоторые участки кода, хочется плакать, хотя код этот и выполняет заложенные в него функции. Но, как говорится, дареному коню в зубы не смотрят. Поэтому быстрее беги на http://pscode.com/vb/scripts/ShowCode.asp?txtCodeId=55935&lngWId=1, пока сорцы еще там, а если хочешь, купи у автора новую версию - поддержи парня.

VB Decompiler by GPcH

А вот мы и дошли до моего собственного декомпилера VB. Я пытался внести в него как можно больше возможностей, при этом не загромождая интерфейс тем, что никогда не пригодится. В итоге имеем: декомпилятор форм с поддержкой ActiveX'ов, лежащих на них (при этом декомпилятся только общие для всех ActiveX'ов свойства), декомпилятор p-кода (причем, если в бесплатной Lite-версии он напоминает p32Dasm'овский, то в Pro-версии программа пытается перевести p-код в исходникоподобный читабельный вид, что часто помогает быстрее восстановить нужные куски кода) и декомпилятор ссылок на API (при этом они записываются уже в объявленном виде со всем списком параметров). Подсветка синтаксиса тоже есть. Также для каждого модуля с кодом есть свой список встречающихся там символьных строк с возможностью мгновенно перейти на участок кода их использования. Присутствует также поиск, помогающий найти нужный код в активном окне. Результат работы можно сохранять, причем вместе с кодом и формами сохраняются и frx-файлы с графикой и корректно прописываются ссылки на эти графические объекты в формах. В общем, если тебе не нужен детальный декомпиль p-code'а, вполне можешь ограничиться бесплатной Lite-версией. Если все же нужна Pro, пиши мне на мыло - договоримся о цене. Кстати, программа еще не выросла до стадии разработки и имеет некоторые баги (все-таки, на момент написания статьи, версия 0.2). И еще: декомпилер предназначен только для восстановления твоих исходников, если вдруг ты их потерял и у тебя есть только EXE. Если же ты роешься в чужой программе, помни: вся ответственность за это лежит на тебе, поэтому не забывай читать лицензионное соглашение, прежде чем лезть в чужой код :).

Назад на стр. 057-016-4  Содержание  Вперед на стр. 057-016-6