Cyberbobik 0 Жалоба Опубликовано 6 сентября, 2023 Всем приает! Я решил сделать прогу котопая перебирает ключи, но мне надо понять как считать crc я почитал много форумов но так ничего и не нашел. Допусти у меня есть ключ 3D 00 00 00 00 00 00 01 3D это crc как его правильно найти? Пожалуйста не пипшите мне про калькулаторы они мне не помогут. И я не понял формулу x⁸+x⁵+x⁴+1 что там x? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
senyasorokin 6 Жалоба Опубликовано 13 декабря, 2023 Если еще актуально я пару лет назад написал макрос для екзеля. Первый столбец короткий код, второй полный. Макрос вызывается по ctrl+t Полезно для изучения теории расчета crc. Никаких защит по входным данным. Dallas.xlsm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
саид 1 Жалоба Опубликовано 14 декабря, 2023 как убрать звездочку сама первая? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
senyasorokin 6 Жалоба Опубликовано 14 декабря, 2023 2 часа назад, саид сказал: как убрать звездочку сама первая? Не понял вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Семён Семёныч 9 Жалоба Опубликовано 14 декабря, 2023 1 час назад, senyasorokin сказал: Не понял вопрос. Имелась в виду известная проблема с bad crc. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bios 18 Жалоба Опубликовано 14 декабря, 2023 1990 токое себе. ТМ08 гораздо лучше на практике. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dratvoy 0 Жалоба Опубликовано 18 февраля Писал как-то прогу на QT для ключей в болиде. //вызов qDebug() << getBolidString("000000FFFFFF"); //Mainwindow.cpp QString MainWindow::getBolidString(QString hex) { bool ok; QString crc8; unsigned char b1 = hex.mid(0,2).toULongLong(&ok, 16); unsigned char b2 = hex.mid(2,2).toULongLong(&ok, 16); unsigned char b3 = hex.mid(4,2).toULongLong(&ok, 16); unsigned char b4 = hex.mid(6,2).toULongLong(&ok, 16); unsigned char b5 = hex.mid(8,2).toULongLong(&ok, 16); unsigned char b6 = hex.mid(10,2).toULongLong(&ok, 16); const unsigned char d[7] = { 01, b6, b5, b4, b3, b2, b1 }; crc8 = QString("%1").arg(dallas_crc8(d, sizeof(d)), 0, 16).toUpper(); if (crc8.length() == 1) { crc8 = "0" + crc8; } return crc8 + hex + "01"; } unsigned char MainWindow::dallas_crc8(const unsigned char * data, const unsigned int size) { unsigned char crc = 0; for ( unsigned int i = 0; i < size; ++i ) { crc = crc_array[data[i] ^ crc]; } return crc; } //Mainwindow.h QString getBolidString(QString hex); unsigned char dallas_crc8(const unsigned char * data, const unsigned int size); unsigned char crc_array[256] = { 0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83, 0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41, 0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e, 0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc, 0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0, 0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62, 0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d, 0x7c, 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff, 0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5, 0x84, 0xda, 0x38, 0x66, 0xe5, 0xbb, 0x59, 0x07, 0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58, 0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4, 0x9a, 0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6, 0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24, 0xf8, 0xa6, 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b, 0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9, 0x8c, 0xd2, 0x30, 0x6e, 0xed, 0xb3, 0x51, 0x0f, 0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd, 0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92, 0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50, 0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c, 0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee, 0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1, 0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73, 0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49, 0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b, 0x57, 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4, 0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16, 0xe9, 0xb7, 0x55, 0x0b, 0x88, 0xd6, 0x34, 0x6a, 0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8, 0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9, 0xf7, 0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35, }; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
senyasorokin 6 Жалоба Опубликовано 18 февраля 4 часа назад, Dratvoy сказал: unsigned char MainWindow::dallas_crc8(const unsigned char * data, const unsigned int size) { unsigned char crc = 0; for ( unsigned int i = 0; i < size; ++i ) { crc = crc_array[data[i] ^ crc]; } return crc; } Писал как-то прогу на QT для ключей в болиде. Ну у тебя из своего только название функции. Этому исходнику более 20 лет. И без массива crc_array она бесполезна. unsigned char crc_array[256] = { 0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83, 0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41, 0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e, 0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc, 0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0, 0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62, 0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d, 0x7c, 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff, 0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5, 0x84, 0xda, 0x38, 0x66, 0xe5, 0xbb, 0x59, 0x07, 0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58, 0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4, 0x9a, 0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6, 0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24, 0xf8, 0xa6, 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b, 0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9, 0x8c, 0xd2, 0x30, 0x6e, 0xed, 0xb3, 0x51, 0x0f, 0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd, 0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92, 0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50, 0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c, 0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee, 0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1, 0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73, 0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49, 0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b, 0x57, 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4, 0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16, 0xe9, 0xb7, 0x55, 0x0b, 0x88, 0xd6, 0x34, 0x6a, 0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8, 0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9, 0xf7, 0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35, }; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dratvoy 0 Жалоба Опубликовано 18 февраля Пардоньте, поспешил-людей насмешил. Исправил и добавил остатки своего рабочего говнокода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты