Этой статьей я продолжаю тему визуального программирования, свое отношение к которому я уже подробно и исчерпывающе выразил в статье с говорящим названием «Полное G. Ломаем приложение на языке G, созданное в LabVIEW». А что, если программу из этой статьи написать на Java, потом частично скомпилировать, а частично — зашифровать код? Получится софтина, собранная с использованием проекта BioEra!
Из информации на сайте (имеющем весьма спартанский дизайн, как и сама среда программирования) можно узнать, что инструмент позволяет создавать кросс‑платформенные приложения для обработки сигналов с датчиков и игровых контроллеров. Еще в BioEra можно разрабатывать софт для обработки звука, что характерно, абсолютно не имея навыков программирования — как раз то, что нужно современному начинающему кодеру!
warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
Дабы не нарушать законы, скачаем с сайта триальную версию этой среды разработки и попробуем решить простую задачу: обойти парольную защиту на редактирование скомпилированных в BioEra файлов визуальных проектов .
(разработчики гордо называют их «дизайнами»). Как и в любой другой среде разработки visual programming language (типа LabView), проект тут в прямом смысле рисуется в визуальном редакторе в виде блок‑схемы.

Разумеется, при такой открытости исходников в BioEra существуют способы оградить «дизайн» от шаловливых ручек хакеров, которым вздумается дизассемблировать, а то и поправить проект. Защита тут используется попроще, чем в LabView, но все равно можно поставить на «дизайн» пароль на открытие и редактирование визуальной блок‑схемы. Именно такую защиту мы и попробуем обойти, ведь это путь к постижению логики построения приложений данной среды разработки.
Сразу забегая вперед, скажу, что существует и более простой способ — сервисный режим разработчика, в котором парольная защита просто игнорируется, но мы легких путей не ищем и занимаемся решением этой задачи исключительно из спортивного интереса в познавательных целях.
Итак, смотрим файл bioera.
из скачанного и установленного триала. DetectItEasy не видит на нем никакой защиты и предполагает, что приложение написано на си. Запускаем его и пытаемся им открыть запароленный дизайн. Выскакивает окошко ввода пароля.

Таких строк нет в EXE-файле, более того, их нет вообще ни в одном файле установленного пакета, когда мы пытаемся их отыскать глобальным поиском. Топорный дизайн окон напоминает Java, в пакете действительно обнаруживается великое множество Jar-библиотек, но поиск по их содержимому тоже ничего не дает. Аттачимся к запущенному процессу при помощи нашего любимого отладчика x32dbg и видим, что это не то чтобы совсем явная Java, — виртуальная машина JVM интегрирована прямо в EXE-файл. Нечто подобное я описывал в своей статье «Суровая жаба. Изучаем защиту Excelsior JET для программ на Java».

То, что ядро этого монстра написано на примитивной 32-битной Java, — вне всякого сомнения, нужно лишь выяснить, где именно находится этот код, ведь простым поиском его в файлах проекта не обнаружить. Значит, он или хитро упакован, или зашифрован.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее