
Американский хакер Сэми Камкар разработал печатаемого на 3D-принтере робота Combo Breaker, который способен вскрывать кодовые замки за 30-60 секунд. Подробности о роботе хакер опубликовал на своем сайте. Предложенная им конструкция Combo Breaker не требует дорогостоящих компонентов; даже в максимальной комплектации с сервоприводом с аналоговым ответчиком и двухфазным шаговым двигателем стоимость робота не превысит ста долларов.Разработанный хакером робот использует алгоритм подбора кода, основанный на усовершенствованном методе брутфорса, при котором производится грубый перебор возможных комбинаций. Робот применим для всех типов замков компании Master Lock, использующих для открывания комбинацию из трех чисел. По данным Камкара, при работе с такими замками используется его алгоритм, позволяющий вскрывать их самое большее за восемь поворотов кодового диска.Combo Breaker создан на базе Arduino, аппаратно-программного комплекса, созданного компанией Arduino Software для построения простых роботизированных систем. В роботе использована плата Arduino Nano, поддерживающая напряжение 5 вольт (существуют и версии, рассчитанные на максимальное напряжение в 3,3 вольта). Помимо нее в Combo Breaker применяется драйвер шаговых двигателей, двухфазный шаговый двигатель, сервопривод с аналоговым ответчиком о положении плеча, 11-вольтовый аккумулятор и оптический круговой датчик положения вала шагового двигателя.Скетч (микропрограмму) для Arduino Камкар опубликовал на хостинге GitHub. Там же выложены трехмерные модели печатаемых элементов робота (механизмов удержания на замке и захвата кодового диска) и инструкции по сборке Combo Breaker. При точном следовании инструкции внесения каких-либо изменений в скетч не потребуется.Согласно опубликованному скетчу, сервопривод используется для поднятия дужки замка. В случае поднятия ответчик сервопривода передает аналоговый сигнал о том, что положение плеча мотора изменилось. Это означает, что замок открыт. В противном случае перебор комбинаций продолжается. Попытка поднять дужку замка производится после каждого выставления новой комбинации из трех чисел. Все данные о выставленной комбинации, работе робота, положениях плеча сервопривода и вала шагового двигателя могут передаваться на компьютер.Следует отметить, что все данные передающиеся на компьютер функцией Serial.print в скетче в работе самого робота не используются. Это означает, что в случае, если не планируется использовать робота совместно с компьютером, инициирующую эмулированный последовательный порт функцию Serial.begin и функции передачи Serial.print можно удалить. Благодаря этому удастся сократить размер скомпилированной программы, освободив место в памяти микроконтроллера для возможных других функций.
