Перейти к содержанию

Прошивка для SM2 Pro Clone


Рекомендуемые сообщения

Помучал ChatGPT, немного разобрался с 180 строкой прошивки. Этого не достаточно, но может у кого еще какие идеи возникнут.image.thumb.png.3e9d121a18d5c35fdb60b9d2a8934f0b.png

3-й байт - длина серийного номера если 00 то 5 цифр например A78730 , если 0a то 6 цифр A111788

Ссылка на комментарий
Поделиться на другие сайты

Попробовал ради интереса, как товарищ написал

Номер A111788 стоящий в прошивке 32 по адресу 00000180.
88 17 11 0A A0 BB 06 0D 00 3B C4 58 FF C2 ED A8 = номер A111788

Изменил на номер A111789-два варианта изменений в строке по адресу 00000180.
У меня оба варианта работают в 32 прошивке. Защиту после прошивки не ставил .Не работает в 35,но не лочится.  
89 17 11 0A 84 B0 6F 25 04 F5 A0 45 D5 F8 F0 0B-как товарищ написал.
89 17 11 0A 84 B0 6F 25 00 3B C4 58 FF C2 ED A8-это я попробовал этот вариант.

Ссылка на комментарий
Поделиться на другие сайты

Анализ 180-й был сделан на основе имеющихся прошивок и их серийных номеров:

22 21 a6 00 f8 e0 54 0d 00 3b c4 58 ff c2 ed a8   A62122

30 87 a7 00 4e a2 61 75 00 3b c4 58 ff c2 ed a8   A78730

88 17 11 0a a0 bb 06 0d 00 3b c4 58 ff c2 ed a8   A111788

89 17 11 0a 84 b0 6f 25 04 f5 a0 45 d5 f8 f0 0b   A111789

image.png.d3aef7b379b117bfec4b1eb34ca373c7.pngimage.png.2a3bec1ebcd042fa5fb8a1dd79f8d5b0.png

Байты [4–8] ,я думаю, напрямую связаны с UID устройства. Вряд-ли их можно брать от балды, хотя хз. Скрип на Pyhton никак сука не выходит. Может у кого руки прямее – попробуйте. А может уважаемый Death0505 нам еще какие подсказки даст, так мы ему спасибо скажем.

С картинками не удобно работать. Во вложении вордовский файл, там текстом. 

Анализ.doc

Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, migurv сказал:

А может уважаемый Death0505 нам еще какие подсказки даст

Подскажу, без обид только, все что выше написано бред сивой… кроме конечно серийника

image.jpg

image.jpg

Ссылка на комментарий
Поделиться на другие сайты

21 минуту назад, Death0505 сказал:

Подскажу, без обид только, все что выше написано бред сивой… кроме конечно серийника

image.jpg

image.jpg

С этими данными будет работать с 1 версии до 32

Скорее всего если так пойдет то см 2 про перестанут обновлять 

Ссылка на комментарий
Поделиться на другие сайты

44 минуты назад, Death0505 сказал:

Подскажу, без обид только, все что выше написано бред сивой… кроме конечно серийника

 

 

Спасибо, был небольшой косяк с флагом длины прошивки. Возможно байт [3] это не флаг длины, но если использовать серийник A+6 цифр я думаю его можно оставить 0a. Теперь должно быть все ок. Используя следующий алгоритмом можно попросить ИИ сгенерировать 180-ю строку и попробовать прошиться. На днях попробую - отпишусь. Результаты проверки всех прошивок и в конце алгоритм - под спойлером

Спойлер

Результаты повторной проверки с учетом скорректированного алгоритма серийника:

 

--- Проверка строки: 22 21 a6 00 f8 e0 54 0d 00 3b c4 58 ff c2 ed a8 (Серийник: A62122) ---

Байты [0-2]: 22 21 a6

Флаг длины [3]: 00

Расчитанный серийник (по новому алгоритму A + HEX(b2)[1] + HEX(b1) + HEX(b0)): A62122

Предоставленный серийник:            A62122

Серийник: OK

Ожидаемая длина серийника (по флагу, согласно исходному описанию): Предположительно 6 символов ('A' + 5 HEX цифр), но по факту 7

Фактическая длина расчитанного серийника: 7 символов

Длина: ВНИМАНИЕ: Флаг 00 в исходном описании указан как '6 цифр', но фактически серийник имеет 7 символов.

 

CRC-16-IBM [0-8] LE: OK (Расчитано: C43B, Предоставлено: C43B)

CRC-8 [0-10]: OK (Расчитано: 58, Предоставлено: 58)

XOR [0-10]: OK (Расчитано: FF, Предоставлено: FF)

CRC-16-IBM [0-10] BE: OK (Расчитано: C2ED, Предоставлено: C2ED)

XOR [0-14] Финал: OK (Расчитано: A8, Предоставлено: A8)

 

Общий статус строки: СООТВЕТСТВУЕТ (согласно скорректированному алгоритму серийника)

--- Проверка строки: 30 87 a7 00 4e a2 61 75 00 3b c4 58 ff c2 ed a8 (Серийник: A78730) ---

Байты [0-2]: 30 87 a7

Флаг длины [3]: 00

Расчитанный серийник (по новому алгоритму A + HEX(b2)[1] + HEX(b1) + HEX(b0)): A78730

Предоставленный серийник:            A78730

Серийник: OK

Ожидаемая длина серийника (по флагу, согласно исходному описанию): Предположительно 6 символов ('A' + 5 HEX цифр), но по факту 7

Фактическая длина расчитанного серийника: 7 символов

Длина: ВНИМАНИЕ: Флаг 00 в исходном описании указан как '6 цифр', но фактически серийник имеет 7 символов.

 

CRC-16-IBM [0-8] LE: OK (Расчитано: C43B, Предоставлено: C43B)

CRC-8 [0-10]: OK (Расчитано: 58, Предоставлено: 58)

XOR [0-10]: OK (Расчитано: FF, Предоставлено: FF)

CRC-16-IBM [0-10] BE: OK (Расчитано: C2ED, Предоставлено: C2ED)

XOR [0-14] Финал: OK (Расчитано: A8, Предоставлено: A8)

 

Общий статус строки: СООТВЕТСТВУЕТ (согласно скорректированному алгоритму серийника)

--- Проверка строки: 88 17 11 0a a0 bb 06 0d 00 3b c4 58 ff c2 ed a8 (Серийник: A111788) ---

Байты [0-2]: 88 17 11

Флаг длины [3]: 0a

Расчитанный серийник (по новому алгоритму A + HEX(b2)[1] + HEX(b1) + HEX(b0)): A111788

Предоставленный серийник:            A111788

Серийник: OK

Ожидаемая длина серийника (по флагу, согласно исходному описанию): 7 символов ('A' + 6 HEX цифр)

Фактическая длина расчитанного серийника: 7 символов

Длина: OK

 

CRC-16-IBM [0-8] LE: OK (Расчитано: C43B, Предоставлено: C43B)

CRC-8 [0-10]: OK (Расчитано: 58, Предоставлено: 58)

XOR [0-10]: OK (Расчитано: FF, Предоставлено: FF)

CRC-16-IBM [0-10] BE: OK (Расчитано: C2ED, Предоставлено: C2ED)

XOR [0-14] Финал: OK (Расчитано: A8, Предоставлено: A8)

 

Общий статус строки: СООТВЕТСТВУЕТ (согласно скорректированному алгоритму серийника)

--- Проверка строки: 89 17 11 0a 84 b0 6f 25 04 f5 a0 45 d5 f8 f0 0b (Серийник: A111789) ---

Байты [0-2]: 89 17 11

Флаг длины [3]: 0a

Расчитанный серийник (по новому алгоритму A + HEX(b2)[1] + HEX(b1) + HEX(b0)): A111789

Предоставленный серийник:            A111789

Серийник: OK

Ожидаемая длина серийника (по флагу, согласно исходному описанию): 7 символов ('A' + 6 HEX цифр)

Фактическая длина расчитанного серийника: 7 символов

Длина: OK

 

CRC-16-IBM [0-8] LE: OK (Расчитано: A0F5, Предоставлено: A0F5)

CRC-8 [0-10]: OK (Расчитано: 45, Предоставлено: 45)

XOR [0-10]: OK (Расчитано: D5, Предоставлено: D5)

CRC-16-IBM [0-10] BE: OK (Расчитано: F8F0, Предоставлено: F8F0)

XOR [0-14] Финал: OK (Расчитано: 0B, Предоставлено: 0B)

 

Общий статус строки: СООТВЕТСТВУЕТ (согласно скорректированному алгоритму серийника)

Новый предполагаемый алгоритм и выводы:

На основе анализа предоставленных данных и выявленных закономерностей, наиболее вероятный алгоритм выглядит следующим образом:

 

Байты [0-2] - Идентификатор серийника: Серийник формируется как строка 'A' + вторая HEX цифра байта [2] + две HEX цифры байта [1] + две HEX цифры байта [0]. Это всегда дает серийник длиной 7 символов ('A' + 6 цифр).

Байт [3] - Флаг:

0A: Указывает на тип серийника или его "полноту" (используются все 3 байта [0-2]). Согласуется с фактической длиной 7 символов ('A' + 6 цифр).

00: Указывает на другой тип серийника. Согласно исходному описанию, должен был означать "только [2][1] (6 цифр)", но фактически серийник все равно формируется по правилу выше ([2][1][0]) и имеет длину 7 символов. Описание флага 00 в исходном алгоритме, вероятно, неточное или относится к чему-то иному, кроме фактической длины финальной строки серийника.

Байты [4-8] - Параметры устройства: Как указано, используются в контрольных суммах.

Байты [9-10] - CRC-16-IBM по [0-8], Little-endian: Подтверждено, расчеты совпадают.

Байт [11] - CRC-8 (polynomial 0x07) по [0-10]: Подтверждено, расчеты совпадают.

Байт [12] - XOR всех байтов [0-10]: Подтверждено, расчеты совпадают.

Байты [13-14] - CRC-16-IBM по [0-10], Big-endian: Подтверждено, расчеты совпадают.

Байт [15] - XOR всех байтов [0-14] - Финальный контроль: Подтверждено, расчеты совпадают.

Возможно у меня не достаточно данных, но  сказать что это бред сивой... , если работает в черырех разных вариантах, как-то неубедительно.

Но очень сомневаюсь, что без знания что означают байты [4–8] , что-то может получиться. Хотя они могут быть корректировочными, что бы остальные байты привести к виду 00 3b c4 58 ff c2 ed a8. Так как во всех прошлых прошивках эти байты совпадали. Но это просто версии... Возможно под настроение еще ИИ помучаю.

Ссылка на комментарий
Поделиться на другие сайты

В общем Death0505 прав и найденный алгоритм это бред сивой нейронки. Вот скрипт на питоне который в качестве параметров принимает  первые 9 байт [0-8] (в виде"88 17 11 0a a0 bb 06 0d 00") и выдает байты [9-15] по  алгоритму. Получается полная ..уйня.

calculate_checksums.py

Ссылка на комментарий
Поделиться на другие сайты

59 минут назад, migurv сказал:

В общем Death0505 прав и найденный алгоритм это бред сивой нейронки.

Отлично что вы поняли это. Пишите в личку , обновлю вам бесплатно за ваше упорство.

А вы в свою очередь оставите отзыв в раскрытом виде со всеми пруфами здесь. 

Ссылка на комментарий
Поделиться на другие сайты

27 минут назад, Death0505 сказал:

Отлично что вы поняли это. Пишите в личку , обновлю вам бесплатно за ваше упорство.

А вы в свою очередь оставите отзыв в раскрытом виде со всеми пруфами здесь. 

За предложение спасибо. Но пожалуй откажусь. 32 прошивка очень стабильная, меня устраивает на 100%.  Да и ваше предложение противоречит моему моральному императиву. Буду сидеть в засаде в этом чате вместе с остальными партизанами и ждать когда вы в очередной раз, что-бы подогреть тему выбросите какую нибудь 39 прошивку. 

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   3 пользователя онлайн

×
  • Создать...