В этой статье я рас­ска­жу, как про­исхо­дит реверс‑инжи­ниринг реаль­ного медицин­ско­го обо­рудо­вания. На при­мере кар­трид­жа для аппа­рата Liposonix мы раз­берем базовые при­емы обратной раз­работ­ки про­токо­лов циф­ровых устрой­ств и пос­мотрим, как мож­но под­делать переда­ваемые дан­ные. Ока­залось, что ими­тиро­вать ори­гиналь­ный кар­тридж мож­но при помощи обыч­ного мик­рокон­трол­лера ATmega.

Кос­метоло­гичес­кий аппа­рат Liposonix пред­назна­чен для кор­рекции фигуры методом уль­траз­вуково­го воз­дей­ствия. Эта про­цеду­ра, изна­чаль­но раз­работан­ная аме­рикан­ской ком­пани­ей Solta Medical, широко рас­простра­нилась в нашей стра­не пос­ле появ­ления на рын­ке отно­ситель­но дешевых китай­ских кло­нов обо­рудо­вания. При этом само наз­вание Liposonix ста­ло име­нем нарица­тель­ным и для про­цеду­ры, и для аппа­ратов такого типа.

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

Фото со страницы одного из продавцов на китайском маркетплейсе
Фо­то со стра­ницы одно­го из про­дав­цов на китай­ском мар­кет­плей­се

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

Кар­трид­жи раз­лича­ются некой «глу­биной», которая может варь­иро­вать­ся от 0,6 до 1,8 см. Пос­коль­ку я не кос­метолог, не могу объ­яснить, что имен­но под этим под­разуме­вает­ся, могу лишь пред­положить, что кар­трид­жи с раз­ной глу­биной име­ют раз­ную кон­фигура­цию лин­зы.

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

При под­соеди­нении нового кар­трид­жа аппа­рат счи­тыва­ет парамет­ры и отоб­ража­ет их на сво­ем дис­плее: глу­бина, общее чис­ло импуль­сов (емкость кар­трид­жа) и их дос­тупный оста­ток. Итак, наша задача — най­ти спо­соб пов­торно­го исполь­зования кар­трид­жей, исчерпав­ших свой счет­чик.

 

Осмотр

Лю­бое иссле­дова­ние начина­ется с осмотра. Извле­каем пла­ту с чипом из кар­трид­жа и вни­матель­но изу­чаем на пред­мет мар­кировок, логоти­пов и все­го про­чего, что мож­но вбить в Google. К сожале­нию, в нашем слу­чае никаких полез­ных над­писей обна­ружить не уда­лось.

Сам чип — мик­росхе­ма в кор­пусе SO-8, повер­хность затер­та абра­зивом для уда­ления завод­ских мар­кировок. Тем не менее кон­так­тные пло­щад­ки пла­ты под­писаны: 5V, GND, SCL, SDA. Воору­жив­шись каран­дашом и муль­тимет­ром, вос­ста­новим схе­му, бла­го она — про­ще некуда.

Схе­ма вклю­чения (под­тяжка линий дан­ных к питанию резис­торами R1 и R2) ука­зыва­ет на то, что по умол­чанию линии находят­ся в высоком сос­тоянии (idle high). Это наб­людение наряду с сок­ращени­ями SCL и SDA с ходу намека­ет нам на интерфейс I2C.

Ши­роко рас­простра­нен­ные мик­росхе­мы памяти EEPROM серии 24 как раз работа­ют по I2C! Нес­лучай­ное сов­падение? Впро­чем, пос­мотрев на пер­вый попав­ший­ся даташит этой серии (PDF), видим отли­чие в рас­положе­нии выводов: у нашей мик­росхе­мы питание пода­ется на вто­рой вывод, а у 24-й серии — на вось­мой.

По­пыта­ем счастья, под­клю­чив прог­рамма­тор, но мик­росхе­ма, увы, не чита­ется. Поиск в катало­гах дру­гих мик­росхем памяти, работа­ющих по I2C, с под­ходящим рас­положе­нием выводов так­же ни к чему не при­вел. Что ж, ожи­даемо: учи­тывая, сколь­ко сущес­тву­ет элек­трон­ных ком­понен­тов, такая идея сле­пого перебо­ра вруч­ную изна­чаль­но не осо­бен­но жиз­неспо­соб­на.

От­бро­сив ока­зав­шееся тупико­вым пред­положе­ние, вос­поль­зуем­ся дру­гим методом ана­лиза: перех­ватим обмен дан­ными меж­ду кар­трид­жем и аппа­ратом.

 

Перехват данных

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

При этом прог­рамму ана­лиза сиг­налов (Logic) мож­но ска­чивать с сай­та Saleae без каких‑либо огра­ниче­ний. Сей­час дос­тупна Logic 2, одна­ко, на мой взгляд, пер­вая вер­сия работа­ет быс­трее и ста­биль­нее. Прог­рамма пор­татив­ная, не тре­бует уста­нов­ки; драй­веры устрой­ства находят­ся в том же архи­ве вмес­те с прог­раммой.

Под­клю­чим вхо­ды ана­лиза­тора к кон­тактам SCL и SDA. Не забудем соеди­нить зем­лю иссле­дуемой пла­ты с зем­лей ана­лиза­тора через соот­ветс­тву­ющий вывод, ина­че ничего не зарабо­тает. Под­соеди­няем ана­лиза­тор к компь­юте­ру, а пла­ту кар­трид­жа — к разъ­ему в манипу­лято­ре аппа­рата. Пос­ле это­го, запус­тив Logic, нажима­ем боль­шую зеленую кноп­ку Start и вклю­чаем питание аппа­рата.

Не забудь про электробезопасность!

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

  • Убе­дись, что кон­такты зазем­ления во всех розет­ках име­ют оди­нако­вый потен­циал, а еще луч­ше — под­клю­чай компь­ютер, иссле­дуемое устрой­ство и изме­ритель­ные при­боры в одну розет­ку через удли­нитель.
  • Сна­чала соеди­ни все схем­ные зем­ли устрой­ств и толь­ко потом под­клю­чай­ся к лини­ям дан­ных. Обес­печь надеж­ное соеди­нение меж­ду зем­лями, кон­такт не дол­жен отва­ливать­ся при работе.
  • До того как все зем­ли надеж­но соеди­нены, все устрой­ства дол­жны быть вык­лючены (либо вклю­чено толь­ко одно из них — обыч­но это компь­ютер), схем­ная зем­ля USB соеди­нена с его кор­пусом, а кор­пус — с зазем­лени­ем в розет­ке питания. Вклю­чай устрой­ства толь­ко пос­ле того, как объ­еди­нил их зем­ли.
  • Оп­ределись, что отку­да пита­ется, и не соеди­няй лиш­ние линии питания. В таком слу­чае иссле­дуемая схе­ма будет запита­на от аппа­рата, и под­клю­чать к ней +5В от пор­та USB, выведен­ные на разъ­ем ана­лиза­тора, не сле­дует.

В Logic видим вклю­чение питания: обе линии дан­ных перек­люча­ются в высокий уро­вень. Через четыре секун­ды пос­ле подачи питания замеча­ем некото­рую активность на одном из каналов.

Приб­лизив изоб­ражение, отчетли­во видим, что обна­ружен­ная нами активность — не что иное, как переда­ча дан­ных.

Пос­ле пер­вой посыл­ки дан­ных ничего не про­исхо­дит. Но, если мы наж­мем на кноп­ку манипу­лято­ра, уль­траз­вуковой излу­чатель акти­виру­ется и счет­чик импуль­сов умень­шит­ся. Одновре­мен­но мы уви­дим обмен на лини­ях дан­ных. Можем пов­торить нажатия, что­бы убе­дить­ся в пов­торя­емос­ти резуль­татов.

 

Декодирование данных

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

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии