Исторически слова хакер и хак имели гораздо более широкое толкование. С одной стороны это хитроумные решения в коде программ, с другой это «взлом» систем в более широком понимании: не только информационных систем, но и других систем окружающей нас действительности (иными словами реального мира — 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 сетки, а рук то всего две… Собственно в тот первый раз я просто сократил свой шоппинг-лист до «только супер-необходимого» и обошелся таки сеткой.
И да, рядом то они повесили такого типа аппарат:

Отдельный вопрос у меня вызывает предложение разменять 10 рублей монетой на 10 рублей монетой..., но, главное, все же я не очень понимаю: куда в этот аппарат мне засунуть свой смартфон с *Pay-ем?
Гусары, молчать!
Слово на букву Ж в ответ на «куда засунуть» предлагать не надо — таким образом 10 рублей из автомата все равно не получишь.
Ну что — они меня разозлили.
А этого не стоит делать…
Вечер прошёл в размышлениях. Путь их был примерно такой:
- Таскать для магазина 5/10 рублей в кармане — когда я окажусь в магазине, эти мон��ты будут как назло в кармане другой одежды. Не вариант.
- Просверлить в монете дырку и прицепить как брелок на ключи (ну это собственно второй постоянный артефакт в моих карманах) — но по магазину я тогда буду ходить с ключами висящими на тележке. Бред! Можно конечно на карабинчике подвесить, но все-равно — неудобно каждый раз отстегивать, пристегивать.
- Сделать жетончик (по типу тех что есть у финов) — заменитель монеты — возвращаемся к вариантам 1 и 2.
- Нужно сделать так что бы я смог разблокировать и потом ничего в блокираторе не оставить. Т.е. нужна «отмычка» для монета-приемника блокиратора. Вот ее брелком на ключи можно повесить и снимать каждый раз ненужно.
Вот на идее 4 я и остановился. Первым делом нужно было разобраться как именно блокируется монета и можно ли ее тупо оттуда выдернуть… но нет, первым делом я заглянул в правила для покупателя парочки магазинов, где на тележках стоят такие блокираторы, и не нашел там никаких пунктов, которые бы запрещали вставлять в монета-приемник тележки что-либо другое, кроме монет достоинством 5 или 10 рублей. Может конечно я очень плохо искал…
И вот уже убедившись, что формально я никаких правил не нарушаю, я и приступил к сбору информации и опытам.
Хочешь добиться результата — сформулируй цель
Итак, выбрав направление я решил сформулировать требования к «конечному продукту»:
- «продукт» должен быть исполнен в виде брелка к связке ключей и не требовать снимания его со связки
- «продукт» должен успешно разблокировать тележку
- «продукт» должен без каких-либо усилий выниматься из блокиратора после разблокировки тележки
- (дополнительное требование) тележка должна нормально пристегиваться к другим тележкам на «парковке» тележек (с извлеченным «продуктом» или со вставленным).
Видишь цель — двигайся!
Для начала (несколько забегая вперед) я перечислю те блокираторы, которые мне попались и на которых я тестировал свои решения:
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 про честь совесть и все такое
Если кто-то хочет призвать меня к чести совести или прочим не совсем мне понятным терминам, то я отдельно для вас уточняю:
… и вообще: не учите меня жить,и я не скажу вам в какой тип путешествия вам необходимо отправится а лучше помогите материально (шутка).
- Цели обездолить несчастных сборщиков тележек на парковке передо мной не стояло — я вообще и без монетных блокираторов обычно стараюсь тележку отвезти хоть и не на «парковку» тележек, но хотя бы в то место, откуда ее ближе и удобн��е собрать. Перейдя же на «отмычку» я тележку привожу на общую «парковку» тележек.
- Полученный «продукт» не может быть использован для незаконного обогащения путем воровства монет из блокираторов чужих тележек. Он работает только на разблокировку тележки.
- Я уже несколько раз замечал в магазинах людей в той же степени растерянности что и я, в первый раз наткнувшись на эти дурацкие блокираторы там где их раньше не было. Так что проблема не меня одного касается. В ходе своих тестов, парочке таких людей я уже вручил тележки без монет в блокираторе.
- Я не думаю, что к опубликованному здесь решению не придет кто-то другой. Более того, я уверен, что я «изобрел велосипед»: если хорошенько погуглить, то наверняка найдется не одно подобное решение.
- Если в правилах каких-то магазинов четко прописано, что в блокираторы тележек ничего кроме 5-и и 10-рублевых монет пихать нельзя — то можете озвучить такие магазины — я туда со своей отмычкой не пойду.
… и вообще: не учите меня жить,
