Изучение уязвимостей электронных систем.
 
key programming immo tools emergency start device программаторы ключа заводилки Кодграббер штатных охранных систем, toyota, lexus, subaru.

Вернуться   Изучение уязвимостей электронных систем > Для начинающих > Новички

Новички Раздел для новичков. Что такое кодграббер, ретранслятор, подмена кода.

Ответ
 
Опции темы
Старый 13.11.2008, 15:53   #1
Oleg4
участник
 
Регистрация: 11.10.2007
Адрес: Центр
Сообщений: 332
Поблагодарил: 41
Поблагодарили 34 раз в 28 сообщениях
Oleg4 стоит на развилке
По умолчанию Прога для приема Keeloq

Драстье! Вот пытаюсь вникнуть в это дело, с Атмегами. Сразу куча вопросов. Я нашел в сети один хороший человек выложил исходник для приема откоментируйте плиз исходник не все моменты ясны. Где происходит анализ преамбулы, и т.д. Очень буду признателен да и многим думаю пригодится это дело. Исходник прилагаю на С

Извиняйте не получилось прикрепить файл кладу тут

------------------------------------------------

#include <mega8.h>

#include <stdio.h>
#include <delay.h>
#include <String.h>

#define TRFreset 0
#define TRFSYNC 1
#define TRFUNO 2
#define TRFZERO 3

#define NBIT 65

#define HIGH_TO -10
#define LOW_TO 10
#define SHORT_HEAD 20
#define LONG_HEAD 45

#define RfIn PIND.4

typedef unsigned char byte;

bit RFFull;
bit RFBit;
int RFcount;
byte Bptr,BitCount,RFstate,Buf[9];
/////////////// receive /////////////////////////////////
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0=135;
RFBit=RfIn;

if (RFFull)
return;
/////////////////////////////////////////////////////////
switch(RFstate)
{
case TRFUNO:
if ( RFBit == 0)
{
RFstate= TRFZERO;
}
else
{
RFcount--;
if (RFcount < HIGH_TO) RFstate = TRFreset;
}
break;
//////////////////////////////////////////////////////////
case TRFZERO:
if (RFBit)
{
RFstate= TRFUNO;
Buf[Bptr] >>= 1;
if ( RFcount >= 0)
{
Buf[Bptr]+=0x80;
}
RFcount = 0;
if ((++BitCount & 7) == 0) Bptr++;

if (BitCount == NBIT)
{
printf("Reseive signal:");
printf("%02X%02X%02X%02X%02X%02X%02X%02X",
Buf[0],Buf[1],Buf[2],Buf[3],Buf[4],Buf[5],Buf[6],Buf[7]);
printf("\n\r");

RFstate = TRFreset;
RFFull = 1;
}
}
else
{
RFcount++;
if ( RFcount >= LOW_TO)
{
RFstate = TRFSYNC;
Bptr = 0;
BitCount = 0;
}
}
break;
///////////////////////////////////////////////////////////
case TRFSYNC:
if ( RFBit)
{
if ((RFcount < SHORT_HEAD)||(RFcount >= LONG_HEAD))
{
RFstate = TRFreset;break;
}
else
{
RFcount =0;RFstate= TRFUNO;
}
}
else
{
RFcount++;
}
break;
/////////////////////////////////////////////////////////////
case TRFreset:
default:
RFstate = TRFSYNC;
RFcount = 0;
Bptr = 0;
BitCount = 0;
break;
} // switch
//////////////////////////////////////////////////////////////
if(RFFull)
{
RFstate = TRFreset;
RFFull=0;
}
/////////////////////////////////////////////////////////////
} // receive
////////////////// main ////////////////////////////////////
void main(void)
{
PORTD=0x10;
DDRD=0x00;

TCCR0=0x02;
TCNT0=0x00;

TIMSK=0x01;

UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;

////////////////////////////////////////////////////////////
printf(" WAIT SIGNAL!\n\r");
printf("\n\r");
////////////////////////////////////////////////////////////
#asm("sei")
}// main
Oleg4 вне форума   Ответить с цитированием
Старый 14.11.2008, 02:51   #2
ask
случайно влез
 
Регистрация: 24.08.2007
Сообщений: 16
Поблагодарил: 1
Поблагодарили 0 раз в 0 сообщениях
ask стоит на развилке
По умолчанию

ну если не ошибаюсь получается чтото типа такого:
идет синхронизация [20нулей]1
потом идет сама информация:
[9нулей]1 это 1
[10единиц]01 это 0
например
__ sync|__1____1____0____1____1___1____0____1_
000..01 0001 0001 11101 0001 0001 0001 11101 0001
чилсо передается в обратном направление поэтому это 10111011 =0xBB
работает примерно так:
после синка выполняется TRFUNO оно делает выбор между пришедшими битами (0 или 1)
первое у нас 0 0 0 1 1.
т.к. идет 0 вызывается TRFZERO он увеличивает RFc в + строну на 1
опять 0 RFc уже 2
опять 0 RFc уже 3
затем 1, TRFZERO меняется на TRFUNO(!) и проверяется RFc, если он положительный то это 1 если отрицательный то 0, у нас RFc=3, тоест пришла 1
ставим бит в буфер, проверяем не приняли ли мы все биты байта, обнуляем RFc
все, дальше ждем 2 блок
приходит 0 вызывается TRFZERO дальше тоже самое что и в первом случает
3 блок
теперь приходит 1 1 1 0 1
TRFUNO делает декремент получаем -1
опять инкремент -2
опять инкремент -3
дальше идет 0
вызывается TRFZERO, RFc+1 = -2
затем приходит 1, опять RFstate= TRFUNO, RFc унас <0 значит пропускаем Buf[Bptr]+=0x80
обнуляем RFc
ждем следующую партию. Если гдето превысилось количество 0 или 1 то все збрасывается и опять выполняется синхронизация.
я только не уверен на счет правильности [9нулей]1 и [10единиц]01 хотя вроде все сходится
Поправьте если ошибся
ask вне форума   Ответить с цитированием
Старый 25.11.2008, 12:15   #3
yrii
случайно влез
 
Регистрация: 06.11.2008
Сообщений: 44
Поблагодарил: 0
Поблагодарили 0 раз в 0 сообщениях
yrii стоит на развилке
По умолчанию

на сколько я понял, здесь преамбула вообще игнорируется, синхронизация происходит по хидеру, далее ловится сам код....сейчас пытаюсь написать прогу на синхронизацию по преамбуле, чтобы точно посчитать время Те для следующей постановки помехи в битах на это время...
yrii вне форума   Ответить с цитированием
Старый 27.11.2008, 18:54   #4
ask
случайно влез
 
Регистрация: 24.08.2007
Сообщений: 16
Поблагодарил: 1
Поблагодарили 0 раз в 0 сообщениях
ask стоит на развилке
По умолчанию

я сегодня только дописал эту фичу) даже работает вроде как, и мусор малость откидывает, осталость оптимизировать )
ask вне форума   Ответить с цитированием
Старый 28.11.2008, 06:52   #5
yrii
случайно влез
 
Регистрация: 06.11.2008
Сообщений: 44
Поблагодарил: 0
Поблагодарили 0 раз в 0 сообщениях
yrii стоит на развилке
По умолчанию

а у меня пока не получается сделать синхронизацию по преамбуле, счетчик выдает все время разное значение...пробовал по
захвату фронта......сейчас пробую по переполнению, но все равно отличаются значения.... как ты реализовал расчет длительности?
yrii вне форума   Ответить с цитированием
Старый 05.03.2009, 20:06   #6
jetsam
Заблокирован
 
Аватар для jetsam
 
Регистрация: 27.02.2009
Адрес: Санкт-Петербург
Сообщений: 15
Поблагодарил: 2
Поблагодарили 2 раз в 2 сообщениях
jetsam стоит на развилке
По умолчанию

люди обьясните мне,куда весь этот текст засовывать??7и как ваше прошивать граббер?(рыскал по всему форуму не могу никак понять)
jetsam вне форума   Ответить с цитированием
Старый 05.03.2009, 22:00   #7
Piratcom
продвинутый фрикер
 
Аватар для Piratcom
 
Регистрация: 16.02.2008
Сообщений: 1,710
Поблагодарил: 127
Поблагодарили 268 раз в 177 сообщениях
Piratcom стоит на развилке
По умолчанию

Цитата:
Сообщение от jetsam Посмотреть сообщение
люди обьясните мне,куда весь этот текст засовывать??7и как ваше прошивать граббер?(рыскал по всему форуму не могу никак понять)

Например откомпелировать через программу CodeVisionAVR C Compiler и получить *.hex файл, затем с помощью простейшего программатора залить в ATmega 8 и работать... Выкладываю архив, в нём проект в CodeVision и untitled.hex ; файл приведённого выше кода...KeyLoq.zip


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

Последний раз редактировалось Piratcom; 05.03.2009 в 22:09.
Piratcom вне форума   Ответить с цитированием
Старый 07.03.2009, 05:26   #8
sinobi2006
начинающий фрикер
 
Аватар для sinobi2006
 
Регистрация: 21.08.2006
Адрес: Екатеринбуржская область ;)
Сообщений: 517
Поблагодарил: 41
Поблагодарили 81 раз в 71 сообщениях
sinobi2006 стоит на развилке
По умолчанию

эта программа частично списана с килоковского приёма на си.выводин на rs232 код брелка.я собирал макет-работает


Не надо мне 15 раз повторять,я с 9го понимаю!
----------------------------------------------------------------------------------------------
Если тебе пригодился меч один раз,носи его с собой всю жизнь.(Старая китайская мудрость)
sinobi2006 вне форума   Ответить с цитированием
Старый 07.03.2009, 06:12   #9
shnpk
гость
 
Аватар для shnpk
 
Регистрация: 09.02.2009
Сообщений: 123
Поблагодарил: 11
Поблагодарили 45 раз в 17 сообщениях
shnpk стоит на развилке
По умолчанию

Цитата:
Сообщение от jetsam Посмотреть сообщение
люди обьясните мне,куда весь этот текст засовывать??7и как ваше прошивать граббер?(рыскал по всему форуму не могу никак понять)

ты вообще в суть работы грабберов въедь, а потом смотри, куда тебе и что. Ты хоть в схемах разбираешься?

я сижу тут более 3-х месяцев, все читал, во всем разбирался, осмелился зарегиться месяц назад, что бы не задавать тупых вопросов.

Ответ один! Собери сначала программатор! Ссылка ниже!

[Ссылки могут видеть только зарегистрированные пользователи. ]

А потом думай о сборке граббера!
Хватит на каждой теме кричать, люди, помогите!(просто я тебя за 3 дня с такими запросами раз 10 видел) Не то время!
shnpk вне форума   Ответить с цитированием
Старый 07.03.2009, 10:57   #10
jetsam
Заблокирован
 
Аватар для jetsam
 
Регистрация: 27.02.2009
Адрес: Санкт-Петербург
Сообщений: 15
Поблагодарил: 2
Поблагодарили 2 раз в 2 сообщениях
jetsam стоит на развилке
По умолчанию

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

Метки
keeloq, программа


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ВОПРОС - ЧТО ЗА ПРОГА??? джонни555 Пластиковые карты 1 24.01.2013 20:59
прога шпион Помогите amt Флейм 19 29.11.2012 16:38
[Вопрос] Pandora 3300 как увеличить дальность приема lemon73 Охранные системы 2 15.08.2011 23:07
Помогите с написанием своего кода приема пакета Oleg4 Новички 21 18.08.2009 16:27
что за прога? PaKor Лаборатория 5 18.03.2009 05:14


Текущее время: 08:17. Часовой пояс GMT +4.


Перевод: zCarot