Мертвая эра. Изучаем приложение, созданное в BioEra

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

Этой стать­ей я про­дол­жаю тему визу­аль­ного прог­рамми­рова­ния, свое отно­шение к которо­му я уже под­робно и исчерпы­вающе выразил в статье с говоря­щим наз­вани­ем «Пол­ное G. Лома­ем при­ложе­ние на язы­ке G, соз­данное в LabVIEW». А что, если прог­рамму из этой статьи написать на Java, потом час­тично ском­пилиро­вать, а час­тично — зашиф­ровать код? Получит­ся соф­тина, соб­ранная с исполь­зовани­ем про­екта BioEra!

Из информа­ции на сай­те (име­ющем весь­ма спар­тан­ский дизайн, как и сама сре­да прог­рамми­рова­ния) мож­но узнать, что инс­тру­мент поз­воля­ет соз­давать кросс‑плат­формен­ные при­ложе­ния для обра­бот­ки сиг­налов с дат­чиков и игро­вых кон­трол­леров. Еще в BioEra мож­но раз­рабаты­вать софт для обра­бот­ки зву­ка, что харак­терно, абсо­лют­но не имея навыков прог­рамми­рова­ния — как раз то, что нуж­но сов­ремен­ному начина­юще­му кодеру!

warning

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

Да­бы не нарушать законы, ска­чаем с сай­та три­аль­ную вер­сию этой сре­ды раз­работ­ки и поп­робу­ем решить прос­тую задачу: обой­ти пароль­ную защиту на редак­тирова­ние ском­пилиро­ван­ных в BioEra фай­лов визу­аль­ных про­ектов .BPD (раз­работ­чики гор­до называ­ют их «дизай­нами»). Как и в любой дру­гой сре­де раз­работ­ки visual programming language (типа LabView), про­ект тут в пря­мом смыс­ле рису­ется в визу­аль­ном редак­торе в виде блок‑схе­мы.

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

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

Итак, смот­рим файл bioera.exe из ска­чан­ного и уста­нов­ленно­го три­ала. DetectItEasy не видит на нем никакой защиты и пред­полага­ет, что при­ложе­ние написа­но на си. Запус­каем его и пыта­емся им открыть запаро­лен­ный дизайн. Выс­какива­ет окош­ко вво­да пароля.

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

Стек вызовов прер­ванно­го про­цес­са

То, что ядро это­го монс­тра написа­но на при­митив­ной 32-бит­ной Java, — вне вся­кого сом­нения, нуж­но лишь выяс­нить, где имен­но находит­ся этот код, ведь прос­тым поис­ком его в фай­лах про­екта не обна­ружить. Зна­чит, он или хит­ро упа­кован, или зашиф­рован.

Источник: xakep.ru

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *