КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Программное обеспечение ГУ, Загрузочные носители, и всё что с ними связано.
RomanWS
Сообщения: 12
Зарегистрирован: 13 мар 2024, 23:29

КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Сообщение RomanWS »

Всем доброго времени суток!
обобщим что имеем:
f(ECA2050CF1FFDFEF)=D44A17A5
f(ECA2050CD44A17A5)=x
f(ECA2050C{ x })=x1
f(ECA2050C{ x1 })=x2

A098830CF1FFDFEF = 05BB0000 W68T
8AA88E0CF1FFDFEF = 846AE025 W68T
ECA2050CF1FFDFEF = D44A17A5 W68T
12E4820CF1FFDFEF = D71E7372 W68T
CC1C040CF1FFDFEF = DEAC4602 W68T
886C010CF1FFDFEF = C7D5F50F W68T
6A06840CF1FFDFEF = 091D8856 W68T
61A9030CF1FFDFEF = 3167632B W68T
22AC890CF1FFDFEF = 564B8271 W68T

вторая часть ERC:
F1FFDFEF - несёт в себе информацию о модели : W68T
F1FF5FEF - несёт в себе информацию о модели : Y68T
F1FF1FEF - несёт в себе информацию о модели : Z68T
первая часть ERC:
ECA2050C - скорее всего тоже не случайна, как минимум "50C" - возможно закодирована дата производства, номер или что то подобное.
RomanWS
Сообщения: 12
Зарегистрирован: 13 мар 2024, 23:29

КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Сообщение RomanWS »

ПРОШИВКА NSZT W68 ПАРОЛЬ ERC C7D5F50F.zip - из другой темы. ERC точно хранится в этой 8mb флешь? Кто ни будь раскодировал магнитолу залив этот дамп?
Если э то так то можно попытаться исправить в дампе на ERC=FFFFFFFFFFFFFFFF или 0000000000000000 это бы облегчило понимание алгоритма.
так же есть предположение
f(0000000000000000 или FFFFFFFFFFFFFFFF)=F1FFDFEF
В явном виде поиск по дампу не даёт результатов, ни полный ERC, ни его части, ни в зеркальном виде.
RomanWS
Сообщения: 12
Зарегистрирован: 13 мар 2024, 23:29

КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Сообщение RomanWS »

пока вот что нашлось
Вложения
photo_2024-03-14_11-13-48.jpg
Аватара пользователя
hhanchik
Сообщения: 541
Зарегистрирован: 15 окт 2023, 09:15

КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Сообщение hhanchik »

1.НЕ БРАТЬ В РАСЧЁТ АЛГОРИТМА ЭТО..


вторая часть ERC:
F1FFDFEF - несёт в себе информацию о модели : W68T
F1FF5FEF - несёт в себе информацию о модели : Y68T
F1FF1FEF - несёт в себе информацию о модели : Z68T

2. ИЛИ ЭТО часть КЛЮЧА... СКОРЕЕ 1е.

Я уже писал об этом на дроме.
Аватара пользователя
hhanchik
Сообщения: 541
Зарегистрирован: 15 окт 2023, 09:15

КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Сообщение hhanchik »

НО ТОГДА КАК ОБЪЯСНИТЬ ЭТО???




НОВЫЙ КАЛЬК НЕРАБОЧИЙ







<script>
var ercFull;
ercFull = prompt( ' калькулятор тойота 68 ERC\n16 символов 0-9 and A-Z', '' );
while (ercFull.length != 0x10 ){
alert(' введите 16 символов! ');
ercFull = prompt( ' ввод ERC\n16 знаков кода , 0-9 and A-F', '' );
}

var ercLeft = ercFull.slice(0, 8);

var ercRight = ercFull.slice(8, 16);

var ercRightBin;
ercRightBin = parseInt(ercRight, 16 );
ercRightBin = ercRightBin.toString(2);

var str = ercRightBin.toString(2);
while (str.length < 32) {
str = '0' + str;
}
ercRightBin = str;

var start = 0;

var end = str.length - 1;

var tmp = "";

var arr = new Array(end);

while (end >= 0) {
arr[start++] = str.charAt(end--);

}
var ercRightMirror = arr.join('');


start = 0;
end = ercRightMirror.length - 1;
var arr2 = new Array(end);
while (start <= end) {
arr2[start] = ercRightMirror.charAt(start++);
}
ercRightMirror = arr2.join('');


var magic;
magic = '3714833321';
magic = parseInt(magic, 10);
magic = magic.toString(10);
ercLeft = parseInt(ercLeft, 16);
ercRightMirror = parseInt(ercRightMirror, 2);

var strXor;
strXor = ( ercLeft^ercRightMirror ) ;
strXor = strXor.toString(10);

var codeFinal;

codeFinal = strXor - magic;
if (codeFinal > 0) {
codeFinal = codeFinal.toString(16);
while (codeFinal.length < 8) {
codeFinal = '0' + codeFinal;
}
alert('Unlock ' + codeFinal.toUpperCase()) ;
}
else if (codeFinal < 0){
codeFinal = codeFinal + 0x100000000;
codeFinal = codeFinal.toString(16);
while (codeFinal.length < 8) {
codeFinal = '0' + codeFinal;
}
alert('пароль# ' + codeFinal.toUpperCase()) ;
}


</script>

</head>
<body>
</body>
</


Если вставить эту пару, то ответ правильй.


E094290CF1FF5FEF 3A02FAD


а если эту, то не правильный
61A9030CF1FFDFEF 3167632B


а если эту

440CAA0CF1FF5FEF 0125396F

то ответ вобще со знаком минус

-29758626


АЛГОРИТМ СТАРОГО КАЛЬКА
ПРАВИЛЬНЫЙ


magic = '234949137



АЛГОРИТМ НОВОГО КАЛЬКА

magic = '3714833321'; НЕПРАВИЛЬНЫЙ.
В чем ошибка?
RomanWS
Сообщения: 12
Зарегистрирован: 13 мар 2024, 23:29

КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Сообщение RomanWS »

Новый неправильный алгоритм - это старый алгоритм, в котором подогнали «магическое число» чтобы он верно сработал для одной пары (E094290CF1FF5FEF 3A02FADА). Суть старого алгоритма: разбиваем входной ERC пополам, правую часть зеркалим в бинарном виде, левую и отзеркаленную часть ксорим, из результата ксора вычитаем «магическое число 0xE010A11» получаем код. Изначально тоже была такая идея, что начиная с 68 серии алгоритм тот же, просто изменили это число, но это нетак.
Аватара пользователя
hhanchik
Сообщения: 541
Зарегистрирован: 15 окт 2023, 09:15

КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Сообщение hhanchik »

.Дружище, это я и так знаю что в этом скрипте :lol: Я же его выложил и пара E094290CF1FF5FEF 3A02FADA моя :smile:

Ты неверно понял мой вопрос... :smile:
Последний раз редактировалось hhanchik 15 мар 2024, 11:51, всего редактировалось 1 раз.
Аватара пользователя
hhanchik
Сообщения: 541
Зарегистрирован: 15 окт 2023, 09:15

КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Сообщение hhanchik »

RomanWS писал(а):
14 мар 2024, 09:29
Новый неправильный алгоритм - это старый алгоритм, в котором подогнали «магическое число» чтобы он верно сработал для одной пары (E094290CF1FF5FEF 3A02FADА). Суть старого алгоритма: разбиваем входной ERC пополам, правую часть зеркалим в бинарном виде, левую и отзеркаленную часть ксорим, из результата ксора вычитаем «магическое число 0xE010A11» получаем код. Изначально тоже была такая идея, что начиная с 68 серии алгоритм тот же, просто изменили это число, но это нетак.
какие мысли будут ..... по этому коду ...?

это из прошивы и лодыря 68т
прислал мне vist

undefined4 SEC_calc_erc(uint param_1,uint param_2,uint *param_3)

{
uint uVar1;
uint uVar2;
int iVar3;
undefined4 uVar4;
uint uVar5;
uint uVar6;
uint uVar7;
uint uVar8;
undefined *__s;
undefined *local_7c;
byte *local_78;
undefined4 local_74;
undefined4 *local_70;
undefined4 local_6c;
undefined4 *local_68;
byte abStack_64 [16];
undefined local_54 [4];
undefined local_50 [12];
undefined4 local_44;
undefined4 uStack_40;
undefined4 uStack_3c;
float fStack_38;
undefined4 local_34;
undefined4 uStack_30;
undefined4 uStack_2c;
undefined4 uStack_28;
uint local_24;
byte abStack_20 [4];
undefined auStack_1c [8];

__s = local_54;
local_34 = 0xffffffff;
uStack_30 = 0xffffffff;
uStack_2c = 0xffffffff;
uStack_28 = 0xffffffff;
local_44 = 0xc6edb33f;
uStack_40 = 0x3898ba97;
uStack_3c = 0xed32d1bb;
fStack_38 = 1.041124e-16;
memset(&local_7c,0,0x18);
memset(__s,0,0x10);
memset(abStack_64,0,0x10);
memset(&local_24,0,8);
memset(auStack_1c,0,4);
uVar7 = 0;
do {
uVar8 = uVar7 & 0xff;
uVar5 = uVar7 & 0xff;
uVar7 = uVar7 + 8;
*__s = (char)(param_2 >> uVar8);
__s[4] = (char)(param_1 >> uVar5);
__s = __s + 1;
} while (uVar7 != 0x20);
local_78 = abStack_64;
local_7c = local_54;
local_68 = &local_34;
local_70 = &local_44;
local_74 = 0x10;
local_6c = 1;
iVar3 = FUN_000105c4(&local_7c);
if (iVar3 == -4) {
uVar4 = 0xfffffffe;
}
else if (iVar3 == 0) {
do {
abStack_20[iVar3 + -4] = abStack_64[iVar3];
iVar3 = iVar3 + 1;
} while (iVar3 != 8);
uVar8 = 0;
uVar7 = 0;
do {
uVar6 = uVar7 & 0x7f;
uVar5 = uVar7 & 0xff;
uVar7 = uVar7 + 1;
uVar8 = uVar8 | (local_24 >> (uVar6 << 1) & 1) << uVar5;
} while (uVar7 != 0x10);
uVar5 = 0;
uVar7 = 0;
do {
uVar6 = uVar7;
uVar5 = uVar5 | (uint)abStack_20[uVar6] << ((uVar6 & 0x1f) << 3);
uVar7 = uVar6 + 1;
} while (uVar6 + 1 != 4);
uVar7 = 0x10;
uVar6 = uVar6 - 3;
do {
uVar2 = uVar6 & 0xff;
uVar6 = uVar6 + 2;
uVar1 = uVar7 & 0xff;
uVar7 = uVar7 + 1;
uVar8 = uVar8 | (uVar5 >> uVar2 & 1) << uVar1;
} while (uVar6 != 0x20);
uVar4 = 0;
*param_3 = uVar8;
}
else {
uVar4 = 0xffffffff;
}
return uVar4;
}
RomanWS
Сообщения: 12
Зарегистрирован: 13 мар 2024, 23:29

КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Сообщение RomanWS »

Я в этом не силён, предположу local54 это код разблокировки. По результату работы этой функции FUN_000105c4(&local_7c); принимается решение разблокировать магнитолу и сформировать новый ERC. Если есть листинг этой функции, сбросьте
RomanWS
Сообщения: 12
Зарегистрирован: 13 мар 2024, 23:29

КАЛЬКУЛЯТОР АВТОМАГНИТОЛ ТОЙОТА СЕРИЙ NSZT&NSZN 68

Сообщение RomanWS »

нейросети))

Данный код выполняет математические операции над двумя параметрами (param_1 и param_2), которые передаются в функцию SEC_calc_erc. Он использует массив для хранения этих параметров и затем выполняет некоторые операции с ними. Результат этих операций сохраняется в переменной uVar8. Если все проходит успешно, результат сохраняется в переменной uVar4 и возвращается. Если произошла ошибка, возвращается значение 0xfffffffe или 0xffffffff.

В данном случае, с параметрами param_1=ECA2050C и param_2=F1FFDFEF, код выполнит математические операции и сохранит результат в переменной uVar8. Однако, без доступа к исходному коду функции FUN_000105c4, мы не можем точно сказать, какой именно результат будет получен.
Ответить

Вернуться в «Программное обеспечение.»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing и 72 гостя