Страница 1 из 1

Антикодграббер на Ардуино

СообщениеДобавлено: 16 сен 2016, 20:46
-=dp=-
Итак, про существование устройства под названием - кодграббер мы уже знаем и поэтому я решил как то отгородить себя и других от подобных девайсов :D

Недолго подумав я разработал устройство которое может предотвратить перехват пакетов по радиоэфиру от авто сигнализации кодграббером.

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

Для изготовления анти кодграббера нам понадобятся следующие детали:

1 - Ардуино про мини, или любая другая.
2 - Приемопередатчик на 433 МГц,
3 - ИК приемник и любой ИК пульт (для опытов вполне пойдет, но можно и сделать свой пульт со своей кодировкой сигнала или применить iButton, и RF метку)
4 - Преобразователь напряжения понижающий DC-DC Step Down , регулируемый или постоянный с выходом на 5 В.

Использовать стабилизаторы типа КРЕН 5 или LM 7805 крайне не рекомендую , так как у них очень малый КПД и они будут сильно греться. При длительной работе в итоге посадят аккумулятор авто :(

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 16 сен 2016, 21:12
-=dp=-
У меня получилась вот такое компактное устройство, выкладываю фото

Re: Анти кодграббер на Ардуино

СообщениеДобавлено: 16 сен 2016, 21:15
-=dp=-
Единственно, надо понимать, что данный анти кодграббер способен защитить далеко не все авто сигнализации, а только те которые работают на частоте 433 МГц, это легко можно проверить собрав только глушилку , включить ее в салоне авто и попробовать поставить авто на сигнализацию, закрыть открыть. Если сигнализация не будет реагировать на нажатия кнопок брелка, то значит все нормально.
Это связано с тем, что бывают авто сигнализации которые работают на 868 МГц, 915 МГц, ну и 315 МГц (Амеровский вариант).
Для защиты этих сигнализаций нужно приобретать передатчик на соответствующую частоту.


Скетч и схема ниже



К сожалению Вы не можете просматривать приватную информацию.


Re: Антикодграббер на Ардуино

СообщениеДобавлено: 16 сен 2016, 21:31
-=dp=-
А вот и видео с демонстрацией работы анти кодграббера на Ардуино :D

https://youtu.be/ozHxOlycZMc

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 16 сен 2016, 22:22
tv_land
Отличный проект.
Таких реализаций как Анти кодграббер нет в интернете, а вещь очень полезная.
Так держать ;)

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 25 окт 2016, 13:33
LLITUK
Добрый день. Пожалуйста продублируйте вложения для данного проекта. Сейчас вложения недоступны для просмотра.

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 26 янв 2017, 13:44
LLITUK
Форум живой? Где все люди? почему игнорируют? Материалы не доступны!!! Наверное нужно перезалить, или я не прав.

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 26 янв 2017, 16:01
-=dp=-
По жалобам пользователей скетч и схему удалили из общего доступа.

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 03 фев 2017, 23:30
LLITUK
Скажите пожалуйста можно получить ссылку на файл вне этого форума? Очень интересует программное решение. Я в программировании новичок, многое ещё сложно.

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 28 мар 2017, 11:33
Серега
dejitof писал(а):А как вы думаете arduino модули тут (ссылка удалена модератором) по нормальной цене или цена слишком завышена?


Купить модули Ардуино можно на Aлиэкспреcc, по ценам от производителей. Дешевле не бывает )))

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 30 апр 2017, 17:17
tv_land
Димон писал(а):По жалобам пользователей скетч и схему удалили из общего доступа.


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

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 04 май 2017, 14:26
-=dp=-
tv_land писал(а):
Димон писал(а):По жалобам пользователей скетч и схему удалили из общего доступа.


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



На самом деле это мало кому интересно, народ просто устанавливает в дополнение к штатной сиге старлайн с диалоговым кодом и всё.
Да и потом простые секретки никто не отменял, а если захотят угнать, угонят на эвакуаторе :D

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 26 ноя 2017, 16:19
tv_land
Jetli86 писал(а):Замануха что бы на сайт регистрировались


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

А написать автору статьи сложно???

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 26 дек 2019, 18:13
lierphoenix
Уважаемый ТС очень интересно данное устройство для собственной безопасности, как можно было бы получить скетч и схему?

Re: Антикодграббер на Ардуино

СообщениеДобавлено: 30 дек 2019, 10:20
-=dp=-
Выкладываю скетч анти-кодграббера на Ардуино

Код: выделить все


//Arduino KEELOQ,STARLINE ANTI Codegrabber v.2
#define TX 8
#define LED 13
byte irrem = 0;
int rem = 1;
int count = 0;
int vrr = 0;
byte TCODE[8];
unsigned int mask,b;
//------------------Keeloq-03-01------------------------------------
byte CODE11[8]={0x50, 0x1C, 0xA7, 0x6B, 0xEA, 0x62, 0x96, 0x20};   
byte CODE12[8]={0xEE, 0xF8, 0x40, 0x89, 0xEA, 0x62, 0x96, 0x40};   
byte CODE13[8]={0xDE, 0x52, 0x29, 0xD7, 0xEA, 0x62, 0x96, 0x20};
byte CODE14[8]={0x81, 0x14, 0x4C, 0x98, 0xEA, 0x62, 0x96, 0x40};
//--------------------------------------------------
//------------------Keeloq-03-05------------------------------------
byte CODE21[8]={0xA4, 0x94, 0x31, 0x2C, 0x41, 0x7A, 0x54, 0x20};   
byte CODE22[8]={0x05, 0xE5, 0xA8, 0x46, 0x41, 0x7A, 0x54, 0x40};   
byte CODE23[8]={0x39, 0x93, 0x47, 0x89, 0x41, 0x7A, 0x54, 0x20};
byte CODE24[8]={0x55, 0x46, 0x77, 0xF0, 0x41, 0x7A, 0x54, 0x40};
//--------------------------------------------------
//------------------Keeloq-04-48------------------------------------
byte CODE31[8]={0xAA, 0x0F, 0x76, 0xF6, 0xC1, 0x6D, 0x34, 0x20};   
byte CODE32[8]={0x1C, 0xB6, 0xF6, 0x9E, 0xC1, 0x6D, 0x34, 0x40};   
byte CODE33[8]={0x4E, 0x10, 0x89, 0x03, 0xC1, 0x6D, 0x34, 0x20};
byte CODE34[8]={0x9B, 0x94, 0x92, 0xD0, 0xC1, 0x6D, 0x34, 0x40};
//--------------------------------------------------
//------------------Keeloq-03-03------------------------------------
byte CODE41[8]={0xEA, 0x1E, 0x3C, 0x3D, 0x89, 0x1C, 0x73, 0x20};   
byte CODE42[8]={0x35, 0xC3, 0xD7, 0x09, 0x89, 0x1C, 0x73, 0x40};   
byte CODE43[8]={0x32, 0xAF, 0x5C, 0xF2, 0x89, 0x1C, 0x73, 0x20};
byte CODE44[8]={0x06, 0xCE, 0x81, 0xA3, 0x89, 0x1C, 0x73, 0x40};
//--------------------------------------------------
//-------------------Starline-02-02------------------------------------
byte CODES11[8]={0x24, 0xB8, 0x34, 0x33, 0xBA, 0x8E, 0xA7, 0xFE} ;
byte CODES12[8]={0x24, 0xB8, 0x34, 0x33, 0xBA, 0x8E, 0xA7, 0xFE} ;
byte CODES13[8]={0x77, 0xB4, 0xCA, 0xEB, 0xBD, 0xD8, 0xA8, 0x96} ;
byte CODES14[8]={0x77, 0xB4, 0xCA, 0xEB, 0xBD, 0xD8, 0xA8, 0x96} ;
byte CODES15[8]={0xC0, 0x81, 0xAC, 0xFE, 0x4A, 0x0A, 0x01, 0x42} ;
byte CODES16[8]={0x9A, 0xD5, 0x59, 0xA4, 0x4A, 0x0A, 0x01, 0x46} ;



void setup() {
pinMode(TX, OUTPUT);
pinMode(LED, OUTPUT);
};

void loop() {
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE11);};
digitalWrite(LED,LOW);
delay(1000);
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE21);};
digitalWrite(LED,LOW);
delay(900);
//--------------посылка STARLINE-----------------------------------
for (int j=0;j<10;j++) {
for (int a=0; a<6; a++) {
digitalWrite(TX, HIGH);
delay(1);
digitalWrite(TX, LOW);
delay(1); }
for (int i=0;i<8;i++)
for (int j=0;j<8;j++)
sendSL(bitRead(CODES11[i],j));
};
delay(1000);
//---------------------------------------------------
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE31);};
digitalWrite(LED,LOW);
delay(1100);
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE41);};
digitalWrite(LED,LOW);
delay(900);
//--------------посылка STARLINE-----------------------------------
for (int j=0;j<10;j++) {
for (int a=0; a<6; a++) {
digitalWrite(TX, HIGH);
delay(1);
digitalWrite(TX, LOW);
delay(1); }
for (int i=0;i<8;i++)
for (int j=0;j<8;j++)
sendSL(bitRead(CODES12[i],j));
};
delay(1000);
//---------------------------------------------------
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE12);};
digitalWrite(LED,LOW);
delay(1100);
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE22);};
digitalWrite(LED,LOW);
delay(900);
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE32);};
digitalWrite(LED,LOW);
delay(1100);
//--------------посылка STARLINE-----------------------------------
for (int j=0;j<10;j++) {
for (int a=0; a<6; a++) {
digitalWrite(TX, HIGH);
delay(1);
digitalWrite(TX, LOW);
delay(1); }
for (int i=0;i<8;i++)
for (int j=0;j<8;j++)
sendSL(bitRead(CODES13[i],j));
};
delay(1000);
//---------------------------------------------------
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE42);};
digitalWrite(LED,LOW);
delay(900);

//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE13);};
digitalWrite(LED,LOW);
delay(1100);
//--------------посылка STARLINE-----------------------------------
for (int j=0;j<10;j++) {
for (int a=0; a<6; a++) {
digitalWrite(TX, HIGH);
delay(1);
digitalWrite(TX, LOW);
delay(1); }
for (int i=0;i<8;i++)
for (int j=0;j<8;j++)
sendSL(bitRead(CODES14[i],j));
};
delay(1000);
//---------------------------------------------------
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE23);};
digitalWrite(LED,LOW);
delay(900);
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE33);};
digitalWrite(LED,LOW);
delay(1000);
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE43);};
digitalWrite(LED,LOW);
delay(1000);
//--------------посылка STARLINE-----------------------------------
for (int j=0;j<10;j++) {
for (int a=0; a<6; a++) {
digitalWrite(TX, HIGH);
delay(1);
digitalWrite(TX, LOW);
delay(1); }
for (int i=0;i<8;i++)
for (int j=0;j<8;j++)
sendSL(bitRead(CODES15[i],j));
};
delay(1000);
//---------------------------------------------------
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE14);};
digitalWrite(LED,LOW);
delay(900);
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE24);};
digitalWrite(LED,LOW);
delay(1000);
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE34);};
digitalWrite(LED,LOW);
delay(1100);
//--------------посылка STARLINE-----------------------------------
for (int j=0;j<10;j++) {
for (int a=0; a<6; a++) {
digitalWrite(TX, HIGH);
delay(1);
digitalWrite(TX, LOW);
delay(1); }
for (int i=0;i<8;i++)
for (int j=0;j<8;j++)
sendSL(bitRead(CODES16[i],j));
};
delay(1000);
//---------------------------------------------------
//--------------посылка KEELOQ-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<5; i++){SendKeeloq(CODE44);};
digitalWrite(LED,LOW);
delay(1000);
//--------------посылка STARLINE-----------------------------------
for (int j=0;j<10;j++) {
for (int a=0; a<6; a++) {
digitalWrite(TX, HIGH);
delay(1);
digitalWrite(TX, LOW);
delay(1); }
for (int i=0;i<8;i++)
for (int j=0;j<8;j++)
sendSL(bitRead(CODES16[i],j));
};
//--------------посылка шума-----------------------------------
digitalWrite(LED,HIGH);
for (byte i=0; i<250; i++){
delay(1);
digitalWrite(TX,HIGH);
delay(1);
digitalWrite(TX,LOW);
  };
digitalWrite(13,LOW);
delay(1000);
};


//-------------Формирование и передача кода KEELOQ----------------------------------
void SendMeander(unsigned int meanderLen)
{
digitalWrite(TX, HIGH);
delayMicroseconds(meanderLen);
digitalWrite(TX, LOW);
delayMicroseconds(meanderLen);
}
void SendKeeloqPreambula()
{
for (byte i=0; i<11; i++)
SendMeander(400);
};
void SendKeeloq(unsigned char *TCODE)
{
signed char a;
SendKeeloqPreambula();
digitalWrite(TX, HIGH);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(10*400);
for(a=0; a<66; a++){
digitalWrite(TX, HIGH);
delayMicroseconds(400);
if(TCODE[a/8]&(1<<(a%8)))
digitalWrite(TX, LOW);
delayMicroseconds(400);
digitalWrite(TX, LOW);
delayMicroseconds(400);
};
delay(16);
};
//-------------------STARLINE--------------------------------------
void sendSL(boolean a){
if (a==false) // если -0
{
digitalWrite(TX, HIGH);
delayMicroseconds(250);
digitalWrite(TX, LOW);
delayMicroseconds(250);
}
else // если -1
{
digitalWrite(TX, HIGH);
delayMicroseconds(500);
digitalWrite(TX, LOW);
delayMicroseconds(500);
}
}