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

Вернуться   Изучение уязвимостей электронных систем > Фрикинг > Охранные системы

Охранные системы Изучение протоколов кодирования охранных систем. (кодграббер, сканер, анализатор кодов.)

Ответ
 
Опции темы
Старый 10.12.2008, 18:27   #1
freak
участник
 
Аватар для freak
 
Регистрация: 03.12.2008
Сообщений: 395
Поблагодарил: 18
Поблагодарили 50 раз в 38 сообщениях
freak стоит на развилке
По умолчанию KeeLoq и StarLine, с чего я начинал прием пакета

oleg, чтобы не идти по заведомо ложному пути, просвятите плиз по двум вопросам:

- насколько важен детальный анализ преамбулы и хедера?
Это помогает просто определить, какой тип сигналки,
или через этот анализ надо делать синхронизацию под разную частоту импульсов?

- смотрел осцилку HCS и старлайна: 0 и 1 задаются по-разному: в старлайне длительность низкого уровня равна длит-ти высокого, в HCS- длит-ть низкого "обратна" к длит-ти высокого, период=const. Вопрос: для адекватного получения битов достаточно-ли просто ориентироваться на длительность высокого уровня, и не делать детальный анализ последующего низкого уровня? (за исключением слишком большой длительности, что говорит об отсутствии сигнала или о хедере, что отменяет принятые биты).

freak добавил 10.12.2008 в 17:27
Первый вопрос уточню: а надо ли делать синхронизацию, или достаточно задать некие крайние временные рамки длительности для 0 и 1, что будет удовлетворять большинству действующих брелков.
Можно даже без невалидного "промежутка" между значениями длительности для 0 и 1 (типа 0= от 10 до 20 единиц времени включительно, а 1 - сразу от 21 до 30 временных единиц включительно, без создания невалидной зоны между ними к примеру от 18 до 22 единиц).
Надеюсьс смысел понятен.

Последний раз редактировалось freak; 10.12.2008 в 18:27. Причина: Добавлено сообщение
freak вне форума   Ответить с цитированием
Старый 10.12.2008, 22:01   #2
oleg
продвинутый фрикер
 
Аватар для oleg
 
Регистрация: 22.01.2007
Сообщений: 2,080
Поблагодарил: 191
Поблагодарили 2,192 раз в 427 сообщениях
oleg скоро станет знаменитым(-ой)
По умолчанию

В общем смотри, прием KeeLoq дело индивидуальное, я не стал замарачиватся микрочиповским приемом, так как у них иная задача нежели у нас. Что ты должен знать в первую очередь:
1) Принимать все 12 периодов преамбулы не обязательно.
2) Точка отсчета будет ходер, по этой паузе легко понять, что преамбула кончилась.
3) Время пакета зависит от разряда батарейки в пульте, 1Те может быть таким 370-600Мкс
4) 3Те контролировать не обязательно, так как там можно ставить помеху!
5) Критерием, что мы приняли ломаный пакет, будет неверный замер 1Те, если лог1 не намеряли то goto принимать с начало.
6) В контролере должен тикать таймер, им мы будем защищать прием, если в отведенное время мы не дождались фронта 1Те, то пакет оборвался, тоже goto принимать с начало!
7)Не пользуйся (воч док таймером), так как он будет ресетить контролер, а нам нужно будет при втором нажатии на пульт определить, что клиент отпустил кнопку и выкинуть программу на подмену. То есть, пакет порвался в самом не предсказуемом месте, мы или не дождались франта goto podmena или пакет поломался в середине 1Те тоже goto podmena.
8)2Те достаточно померить один раз, от этого будет зависеть флаг переноса, который мы задвинем.
9)Принимать 65 и 66 бит пакета не нужно, так как мы все будем паковать в 8 регистров, это кратно 64, а вот выкидывать 65-66 бит нужно, это сделать просто.
10) Критерием, что пакет с пульта повторяется, будет XOR двух хоппингов, принадлежность пакета определим по серийнику, достаточно одного байта.
11) Подмену на две кнопки я не писал, думаю без меня потом разберешься.


уехал в клуб
oleg вне форума   Ответить с цитированием
Старый 11.12.2008, 14:48   #3
freak
участник
 
Аватар для freak
 
Регистрация: 03.12.2008
Сообщений: 395
Поблагодарил: 18
Поблагодарили 50 раз в 38 сообщениях
freak стоит на развилке
По умолчанию

Цитата:
Сообщение от oleg Посмотреть сообщение
1) Принимать все 12 периодов преамбулы не обязательно.

понятно, это ни к чему
Цитата:
Сообщение от oleg Посмотреть сообщение
3) Время пакета зависит от разряда батарейки в пульте, 1Те может быть таким 370-600Мкс

но с учетом данного обстоятельства, по преамбуле можно ввести коррекцию для последующего правильного приема бит. Или забить на это?
Цитата:
Сообщение от oleg Посмотреть сообщение
7)Не пользуйся (воч док таймером), так как он будет ресетить контролер,

мой опыт использования wdt состоит в том, что в циклах и ключевых точках стоит clrwdt (в исходниках это видно). Sleep не использовал.
При этом wdt сработает только если зависнет контроллер (а в той проге был ориентир на неотключаемое питание и невозможность ручного сброса); ну или если прога попадет в цикл без clrwdt, из какого сама не сможет выйти
Минус в том, что можем не заметить баг. Плюс в том, что если все работает как надо, то с WDT будет только надежнее.
Какой минус использования clrwdt?
И еще, вроде при сбросе можно по битам определить причину сброса- по wdt или нет.
Ну и поставить переход, если был wdt - для дальнейшей обработки.
Ведь регистры памяти при этом не сбрасываются (или я забыл?).

freak добавил 11.12.2008 в 13:48
по п.3 уточню, можно без всякой коррекции:
сначала получаем преамбулу, по длительности импульсов в принятой преамбуле определяем две величины для определения длительности 0 и 1. Эти значения можно задавать ступенчато или по алгоритму.
Короче тоже самое, но при приеме хедера у нас уже будут 2 величины для последующего распознавания 0 и 1 и флаг состояния принятой преамбулы. При сбое (сбросе) идем не на прием хедера, а на прием преамбулы.
Так можно распознавать сигнал при разных битрейтах или уходе частоты.

Последний раз редактировалось freak; 11.12.2008 в 14:50. Причина: Добавлено сообщение
freak вне форума   Ответить с цитированием
Старый 11.12.2008, 14:51   #4
yrii
случайно влез
 
Регистрация: 06.11.2008
Сообщений: 44
Поблагодарил: 0
Поблагодарили 0 раз в 0 сообщениях
yrii стоит на развилке
По умолчанию

если не будем контролировать 3Те, то как мы узнаем, что после 2Те нужно ставить помеху на время от 2Те до 3Те?
yrii вне форума   Ответить с цитированием
Старый 11.12.2008, 15:21   #5
oleg
продвинутый фрикер
 
Аватар для oleg
 
Регистрация: 22.01.2007
Сообщений: 2,080
Поблагодарил: 191
Поблагодарили 2,192 раз в 427 сообщениях
oleg скоро станет знаменитым(-ой)
По умолчанию

Зачем контролировать 3Те? После замера 2Те, ждем лог0 и сразу даем помеху)

btfsc PORTA,4 ждем лог 0
goto $-1

bsf PORTA,6 даем помеху
DELAY 400mks
bсf PORTA,6



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


уехал в клуб
oleg вне форума   Ответить с цитированием
Старый 11.12.2008, 15:49   #6
yrii
случайно влез
 
Регистрация: 06.11.2008
Сообщений: 44
Поблагодарил: 0
Поблагодарили 0 раз в 0 сообщениях
yrii стоит на развилке
По умолчанию

а почему именно 400 мкС?
yrii вне форума   Ответить с цитированием
Старый 11.12.2008, 15:50   #7
freak
участник
 
Аватар для freak
 
Регистрация: 03.12.2008
Сообщений: 395
Поблагодарил: 18
Поблагодарили 50 раз в 38 сообщениях
freak стоит на развилке
По умолчанию

Цитата:
Сообщение от oleg Посмотреть сообщение
Вообще, прием это дело каждого, кто как видит ее, так и надо делать, я сделал по своему)

так все-же длительность 0 и 1 определяете фиксированными периодами в неких пределах? или как?
freak вне форума   Ответить с цитированием
Старый 11.12.2008, 15:59   #8
yrii
случайно влез
 
Регистрация: 06.11.2008
Сообщений: 44
Поблагодарил: 0
Поблагодарили 0 раз в 0 сообщениях
yrii стоит на развилке
По умолчанию

я смотрю сначала в пределах 2Те:
count++, если на входе 0,
countP++, если на входе 1
по истечении времени 2Те сравниваю их, делаю вывод какой бит пришел, затем
на время от 2Те до 3Те ставлю помеху.
потом все сначала, пока не насчитаю 65 бит,
если счетчики>2Те, то restart...
yrii вне форума   Ответить с цитированием
Старый 11.12.2008, 16:27   #9
freak
участник
 
Аватар для freak
 
Регистрация: 03.12.2008
Сообщений: 395
Поблагодарил: 18
Поблагодарили 50 раз в 38 сообщениях
freak стоит на развилке
По умолчанию

Может я криво вопрос задаю?....
значение Te фиксировано или адаптивно?
freak вне форума   Ответить с цитированием
Старый 11.12.2008, 16:59   #10
yrii
случайно влез
 
Регистрация: 06.11.2008
Сообщений: 44
Поблагодарил: 0
Поблагодарили 0 раз в 0 сообщениях
yrii стоит на развилке
По умолчанию

Цитата:
Сообщение от freak Посмотреть сообщение
Может я криво вопрос задаю?....
значение Te фиксировано или адаптивно?

адаптивно, у меня считается из преамбулы.....
yrii вне форума   Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формат пакета STARLINE h2 Охранные системы 226 29.12.2013 14:29
Прием KEELOQ с помехой Oleg4 Новички 34 13.05.2010 00:46
KeeLoq и StarLine, с чего я начинал прием пакета oleg Программирование микроконтроллеров 8 13.04.2010 10:19
Прием пакета BEGE Новички 10 17.07.2007 04:30
формат пакета KEELOQ h2 Охранные системы 3 03.03.2006 00:40


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


Перевод: zCarot