image Я наверное не стал бы писать эту статью, не попадись мне другая статья на тему хакеров. Что меня зацепило: это очень однобокое и явно некорректное использование слова хакер, что характерно в целом для современных высказываний в СМИ, блогах и статьях.

Исторически слова хакер и хак имели гораздо более широкое толкование. С одной стороны это хитроумные решения в коде программ, с другой это «взлом» систем в более широком понимании: не только информационных систем, но и других систем окружающей нас действительности (иными словами реального мира — RL).

Но даже если говорить о «взламывателях информационных систем», то нельзя не упомянуть такие понятия как black hat и white hat.

Ну, а теперь, попытавшись восстановить терминологическую несправедливость в отношении хакеров я хочу рассказать об одном чисто hardware хаке одной из систем RL.

Предыстория


Так уж сложилось что в последние годы я практически перестал пользоваться наличными деньгами. Живя в современном городе у меня все меньше оставалось мест где нельзя было бы расплатиться картой. Где-то полтора года назад у меня появилась карта с NFC. Но таскать ее в кармане все-таки стремно (я по работе знаю немного о том как все происходит с этими оплатами по NFC).

При очередной смене телефона (точнее смартфона) я выбрал модель с NFC и быстренько завел там «БлаБла» Pay или проще *Pay (назовем его так для того что бы избежать ненужной рекламы). Очень скоро я убедился, что и терминалов не умеющих NFC по *Pay в моем повседневном окружении практически не осталось. Опять же, зная по работе как это все работает (*Pay это гораздо более безопасная система нежели карта с NFC в кармане), я довольно быстро стал и банковскую карту дома оставлять.

И вот оно, светлое современное технологичное будущее, когда для повседневной жизни в кармане нужен только телефон!… ну и ключи от квартиры.

Как же жестоко я был «приземлен» в «древнюю современность», когда в очередной раз посетил довольно современный и технологичный магазин и обнаружил, что продуктовую тележку без 5 или 10 рублевой монеты не взять. Какие-то умники решили сократить расходы на тех южан, что собирают тележки по окружающим парковкам и типа наш бережливый человек за свои кровные 5 или 10 рублей отвезет ее на общую стоянку тележек перед входом в магазин.

Я то такой весь современный, в светлом современном мире живущий, когда в телефоне у меня и скидочная карта и *Pay, и я прям по этой скидочной карте беру в зале сканер, и сам свои продукты сканирую, и без кассира потом телефоном расплачиваюсь, но вот тележку взять — возьми и найди где-то эту чертову монету!!!

Сразу скажу: я был в откровенном ступоре. Первая моя реакция была — начать очень громко ругаться матом. Потом я попробовал «стрельнуть пятачок» у других посетителей магазина: ага, как же, у нас монету 5 рублей — денежный знак, на который ничего толком не купишь, никто тебе просто так не даст. Потом я подумал — может кто-то кинул тележку на парковке — но таки нет — свои кровные 5/10 рублей наши сограждане хотят получить назад даже если им далеко тащить тяжелые сумки до своей машины. Потом я понял, что взять сетку (такую, что в руках таскать) я все еще могу без наличных денег в кармане. Но мне то нужно примерно 3 сетки, а рук то всего две… Собственно в тот первый раз я просто сократил свой шоппинг-лист до «только супер-необходимого» и обошелся таки сеткой.

И да, рядом то они повесили такого типа аппарат:

image

Отдельный вопрос у меня вызывает предложение разменять 10 рублей монетой на 10 рублей монетой..., но, главное, все же я не очень понимаю: куда в этот аппарат мне засунуть свой смартфон с *Pay-ем?

Гусары, молчать!
Слово на букву Ж в ответ на «куда засунуть» предлагать не надо — таким образом 10 рублей из автомата все равно не получишь.

Ну что — они меня разозлили.


А этого не стоит делать…

Вечер прошёл в размышлениях. Путь их был примерно такой:

  1. Таскать для магазина 5/10 рублей в кармане — когда я окажусь в магазине, эти мон��ты будут как назло в кармане другой одежды. Не вариант.
  2. Просверлить в монете дырку и прицепить как брелок на ключи (ну это собственно второй постоянный артефакт в моих карманах) — но по магазину я тогда буду ходить с ключами висящими на тележке. Бред! Можно конечно на карабинчике подвесить, но все-равно — неудобно каждый раз отстегивать, пристегивать.
  3. Сделать жетончик (по типу тех что есть у финов) — заменитель монеты — возвращаемся к вариантам 1 и 2.
  4. Нужно сделать так что бы я смог разблокировать и потом ничего в блокираторе не оставить. Т.е. нужна «отмычка» для монета-приемника блокиратора. Вот ее брелком на ключи можно повесить и снимать каждый раз ненужно.

Вот на идее 4 я и остановился. Первым делом нужно было разобраться как именно блокируется монета и можно ли ее тупо оттуда выдернуть… но нет, первым делом я заглянул в правила для покупателя парочки магазинов, где на тележках стоят такие блокираторы, и не нашел там никаких пунктов, которые бы запрещали вставлять в монета-приемник тележки что-либо другое, кроме монет достоинством 5 или 10 рублей. Может конечно я очень плохо искал…

И вот уже убедившись, что формально я никаких правил не нарушаю, я и приступил к сбору информации и опытам.

Хочешь добиться результата — сформулируй цель


Итак, выбрав направление я решил сформулировать требования к «конечному продукту»:

  1. «продукт» должен быть исполнен в виде брелка к связке ключей и не требовать снимания его со связки
  2. «продукт» должен успешно разблокировать тележку
  3. «продукт» должен без каких-либо усилий выниматься из блокиратора после разблокировки тележки
  4. (дополнительное требование) тележка должна нормально пристегиваться к другим тележкам на «парковке» тележек (с извлеченным «продуктом» или со вставленным).

Видишь цель — двигайся!


Для начала (несколько забегая вперед) я перечислю те блокираторы, которые мне попались и на которых я тестировал свои решения:

1. Блокиратор условно названный мной «Пластмассовый» — он действительно весь такой пластмассовый и довольно хлипкий. На нем был поставлен самый первый опыт в этой истории.



2. Блокиратор под условным названием «Кондовый» — он довольно старый (я такие видел давно и много раз). Он сделан довольно добротно. Именно он стал объектом на котором я решил обязательно тестировать все свои решения.



3. Блокиратор «Жлобский» — был обнаружен случайно уже в ходе проведения тестирования решений, имя свое получил за то, что разблокируется он только 10 рублевой монетой.



Ну что, направление задано, первичные данные собраны, начинаем движение


Первым делом я взял какую-то старую пластиковую карту и вырезал из нее «монетку с ручкой». За образчик была взята монета 5 рублей. Для придания толщины использовалась склейка двух одинаковых деталей вырезанных ножницами из карты (+ небольшая доводка надфилем). Так появилась «Отмычка v1.0» (к сожалению фото нет, но ниже есть фото «Отмычки v.2.1» которая в сложенном виде повторяет «Отмычку v1.0»).

Первый опыт на блокираторе «Пластмассовый» показал, что «Отмычка v1.0» извлекается из блокиратора с некоторым усилием. Однако «Кондовый» показал свой характер — вырвать мое «изделие» из него стоило мне изрядных усилий, сломанной отмычки (расслоилась и на краю появилась зазубрина), и продранного случайно ключами пальца.

Только слабаки сдаются после первой неудачи


Важно. В обоих опытах с «Отмычкой v1.0» я успешно смог разблокировать тележку, а также пристыковать тележку к остальным на «парковке» не вставляя «отмычку» в блокиратор. А значит, по крайней мере цели №№ 1, 2 и 4 достигнуты — и это уже некоторое достижение.

Ну а неудача с целью № 3 — это просто повод к переосмыслению. Именно так, вечером того же дня, когда я потерпел фиаско с «Отмычкой v1.0», я сел и вырезал из старых пластиковых карт еще два варианта: «Отмычка v.2.0» и «Отмычка v.2.1»

Первая представляла собой вновь склеенную из двух половинок «Отмычку v1.0» в которой сбоку (там где был задир) был сделан вырез. Таким образом диск, симулирующий монету, получил выемку.

Как показал мой неуспешный опыт, монета в блокираторе фиксируется с двух сторон, так что упоры на монете расположены на угле примерно равном 200 градусов.

Идея выреза в том, чтобы вырез можно было расположить напротив фиксатора монеты с одной стороны, и тогда с другой стороны диск симулирующий монету сможет пройти мимо фиксатора.
Фото первичной «Отмычки v.2.0» не сохранилось, но чуть позже будет фото чуть д��работанной «Отмычка v.2.0.1».

Вторая «Отмычка v.2.1» появилась из предположения, что фиксаторы монеты могут как-то некорректно отработать при разблокировке тележки, если не будут упираться в край монеты. Эта «отмычка» состоит из двух частей, каждая из которых повторяет идею «Отмычка v.2.0», но прорезы сделаны глубже, а будучи сложенными вместе эти две половинки формируют очертание «Отмычки v1.0» — «монетку с ручкой» которая уж точно могла разблокировать тележку (было бы глупо не пользоваться даже частично успешными результатами первых испытаний).

Вот как выглядела «Отмычка v.2.1» в сложенном и разложенном виде:



Испытания «Отмычки v.2.0» и «Отмычки v.2.1» начались с блокиратора «Пластмассовый». Результаты:

«Отмычка v.2.0»: успешно разблокировала тележку, однако вынуть оказалось трудно т.к. после размещения прореза напротив одного из фиксаторов монеты ручка отмычки уперлась в корпус блокиратора. Вытащить «Отмычку v.2.0» все же удалось, однако учитывая факт, что и «Отмычка v.1.0» извлекалась из этого блокиратора, но застревала в «Кондовом», результат испытания нужно было признать неудовлетворительным.

«Отмычка v.2.1» тоже успешно разблокировала тележку, извлечение частей не требовало усилий и было настолько простым, что одна часть просто сама выпала из блокиратора тележки пока я ее откатывал с «парковки» тележек в торговый зал.

Немного об условиях тестирования
Я почти не сомневался, что от любых претензий работников охраны магазина я смогу отвязаться сославшись на правила, однако связываться с ними не хотелось. А в некоторых магазинах, один из охранников постоянно контролирует зону «парковки» тележек. Чтобы не привлекать к себе внимания я подходил с «отмычкой» и реальной монетой (на случай провала первой фазы испытания отмычки — разблокирование тележки) брал тележку и как все покупатели шел в торговый зал. И уже в торговом зале происходила вторая фаза тестирования — извлечение «отмычки» из блокиратора.

Только в случае с блокиратором «Жлобский» тележки никто не контролировал (ни охранники ни камер я не увидел) и там я экспериментировал не забирая тележку с «парковки», что заметно ускорило доводку последней версии «продукта».

Таким образом, тестирование «Отмычки v.2.1» можно признать только частично успешным. Кроме того «Отмычка v.2.1» состоит из двух независимых частей и их трудно будет разместить в качестве брелка на ключах без необходимости снимать с кольца ключей одну или две половинки, что не соответствует требованию №1 проекта.

Уже виден свет в конце тоннеля, и это, возможно, даже не электричка…


Обидный недочет вполне приемлемого варианта «Отмычки v.2.0» меня не остановил, в кармане нашелся перочинный нож «аля-швейцарский» с маленькими ножницами, ими и была подрезана ручка и вырез «Отмычки v.2.0» что превратило ее в «Отмычку v.2.0.1».

Еще один заход (подрезал я прямо в магазине, сразу после первой серии испытаний «отмычек v.2.x») и вуаля: «Отмычка v.2.0.1» успешно извлекается из блокиратора «Пластмассовый» без каких-либо усилий. Перед последующим тестированием на блокираторе «Кондовый» «Отмычка v.2.0.1» была чутка допилена до своего окончательного вида надфилем. Результат повторных испытаний — полный успех!

«Готовый продукт» — «Отмычка v.2.0.1»:



Цель достигнута, но стоит ли останавливаться?


Первое что я решил дополнительно проверить — а играет ли роль толщина «продукта» можно ли разблокировать не клея бутерброд из деталек и не выискивая более толстого материала для изготовления «продукта».

И тут тесты дали очень неоднозначный результат. То есть буквально неоднозначный — один тот же тип блокиратора один раз разблокировался, а другой раз нет (от ненужного копания на «паркинге» тележек спасла резервная монета).

Вот тебе и раз. Как это понимать? С одной стороны — ну если бутерброд работает, то и ладно, но вопрос то есть — а ответа нет.

И тут, мне случайно (не искал его специально) попадается блокиратор «Жлобский» и условия для тестов — идеальные («парковку» тележек никто не контролируют). Однако в кармане только «Отмычка v.2.0.1» и две части «Отмычка v.2.1», все это сделано под 5 рублей, ну и ножик с ножницами есть… «Отмычка v.2.1», «легким движением руки превращается, превращается» в «Отмычку v.3.0» — десятирублевую! Но червонец шире пятака, так что по толщине, сложенные в двое половинки «Отмычки v.3.0» не дотягивают до нужной ширины.

Спокойно тестирую (условия то тестирования — идеальные) «Отмычку v.3.0» на «Жлобском» — не однозначно — разблокирует через раз. Иногда проваливается явно глубже.

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

Собственно это и есть ответ на вопрос почему более узкая «отмычка» через раз разблокировывает тележку. Вывод: толщину «отмычки» все-таки стоит подбирать по толщине монеты. Это будет гарантировать надежное разблокировывание тележки с первой попытки.

Чем все закончилось


Ну собственно ответ на вопрос: какой будет окончательная версия моего «продукта»? решился именно после обнаружения блокиратора «Жлобский». Если есть блокираторы которые разблокируются и 5-ю и 10-ю рублями и такие, которые разблокируются только 10-ю рублями, то в кармане должна быть десятирублевая «отмычка».

Итак, вот он окончательный дизайн: «Отмычка v3.1» — это плавные формы в сочетании с удлиненной изящной ручкой. Изготовлена из тройного сандвича из пластиковых карт, доработано напильником надфилем.



Испытания на всех трех типах блокираторов прошли на 100% успешно. Ручка получилась немного узковата, зато красивая.

PS «А почему исходники не на GitHub-e?»

Я не стану приводить точных чертежей (у меня их и нет — делал все «на глаз»): сделать такую «отмычку» вы сможете сами без труда: обвели монету и пририсовали вырез и ручку, вырезали (с небольшим запасом), подровняли и готово. Если склеиваете из нескольких слоев, то советую одну заготовку обточить до нужных размеров (обтачивать можно приложив монету), а две другие заготовки приклеить по разным сторонам первой и обточить (после высыхания клея) уже все вместе, используя средний слой как цель доводки.

Успехов вам в хакерстве и пусть оно будет в рамках законов.

PPS про честь совесть и все такое
Если кто-то хочет призвать меня к чести совести или прочим не совсем мне понятным терминам, то я отдельно для вас уточняю:

  1. Цели обездолить несчастных сборщиков тележек на парковке передо мной не стояло — я вообще и без монетных блокираторов обычно стараюсь тележку отвезти хоть и не на «парковку» тележек, но хотя бы в то место, откуда ее ближе и удобн��е собрать. Перейдя же на «отмычку» я тележку привожу на общую «парковку» тележек.
  2. Полученный «продукт» не может быть использован для незаконного обогащения путем воровства монет из блокираторов чужих тележек. Он работает только на разблокировку тележки.
  3. Я уже несколько раз замечал в магазинах людей в той же степени растерянности что и я, в первый раз наткнувшись на эти дурацкие блокираторы там где их раньше не было. Так что проблема не меня одного касается. В ходе своих тестов, парочке таких людей я уже вручил тележки без монет в блокираторе.
  4. Я не думаю, что к опубликованному здесь решению не придет кто-то другой. Более того, я уверен, что я «изобрел велосипед»: если хорошенько погуглить, то наверняка найдется не одно подобное решение.
  5. Если в правилах каких-то магазинов четко прописано, что в блокираторы тележек ничего кроме 5-и и 10-рублевых монет пихать нельзя — то можете озвучить такие магазины — я туда со своей отмычкой не пойду.

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