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

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

и восстановления исходного кода

Статьи DotFix Software


Декомпиляция .NET приложений в C# код, темная тема и поддержка Mac M1 в VB Decompiler 12.1
Каждая новая версия декомпилятора по традиции несет в себе множество изменений. Но данный релиз - особенный! Он включает в себя несколько настолько существенных улучшений, что по факту можно говорить о данной версии, как о новом продукте. Старт эры декомпиляции .NET приложений в C# код, поддержка Mac M1, темная тема, улучшение офускации Visual Basic 5.0/6.0 кода и многое другое.

Улучшенная поддержка COM OLE объектов и работы с внутренними классами в VB Decompiler 11.9
В новой версии разбор TypeLib информации внешних библиотек был полностью переписан и теперь прототипы всегда содержат возвращаемый тип, если это класс или интерфейс. Улучшен разбор прототипов в виртуальных таблицах методов. Реализован переход на нужную строку после соединения декомпилированного кода с дизассемблированным. Возвращена экспериментальная поддержка Windows XP, а также внесено множество улучшений и исправлений.

Оптимизация и ускорение работы декомпилятора, а также множество улучшений для .NET в VB Decompiler 11.8
В новой версии декомпилятора проведена большая работа над ускорением работы анализатора и оптимизатора листингов кода. Параллельно с декомпиляцией Native Code и P-Code Visual Basic 6.0 ведется большая работа над декомпиляцией .NET приложений. VB Decompiler поддерживает декомпиляцию структур и дизассемблирование CIL кода всех языков .NET семейства (а это C#, Visual Basic, F#, Delphi .NET и другие компиляторы в Common Intermediate Language). В новой версии VB Decompiler проведена работа по расширению поддерживаемых конструкций .NET и исправлено множество несовместимостей.

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

Функции аналитики в VB Decompiler
Специально для криминалистов и антивирусных аналитиков мы рады представить новую лицензию для VB Decompiler. В версии с возможностями автоматической аналитики доступна генерация отчета, содержащего детальную информацию об активности декомпилируемой программы на компьютере пользователя. Аналитик получает полный отчет об участках (процедурах и функциях) программы, производящих те или иные манипуляции с файлами, реестром, окнами, процессами, а также использующие служебные функции Visual Basic.

Трассировка исследуемого кода в VB Decompiler
Теперь доступна частичная отладка программ, скомпилированных как в P-Code, так и в Native Code на встроенном эмуляторе без запуска программы на реальном процессоре! Трассировка (или если точнее пошаговая эмуляция) представляет из себя возможность приостановить эмуляцию на каждой строке ассемблерного кода с возможностью просмотра регистров процессора и сопроцессора, содержимого стэка и переменных.

Декомпиляция и эмуляция Native Code лучше чем когда либо в VB Decompiler 11
Три месяца кропотливой работы и несколько месяцев подготовительного этапа позади и я рад представить существенно обновленный VB Decompiler! Улучшено и сделано очень многое. Но главное, о чем хотелось бы упомянуть, это полностью переработанный эмулятор-декомпилятор машинного кода Visual Basic.

DotFix NiceProtect - Современная и серьезная защита для Ваших Windows приложений
Начиная с линейки 6.x вся архитектура защиты была разработана практически с нуля! Полностью изменился подход к работе с защищаемым файлом, использованию модулей защиты, что в свою очередь не только расширило возможности продукта, но и существенно увеличило скорость работы!

Исследуйте код как в Visual Studio используя VB Decompiler v10.7
Все знают, насколько порой бывает сложно найти нужный участок кода, обрабатывающий щелчок по кнопке на форме или событие загрузки формы или любое другое UI событие. Мы давно знали о проблеме и постоянно работали над тем, чтобы это исправить. И наконец, в представленной версии декомпилятора, эта задача решена.

Улучшение декомпиляции VB5/6 кода и дальнейшее развитие декомпиляции .NET в VB Decompiler v10.6
Было проведено множество тестов, выявлялись самые редко используемые функции, конструкции, а также сочетание разного рода процедур фреймворка MSVBVM60.DLL. Каждый момент тщательно анализировался, выявленные случаи некорректной декомпиляции исправлялись, а главное - добавлялась поддержка ранее не известных декомпилятору функций Runtime библиотеки. Итог: поддержка 56 новых функций MSVBVM60.DLL, а также улучшения декомпилятора .NET

GUI Дизайнер и глубокая оптимизация в VB Decompiler v10.5
В развитии VB Decompiler был ряд существенных этапов: декомпиляция P-Code, декомпиляция Native Code, поддержка дизассемблирования .NET, портирование декомпилятора с VB6, добавление функций трассировки Native Code без запуска приложения и много чего еще. Казалось бы, дальнейшие изменения должны касаться сугубо улучшения качества декомпиляции кода. Но, как показала практика, для декомпиляции и анализа кода очень не хватает одной вещи, а именно визуально видеть восстановленную форму или UserControl. И вот, начиная с версии 10.5, декомпилятор поддерживает визуализацию восстановленных форм! Теперь не нужно вчитываться в текстовое представление формы, чтобы понять из каких объектов она состоит и вообще какие функции в декомпилированном файле выполняет. VB Decompiler покажет форму такой, как ее видел разработчик!

Новый виток декомпиляции .NET и VB6 Native Code с VB Decompiler v10.4
Главное улучшение, которое коснулось абсолютно всего - это существенная оптимизация, рефакторинг и ускорение работы кода. Начиная с версии 10.4 скорость декомпиляции .NET приложений увеличена в 7 раз, а скорость декомпиляции приложений, собранных в Visual Basic 6.0 с опцией Native Code, увеличена в 5 раз! Помимо этого, работа трассировщика ассемблерного кода (касается версий декомпилятора с поддержкой трассировки) работает настолько плавно, насколько это возможно!

Декомпиляция вызовов внешних ActiveX компонентов с VB Decompiler v10.3
Обновленный VB Decompiler переводит декомпиляцию Native Code VB6 программ на новый уровень качества. Начиная с версии 10.3, поддерживается декомпиляция вызовов, методов и свойств из внешних ActiveX компонентов, отсутствующих в базе декомпилятора. Также в базу данных были добавлены прототипы еще 1853 системных (и не только) API функций. Улучшена декомпиляция массивов и разного рода операций с ними. Также значительно повышено удобство работы с продуктом.

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

Новые горизонты декомпиляции Native Code VB6 приложений в VB Decompiler v10.1
Мы существенно улучшили качество и наглядность декомпилированного кода для нативных приложений, разработанных в Visual Basic 5.0 и 6.0. Добавлена поддержка разбора 17 функций msvbvm в версии 10 и 48 функций в версии 10.1. Благодаря этому практически не осталось функций рантайма msvbvm, не поддерживаемых VB Decompiler. А те что остались - будут обязательно добавлены в новых версиях.

Улучшения в Native Code и возможности трассировки в VB Decompiler v9.7
После нескольких месяцев кропотливой работы мы рады представить новую, значительно переработанную версию VB Decompiler. На этот раз изменения коснулись главного - декомпиляции Native Code. Этого ждали многие и вот, наконец, после значительного рефакторинга кода появилась возможность значительно переработать и улучшить эмулятор. Это еще не идеальный вариант, но логика работы эмулятора Native Code была существенно улучшена. Немного теории. Visual Basic позволяет программисту менять настройки компилятора Native Code, а именно включать оптимизацию для маленького кода, оптимизацию для быстрого кода и отключать оптимизацию совсем. Во всех трех случаях в созданном EXE файле мы получаем совершенно различные блоки сгенерированного кода. Начиная с версии 9.7, VB Decompiler одинаково хорошо эмулирует все три типа оптимизации при создании частично декомпилированного кода. Да, это действительно работает!

Декомпилятор, Дизассемблер, HEX редактор
Переходы между функциями, HEX Редактор, новый формат главного окна, декомпиляция "If" конструкций в Native Code, поддержка увеличенных шрифтов в Windows, автоматический выбор языка интерфейса и многие другие улучшения в VB Decompiler v9.4.

Новая эра декомпиляции Visual Basic используя передовые технологии VB Decompiler
Спустя почти полгода кропотливой работы я рад представить Вам VB Decompiler v9.0 ! Почему же именно 9.0 а не 8.5? Причин тому несколько. Главная причина в том, что проект был полностью переписан с Visual Basic 6.0 на Delphi XE2. Переписан практически с нуля. Несмотря на то, что многие вещи увы невозможно было портировать как есть - я сделал многое для того, чтобы все функции декомпилятора работали точно так же как и в предыдущей версии или лучше.

Искусство редактирования интерфейса программ на VB
Опытным аналитикам кода и переводчикам программ на другие языки наверняка попадались файлы, написанные на Visual Basic 6.0. Что удивительно, про редактирование форм и контролов на них на данный момент вообще нет информации. Это надо исправлять, чем мы и займемся.

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

Декомпилируем p-code в уме
Думаю многие знакомы с программами на пикоде. Даже если аналитик в жизни не видел Visual Basic и его компилятор, то все равно хотя бы раз он сталкивался с P-Code. В отличии от стандартного машинного кода, исполняемого напрямую процессором, P-Code это набор мнемоник виртуальной машины VB, которые исполняются движком msvbvmXX.dll. Olly Debugger тут не особый помощник (хотя для кого как), IDA тем более. Тут нужен либо декомпилятор, либо мозги. Надеюсь что второе есть точно у всех, кто читает эти строки. Именно поэтому листинги из декомпилятора я буду приводить в статье лишь для наглядности, основной же упор будет на декомпилирование, используя в работе только HIEW.

Дзенский реверсинг: исследование кода в полевых условиях
У любого аналитика бывают ситуации, когда под рукой кроме HEX редактора/дизассемблера hiew ничего нет, а исследовать тот или иной код нужно. Причем нужно бывает срочно. Такое обычно требуется в самых неожиданных местах: в гостях у друзей, если компьютер заражен непонятным вирусом, а с собой естественно ничего нет, в коммандировке, когда с собой только телефон. Да мало ли разных ситуаций. Бывает доходит до смешного, когда наемный программист поставит привязку к жесткому диску, а нужно срочно перенести АРМ (автоматизированное рабочее место, не путать с ARM) с одного компьютера на другой. Конечно можно пригласить автора АРМ’а и попросить его, но обычно на это банально нет времени и или писался код настолько давно, что на звонок тому работнику можно услышать "извини, код уже лет пять не пишу, работаю в автосервисе слесарем". Вот как раз для таких ситуаций и потребуются знания из этой статьи.

Автоматизируем работу с EXE файлами
Еще со времен доса системщики привыкли автоматизировать свою работу. Кто-то пишет батники, кто-то забивает задачи в крон, а у кого-то свой софт под это дело. Это порой не раз выручает, что не говори. Но вот что делать реверсерам и кодерам? Об этом и пойдет речь в данной статье.

Теория сжатия данных
Как часто Вы слышите про архивацию, архиваторы, кодеки, мультимедиа компрессоры? Думаю, что Вы с ними сталкиваетесь на каждом шагу и на то можно приводить множество примеров, начиная от банального использования WinRAR’а и заканчивая поиски в интернете малоизвестного кодека-декомпрессора для просмотра какого нибудь видео файла. В этой статье я не буду загружать Вас рассказами где искать компрессоры и как их использовать. Здесь я пожалуй посвящу Вас в саму методику упаковки, с чего начали расти ее корни и возможно прочитав данный материал Вы зададитесь целью написать свой собственный архиватор обобщив имеющиеся идеи в что-то более новое и мощное.

Обзор декомпиляторов
Как часто у Вы бывало такое, когда теряются исходники одной из разработок без возможности восстановления? Вот бы перевести EXE файл обратно в исходный код, да? Но знакомые либо не могут ничем помочь, либо называют данную идею полнейшим бредом. Конечно, того что Вы написал в своей программе с точностью до байта уже не восстановить, но частично восстановить исходный код из EXE все же можно. Об этом и пойдет речь в данной статье.

Упаковка приложений
Не возникало ли у Вас желания уменьшить размеры своих программ, не используя при этом всяких архиваторов? Думаю Вы не раз задумывались над этим, но не могли найти максимально подробную информацию по этому вопросу. В этой статье я попытаюсь дать ответ наиболее полно, разобрав 18 программ, способных уменьшить размеры Вашего продукта. Думаю это поможет сделать правильный выбор среди такой огромной массы EXE упаковщиков.

Дизассемблер своими руками
Вы наверняка не раз отлаживали свой проект в Olly Debugger’е или искали ошибку в ассемблерном коде штатными средствами. Во всех подобных продуктах есть дизассемблер, который довольно быстро разбирает скомпилированный машинный код из EXE файла на ассемблерный код который можно изучать и изменять. В этой статье я опишу как можно самостоятельно написать простенький дизассемблер под свои нужды.

Виртуальная машина
Крекер скачал новую программу... как обидно, опять без регистрации все функции заблокированы... ну, не в первой, подумал он и полез за дизассемлером. Минут 10 поисследовав программу он не нашел ни единой строчки понятного кода. Может программа упакована? Да вроде нет... код на точке входа стандартный, созданный компилятором. И тут крекер понял, что имеет дело с VM - виртуальной машиной.

Разрабатываем программы на GPScript'е
Не знаю, в курсе Вы или нет, но пару лет назад мной был разработан довольно интересный скриптовый язык программирования, умеющий создавать нормальные Win32 приложения. О степени поддержки возможностей современных языков и оптимизированности спорить конечно бессмысленно, но когда нужно на скорую руку написать Autorun менюшку на диск или любую другую несложную программу, то данный язык может сильно пригодиться. Я не буду описывать все возможности языка - на то есть хелп. Моя цель - научить Вас на нем писать разного рода продукты. Поэтому учиться начнем на конкретных примерах.

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

Руководство по исследованию программ, написанных на Visual Basic 6.0
Исследователи программ почему то считают, что программы, написанные на Visual Basic'е невозможно анализировать. Если программа скомпилирована в P-Code - их частично можно понять, но что касается Native Code, то тут все исследуется также, как и любой x86 программный код, написанный например на C++ или Delphi. Но есть ряд особенностей. О них я и расскажу в данной статье.

Распаковываем UPX Shit v0.06
Учимся распаковке DLL библиотек
Пишем сервис на Delphi
Вставка ассемблерных процедур в код Visual Basic: миф или реальность? Часть 2
Скрамблер UPX своими руками
Вставка ассемблерных процедур в код Visual Basic: миф или реальность?


Статьи других авторов


в скобках указано число статей по тематике

Assembler (40)

C++ (21)

Delphi (32)

Visual Basic (45)

Web программирование (2)

Исследование кода (35)