Фрикер Клуб
 

Вернуться   Фрикер Клуб > Основной раздел > Статьи

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 09.05.2020, 20:14   #191
DIVER_SANT
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 2,335
По умолчанию Re: Формат пакета KEELOQ

Вернулись примерно в 2011 года ,когда начались метания слева или справа..
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Старый 09.05.2020, 22:22   #192
ais
Вступил в клуб
 
Регистрация: 26.06.2016
Сообщений: 43
По умолчанию Re: Формат пакета KEELOQ

Цитата:
Сообщение от oleg


Ты меня совсем запутал))) У меня все верно, как с приемника биты вылетают, так я их и вывожу на ЛСД =) Первый бит ХОП-а слева, последний бит кнопки с право. Никаких там фифо и прочих инверсий.

Спасибо Олег! но это наоборот
На самом деле ваши работы очень многим помогли и мне то-же.
(особенно повезло мне что я пишу на ASM для PIC) однако...
..ERA прав в том что нужно делать так как по мануалу.
Правда это (возможно) не совсем удобно глазу но технически должно быть правильно
В тех анализаторах которые были представлены на форуме (ХЗ кем созданы) прием осуществляется НО вывод информации через ЖО... (это мое личное мнение конечно )
Для себя весь вывод посылки keeloq на LCD сделал ТАК как она "рождается" в регистрах при выбросе. Так наглядно, проще представлять как она выглядит...особенно для ее декодирования _
ais вне форума   Ответить с цитированием
Старый 09.05.2020, 22:33   #193
EPA
Супер Модератор
 
Аватар для EPA
 
Регистрация: 01.11.2016
Сообщений: 1,326
По умолчанию Re: Формат пакета KEELOQ

Пример на байте;
1(десятичное представление) = 0000 0001, где 1- это нулевой бит в представлении программиста.
Для простых смертных это 8-ая цифра. А если отзеркалить, то получается 1000 0000. Мля, 1-этож 1 циферка. И ВЫЛЕТАЕТ ОНА В ЭФИР ПЕРВАЯ. Вот, где собака зарыта.
Вот и кипит мозг у простого народа, а царственным особам не понять чаяния и боль смертных. Ай-яй-яйй.
EPA вне форума   Ответить с цитированием
Старый 02.06.2020, 17:12   #194
leech001
Гость клуба
 
Регистрация: 13.08.2017
Сообщений: 8
По умолчанию Re: Формат пакета KEELOQ

Может кому пригодится библиотека для работы с HCS301 (keeloq) для STM32 HAL

https://github.com/leech001/HCS301
leech001 вне форума   Ответить с цитированием
Старый 25.06.2020, 14:02   #195
7-clown
Вступил в клуб
 
Аватар для 7-clown
 
Регистрация: 10.05.2012
Сообщений: 45
По умолчанию Re: Формат пакета KEELOQ

Цитата:
Сообщение от EPA
Ready, сюда написал а не в личку, чтоб сто раз другим тоже не отвечать в личку.

C# - не понимает #define, например как C++, зато легчее виндовозкие окна с кнопками и texBox рисовать. В студии когда пишешь на C++ приложение с form ( окна ), делается как-то через попу. Консольные приложения на C++ лучше писать в NetBeans, ибо там в IDE встроена сразу консоль и это очень удобно, когда отлаживаешь свой код.

Таким образом, если пишешь в Студии (которую ты закачал ), делай лучше на C#.
Вот тебе код Visual Studio написано на C#. Алгоритм скомунизден в Википедии, и мною отредактирован для C#

Это class ( как в твоей Ардуине), вот тебе приведение типов Uint32 - значит безнаковое 32-битное число
PHP код:
 public class Keeloq
 
{
 
// ФОРМУЛЫ ИЗ ВИКИПЕДИИ
 
public static UInt32 KeeLoq_NLF 0x3A5C742E;
 public static 
UInt64 bit(UInt64 xint n) { return (((x) >> (n)) & 1); }
 public static 
UInt64 g5(UInt64 xint aint bint cint dint e)
 {
 return (
bit(x,a)+bit(x,b)*2+bit(x,c)*4+bit(x,d)*8+bit(x,e)*16);
 }
 
 public static 
UInt32 Keeloq_Decrypt(UInt64 mailUInt64 key)
 {
 
UInt64 x mail;
 
int r;
 for (
0528r++)
 {
 
= (<< 1) ^ bit(x31) ^ bit(x15) ^ bit(key, (15 r) & 63) ^ bit(KeeLoq_NLF, (int)g5(x08192530));
 }
 return (
UInt32)x
 }
 public static 
UInt32 KeeLoq_Encrypt(UInt32 dataUInt64 key)
 {
 
UInt64 x data;
 
int r;
 for (
0528r++)
 {
 
= (>> 1) ^ ((bit(x0) ^ bit(x16) ^(UInt32bit(key63) ^ bit(KeeLoq_NLF, (int)g5(x19202631))) << 31);
 }
 return (
UInt32)x;
 }
 
// формат кекса в строчку
 
public static string formatStringFromHex(UInt64 hex)
 { return 
String.Format("0x{0:X}\n"hex); }
 
 
 } 
Если ты на форме нарисуешь RichTextBox1 и кнопку button1
вот такое событие для кнопки
PHP код:
 private void button1_Click(object senderEventArgs e)
 {
 
// label17.Text ="0x"+ textBox1.Text + textBox2.Text + textBox3.Text + textBox4.Text + textBox5.Text + textBox6.Text + textBox7.Text + textBox8.Text;
 
 
 UInt64 mail 
0x87318DCCE381BD59;
 
UInt64 man 0x84XXXXXXXX941223;
 
UInt32 dicriminant 0x81CC0630;
 
RichTextBox1 .Text += "mail:" Keeloq.formatStringFromHex(mail) + "\n";
 
RichTextBox1 .Text += "man: " Keeloq.formatStringFromHex(man) + "\n";
 
RichTextBox1 .Text += "Decrypt: " Keeloq.formatStringFromHex(Keeloq.Keeloq_Decrypt(mailman)) + "\n";
 
//81CC0630 
 
RichTextBox1 .Text += "Encrypt: " Keeloq.formatStringFromHex(Keeloq.KeeLoq_Encrypt(dicriminantman)) + "\n";
 
 } 
И вот такую картину ты увидишь в RichTextBox1
Код:
 mail: 0x87318DCCE381BD59  // Спасибо Paul74s за посылку
 man: 0x84XXXXXXXXX941223  // ГДЕ X ЭТО ЧТО ТЫ ЗАБРУТИЛ
 Decrypt: 0x81CC0630  // декрипт проверяется по кнопке ( 8 ) и 10 битами серийника  (CC)
 Encrypt: 0xE381BD59
Вложение 7065

PHP код:
class Keeloq():

    
def __init__(selfkey):               
        
self.key key
        self
.KeeLoq_NLF 0x3A5C742E
        
    
@staticmethod
    def bit
(databitnum):
        return ((
data>>(bitnum)) & 1)
    
    @
staticmethod
    def g5
(dataabcde):
        return (
Keeloq.bit(dataa) + Keeloq.bit(datab)*Keeloq.bit(datac)*+\
                
Keeloq.bit(datad)*Keeloq.bit(datae)*16)
    
    
def keeloqDecrypt(selfmail):
        
"""Keeloq Decrypt funcion. Put captured data here."""    
        
for i in range(528):
            
decrData = (mail<<1) ^ \
                        
Keeloq.bit(mail31) ^ \
                        
Keeloq.bit(mail15) ^ \
                        
Keeloq.bit(self.key, (15-i)&63) ^ \
                        
Keeloq.bit(self.KeeLoq_NLFKeeloq.g5(mail08192530))
        return 
hex(decrData).upper()

    
def KeeLoqEncrypt(selfopenData):
        
"""Keeloq Encrypt funcion. Put data for encrypt here."""  
        
for i in range(528):
            
encrData = (openData>>1) ^  \
                        
Keeloq.bit(openData16) ^ \
                        
Keeloq.bit(self.keyi&63) ^ \
                        
Keeloq.bit(self.KeeLoq_NLFKeeloq.g5(openData19202631))
        return 
hex(encrData).upper()  
    
    
def __repr__(self):
        return 
"key: " str(hex(self.key))

if 
__name__ == "__main__":
    
mail Keeloq(0x87318DCCE381BD59)
    print(
mail
Ради фана переделал на питон) есть телеграм бот свой....можно ему скормить) завести базу манов и любой желающий может попробовать расшифровать посылку.
__________________
si vis pacem, para bellum
7-clown вне форума   Ответить с цитированием
Старый 28.06.2020, 15:35   #196
7-clown
Вступил в клуб
 
Аватар для 7-clown
 
Регистрация: 10.05.2012
Сообщений: 45
По умолчанию Re: Формат пакета KEELOQ

Ну в принципе вот:
Изображения
Тип файла: jpg photo_2020-06-28_17-32-57.jpg (115.1 Кб, 71 просмотров)
__________________
si vis pacem, para bellum
7-clown вне форума   Ответить с цитированием
Старый 30.06.2020, 20:22   #197
wickedwave
Вступил в клуб
 
Регистрация: 27.06.2020
Сообщений: 11
По умолчанию Re: Формат пакета KEELOQ

Цитата:
Сообщение от 7-clown
Ну в принципе вот:

Подскажи пожалуйста, на этом скрине мануфак дорхана, так ведь?
Зашиваю этот код в микросхему HCS301 через ezp2013, проверяю с приёмником Дорхан (dhre-1) не работает.
wickedwave вне форума   Ответить с цитированием
Старый 30.06.2020, 21:24   #198
Ready
Резидент клуба
 
Регистрация: 20.08.2011
Сообщений: 74
По умолчанию Re: Формат пакета KEELOQ

А серийники одинаковые?
Ready вне форума   Ответить с цитированием
Старый 01.07.2020, 11:59   #199
7-clown
Вступил в клуб
 
Аватар для 7-clown
 
Регистрация: 10.05.2012
Сообщений: 45
По умолчанию Re: Формат пакета KEELOQ

Цитата:
Сообщение от wickedwave
Подскажи пожалуйста, на этом скрине мануфак дорхана, так ведь?
Зашиваю этот код в микросхему HCS301 через ezp2013, проверяю с приёмником Дорхан (dhre-1) не работает.

нет, это не мануфак, вроде посылка обычная с пульта
__________________
si vis pacem, para bellum
7-clown вне форума   Ответить с цитированием
Старый 21.08.2020, 08:43   #200
Lee
Гость клуба
 
Регистрация: 22.10.2015
Сообщений: 2
По умолчанию Re: Формат пакета KEELOQ

добрый день, туплю жестко, прошу пнуть к верном направлении
взял для пробы код для c# из поста EPA
PHP код:
public static UInt32 Keeloq_Decrypt(UInt64 mailUInt64 key)
 {
 
UInt64 x mail;
 
int r;
 for (
0528r++)
 {
 
= (<< 1) ^ bit(x31) ^ bit(x15) ^ bit(key, (15 r) & 63) ^ bit(KeeLoq_NLF, (int)g5(x08192530));
 }
 return (
UInt32)x
 } 
происходит переполнение переменной x
изменяя тип на uint64, получаю:

mail:0x87318DCCE381BD59
man: 0x8400000000941223
Decrypt: 0x9593FCD83B05E40F
Encrypt: 0xC33F601E

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

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

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



Текущее время: 23:25. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com