Этой статьей я продолжаю тему визуального программирования, свое отношение к которому я уже подробно и исчерпывающе выразил в статье с говорящим названием «Полное 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, — вне всякого сомнения, нужно лишь выяснить, где именно находится этот код, ведь простым поиском его в файлах проекта не обнаружить. Значит, он или хитро упакован, или зашифрован.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»