Форум по автодиагностике, автосканерам, ремонту, обслуживанию и эксплуатации автомобилей

Форум по автодиагностике, автосканерам, ремонту, обслуживанию и эксплуатации автомобилей (http://autoprogs.ru/index.php)
-   Диагностика VAG (AUDI / Volkswagen / Skoda / Seat) | ремонт электроники (http://autoprogs.ru/forumdisplay.php?f=228)
-   -   SWaP коды (http://autoprogs.ru/showthread.php?t=27646)

Neo_ 24.05.2020 12:06

Получилось:
1. изменить публичный ключ (в измеренных величинах-открытый ключ для функции SWaP) в блоке на заданный ?
2. Изменить vcrn (в измеренных величинах - индивидуализирующий признак) в блоке на заданный?
3. Изменить прошивку блока?
Если хотя бы 1 пункт из 3-х, то можно экспериментировать с заливкой своего swap кода.

Paul43 24.05.2020 13:33

Цитата:

Сообщение от Neo_ (Сообщение 945996)
Получилось:
1. изменить публичный ключ (в измеренных величинах-открытый ключ для функции SWaP) в блоке на заданный ?
2. Изменить vcrn (в измеренных величинах - индивидуализирующий признак) в блоке на заданный?
3. Изменить прошивку блока?
Если хотя бы 1 пункт из 3-х, то можно экспериментировать с заливкой своего swap кода.

Скажу так: сейчас у меня успешно залит swap, в теле которго прописан чужой vin и vcrn. Для дальнейших экспериментов мне нужен swap с указанными выше id от любой машины. Буду очень признателен.

Neo_ 24.05.2020 14:24

Вот так выглядит успешно залитый swap:


Статус всех функций SWaP [$3C00] 0013
[LO]_SWaP_function_state array

[LO]_par SWAP function state
Идентификационный номер 10009008
Код разблокировки функции SWaP доступн.
Сторнирование нет
Индивидуализирующий признак действ.
Необходимые условия выполнены Условие выполнено
Конфигурация исправно
функционирование доступн.
Аутентификация (установление подлинности) Условие выполнено

----------

Цитата:

Сообщение от Paul43 (Сообщение 946029)
Скажу так: сейчас у меня успешно залит swap, в теле которго прописан чужой vin и vcrn.

Сомневаюсь в успехе

Paul43 24.05.2020 14:55

Вложений: 1
Цитата:

Сообщение от Neo_ (Сообщение 946043)
Вот так выглядит успешно залитый swap:


Статус всех функций SWaP [$3C00] 0013
[LO]_SWaP_function_state array

[LO]_par SWAP function state
Идентификационный номер 10009008
Код разблокировки функции SWaP доступн.
Сторнирование нет
Индивидуализирующий признак действ.
Необходимые условия выполнены Условие выполнено
Конфигурация исправно
функционирование доступн.
Аутентификация (установление подлинности) Условие выполнено

----------


Сомневаюсь в успехе

[Ссылки могут видеть только зарегистрированные пользователи. Зарегистрироваться...]

:smile:

gamester 24.05.2020 19:25

Цитата:

Сообщение от Lixodey (Сообщение 945367)
В 2019 году ввели процедуру ресета всех свапов при роботе с иммо.
Тобишь при смене приборки все слетит

А если на время работы с иммо отрубать питание ACC и подменять гейт на другой?.

ASSPI 24.05.2020 20:42

Какая сейчас минимальная цена активации ACC Tiguan2 ?
Кто что может предложить?

240553834 25.05.2020 03:40

Цитата:

Сообщение от Neo_ (Сообщение 945988)
VCRN , VIN в swap коде от другой машины будет отличаться.
Будет ошибка при заливке swap.

WHATSAPP ?

volkangsm 26.05.2020 01:35

thanks for all

----------

i need seat leon all swap codes

Dmitrij551 26.05.2020 07:49

Цитата:

Сообщение от Pashustic (Сообщение 945925)
Dmitrij551, поставь гейт 5q0, активируй на нем круиз оффлайн свапом и сделай замену приборки, или банально добавь ключик)))
Ps в гольфе 7 недавно ключ добавля.. Слетели свапы везде : гейт, асс, 5f

Ещё раз повторю, машина Октавия А7 2014 г/в 1,6 МКПП 5Q0907530M гейт с "ломанным" круизом, заменили приборку, естественно с привязкой ключей - это было в 2019-м...
два месяца назад снимали защиту с ГУ...
Круиз до сих пор работает...
Делали удаленно за деньги.

Paul43 26.05.2020 13:26

Цитата:

Сообщение от 240553834 (Сообщение 946351)
WHATSAPP ?

Кидала! Ни в коем случае не обращайтесь к этому типу!

ASSPI 27.05.2020 12:28

Цитата:

Сообщение от Paul43 (Сообщение 947924)
Кидала! Ни в коем случае не обращайтесь к этому типу!

Спасибо, тоже заинтерсовался, по цене хорошее предложение )

C_H_E_R_E_P 29.05.2020 09:45

А есть у кого пример свапа или лог где активируются сразу несколько функций? В свапе по порядку перечисляются функции или всегда заливается по одному?

Neo_ 29.05.2020 10:01

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

----------

11 02 формат для одного swap id

"11 02 "+swapID+" 03 "+VCRN+" "+VIN+"00 "+EPOCHTIME+" 00 00 00 00 00 00 00 00 00 25 45 7F DD 33 C6 4B 89 92 63 D8 B7 FC D7 91 ED A1 07 7F 81 34 B0 4D E3 6D 90 28 60 41 6C 8B 9C B0 02 46 58 FC FF D7 51 D6 D5 58 44 F8 58 FC 3C 52 9E 2B B0 EB 79 B3 20 EE 11 FD CD E0 5A 51 29 8C F7 33 A4 D5 08 E0 68 C0 54 BD DA 56 BF 98 9D 0B EC 4B 83 73 A0 E0 6C 2B 31 B1 C8 97 2C D0 F2 FA AB 9C CF DE 15 7C 66 F2 00 E6 73 C0 D2 13 97 9D 73 0F 7B CE 9E F3 B8 F8 AB 23 8A 12 B1 F3 F1"

Последние 128 байт криптоподпись с алгоритмом RSA 1024


11 07 для всех swap id


"11 07 "+"FFFFFFFF"+" 03 "+VCRN+" "+VIN+"00 "+EPOCHTIME+" 0F 00 04 01 00 00 05 00 00 00 06 03 00 00 06 09 00 00 06 08 00 00 07 01 00 00 07 02 00 09 30 00 08 00 03 00 01 00 06 01 00 00 06 02 00 00 06 04 00 00 06 05 00 00 06 06 00 00 06 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"

Последние 128 байт(вместо нулей) криптоподпись с алгоритмом RSA 1024

Paul43 29.05.2020 10:34

А есть пример валидации подписи? Попробовал накорябать на скорую руку, но у меня валидация не проходит с теми свапами которые были реально залиты:

String messageHex = "1107FFFFFFFF03blablabla";
BigInteger message = new BigInteger(messageHex, 16);
byte[] messageBytes =message.toByteArray();

String modulusHex = "your_public_key";
BigInteger modulus = new BigInteger(modulusHex, 16);
String exponentHex = "010001";
BigInteger exponent = new BigInteger(exponentHex, 16);
RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec(modulus, exponent);
KeyFactory keyFac = KeyFactory.getInstance("RSA");
RSAPublicKey rsaPub = (RSAPublicKey) keyFac.generatePublic(pubKeySpec);
System.out.println(rsaPub);

String sigBytesHex = "your_sign";
BigInteger sigInteger = new BigInteger(sigBytesHex, 16);
byte[] sigBytes = sigInteger.toByteArray();

Signature signature1 = Signature.getInstance("SHA1withRSA");
signature1.initVerify(rsaPub);
signature1.update(messageBytes);

boolean result = signature1.verify(sigBytes);
System.out.println(result);

Neo_ 29.05.2020 11:10

...нет примера
Откуда взял, что
String exponentHex = "010001";
?
3 пробовал?

Paul43 29.05.2020 11:29

Цитата:

Сообщение от Neo_ (Сообщение 949840)
...нет примера
Откуда взял, что
String exponentHex = "010001";
?
3 пробовал?

Экспоненту от балды взял самую популярную. 3 тоже не проходит.

Neo_ 29.05.2020 11:35

Покажи публичный ключ

Paul43 29.05.2020 11:36

Цитата:

Сообщение от Neo_ (Сообщение 949856)
Покажи публичный ключ

Не могу. Это пока закрытая инфа.

Neo_ 29.05.2020 11:38

Он не оригинальный ?
Оригинал одинаковый для всех одинаковых блоков и читается в измеренных величинах без секретов

Paul43 29.05.2020 11:39

Цитата:

Сообщение от Neo_ (Сообщение 949860)
Он не оригинальный ?

Да, можно и так сказать.

Neo_ 29.05.2020 11:42

Подходим вплотную к теме подмены публичного ключа
:)

C_H_E_R_E_P 29.05.2020 11:55

А железо приходит с каким софтом интересно? Не уж то сразу с ключом

Neo_ 29.05.2020 11:56

В новом блоке есть ключ.

Lixodey 29.05.2020 19:25

Цитата:

Сообщение от Neo_ (Сообщение 949863)
Подходим вплотную к теме подмены публичного ключа
:)

Это не есть проблемой при наличии софта с dev пабликом. Под который есть приват

----------

Цитата:

Сообщение от C_H_E_R_E_P (Сообщение 949866)
А железо приходит с каким софтом интересно? Не уж то сразу с ключом

Серийные детали всегда с серийным пабликом. Под который достать Приват считается не реально

C_H_E_R_E_P 29.05.2020 20:06

Но еще другой момент есть, почему решили что именно 1024? А есть вообще люди у которых получилось с подменой паблика, разумеется что имеется приват от этого паблика

Lixodey 29.05.2020 20:45

Цитата:

Сообщение от C_H_E_R_E_P (Сообщение 950028)
Но еще другой момент есть, почему решили что именно 1024? А есть вообще люди у которых получилось с подменой паблика, разумеется что имеется приват от этого паблика

Ну да. Я так так делать могу

Paul43 29.05.2020 21:41

Цитата:

Сообщение от Lixodey (Сообщение 950014)
Это не есть проблемой при наличии софта с dev пабликом. Под который есть приват

Это не проблема конечно. Проблема в отсутствии софта )

Neo_ 29.05.2020 21:41

Кстати получилось проверить сигнатуру swap кода
для gateway Ауди А3 8V

Публичный ключ начинается с 99 19 70....

Paul43 29.05.2020 21:59

Цитата:

Сообщение от Neo_ (Сообщение 950051)
Кстати получилось проверить сигнатуру swap кода
для gateway Ауди А3 8V

Публичный ключ начинается с 99 19 70....

С какой экспонентой? Есть пример кода?

Neo_ 29.05.2020 22:02

String exponentHex = "03";

Paul43 29.05.2020 22:04

Цитата:

Сообщение от Neo_ (Сообщение 950060)
String exponentHex = "03";

Хмм... чеж у меня то не получается? Или в радаре другая... Надо перебором попробовать )

Neo_ 30.05.2020 00:05

Подвох в том , что

String sigBytesHex = "your_sign";
BigInteger sigInteger = new BigInteger(sigBytesHex, 16);

иногда выдает 129 байт вместо требующихся 128
И
Signature.getInstance("SHA1withRSA");
Неверно выбран алгоритм




P.S Алгоритм проверки сигнатуры свапа для радара такой же, как и для гейта

240553834 30.05.2020 03:56

1107FFFFFFFF03FFFFFFFFFF5756475A5A5A354E5A4A573336 373331320060545D35031000900810009101100092040C3DB4 D33AB313717ACB472D7A92704E181E43E03E8EA86E07CD8558 78AEC823A1830F7427B8494155515941D9362EFC7EA8AF81DB EEBA80A9D9EEB26249512333E05082B9C343401CD8D83B561A 33AFDC4B41F298D3D55F8BA929EB23400449CA7E0D1B80A96D 1346EACF5DA001A6A61D390C403F05A602026841C153A95D46

3QF ACC Change the radar VCRN FFFFFFFF I have the firmware

----------

1107FFFFFFFF03FFFFFFFFFF5741555A5A5A4741354A413034 36303631006055B39D0210009008100092042AD27C4EACCC69 23A2693D8E4E0C0888629986418C96A643417B2C4C01B69752 45A8F81720BF7B8A892829FF5FABFEA32B0DF0FB4854EB6B78 0E745606F27FB821ED7B53DEB1D016478E4401F9893C0F2E3B BB8869A47A32325DBB5A48BDDCC572576B6F4C94C4BE9459DE 4DFB6E7E82DD6BF0E4A7C96EC8D5BDDBBDFB02C3CB



2Q0 ACC VCRN FFFFFFFF

Paul43 30.05.2020 07:47

Цитата:

Сообщение от Neo_ (Сообщение 950090)
Signature.getInstance("SHA1withRSA");
Неверно выбран алгоритм

Не подскажешь какой там алгоритм?

Neo_ 01.06.2020 00:31

5Q0907530F
Открытый ключ для функции SWaP
SWaP_public_key
99 19 70 20 DD A9 1D 14 0A BB A4 90 B5 ED 09 97 32 66 86 77 B6 FC 36 C9 0F 44 99 7F 58 BF 1C 99 82 8C DD 35 B4 F5 BB 76 4F 28 2E 4A 4B AA 98 44 D5 65 19 9D 70 BD 6E 67 C7 B2 D6 C9 37 77 57 DD CE 12 D4 A1 15 32 59 88 5E 5C 05 4B C4 B9 D5 8F 18 83 0E BA 93 C1 43 56 0F A4 B6 B9 3C 79 66 8F D7 5B 33 70 34 84 1E 8E D7 AE CD B8 E6 0E 29 FC D5 60 B3 F6 EC FD E2 D3 2B 1A 7D 78 41 88 78 F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03


swap fsc
11 02 10 00 03 00
03 48 34 05 9E 80
57 56 57 5A 5A 5A
41 55 5A 45 50 30
32 32 34 37 38 00
55 4B 18 63 00 00
00 00 00 00 00 00
00 45 41 D3 C4 D2
4A 9B A1 57 31 4B
E9 97 01 EA 86 2D
66 49 D0 09 1D 05
05 BD C3 7B 3A 80
1D F9 02 C7 3D 08
C8 EB A3 36 B2 48
D8 DE 7D 09 B2 64
DC CF A0 68 D1 3B
E5 67 46 06 84 0D
73 FE E1 FC 31 E9
13 2A 67 7D E8 C4
3D A0 9E 93 48 B6
FD 5F 95 B2 38 11
32 83 6E F2 E7 66
54 AA 2D 57 5A FC
96 02 CB 2F AD F9
98 8F 04 4D 66 85
AA 2A DC 09 8F 48
05 37 02 95 E0 4F
68 6B A5 01 E7 6A
3A E6 3D

import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.Security;
import java.security.Signature;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.RSAPublicKeySpec;
import org.bouncycastle.jce.provider.BouncyCastleProvider ;

public class SignatureCheck {

public static void main(String[] args) throws Exception {

Security.addProvider(new BouncyCastleProvider());

String messageHex = "11 02 10 00 03 00 03 48 34 05 9E 80 57 56 57 5A 5A 5A 41 55 5A 45 50 30 32 32 34 37 38 00 55 4B 18 63 00 00 00 00 00 00 00 00 00";

byte[] messageBytes = getBytesFromHexString(messageHex);

String modulusHexSpaced = "99 19 70 20 DD A9 1D 14 0A BB A4 90 B5 ED 09 97 32 66 86 77 B6 FC 36 C9 0F 44 99 7F 58 BF 1C 99 82 8C DD 35 B4 F5 BB 76 4F 28 2E 4A 4B AA 98 44 D5 65 19 9D 70 BD 6E 67 C7 B2 D6 C9 37 77 57 DD CE 12 D4 A1 15 32 59 88 5E 5C 05 4B C4 B9 D5 8F 18 83 0E BA 93 C1 43 56 0F A4 B6 B9 3C 79 66 8F D7 5B 33 70 34 84 1E 8E D7 AE CD B8 E6 0E 29 FC D5 60 B3 F6 EC FD E2 D3 2B 1A 7D 78 41 88 78 F9";

String[] modulusHexSplit = modulusHexSpaced.split(" ");
String modulusHex = "";
int i = 0;
for (String s : modulusHexSplit) {
modulusHex += s;
i++;
}
BigInteger modulus = new BigInteger(modulusHex, 16);
String exponentHex = "03";
BigInteger exponent = new BigInteger(exponentHex, 16);
RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec(modulus, exponent);
KeyFactory keyFac = KeyFactory.getInstance("RSA");
RSAPublicKey rsaPub = (RSAPublicKey) keyFac.generatePublic(pubKeySpec);

String sigBytesHex = "45 41 D3 C4 D2 4A 9B A1 57 31 4B E9 97 01 EA 86 2D 66 49 D0 09 1D 05 05 BD C3 7B 3A 80 1D F9 02 C7 3D 08 C8 EB A3 36 B2 48 D8 DE 7D 09 B2 64 DC CF A0 68 D1 3B E5 67 46 06 84 0D 73 FE E1 FC 31 E9 13 2A 67 7D E8 C4 3D A0 9E 93 48 B6 FD 5F 95 B2 38 11 32 83 6E F2 E7 66 54 AA 2D 57 5A FC 96 02 CB 2F AD F9 98 8F 04 4D 66 85 AA 2A DC 09 8F 48 05 37 02 95 E0 4F 68 6B A5 01 E7 6A 3A E6 3D";

byte[] signBytes = getBytesFromHexString(sigBytesHex);
Signature sign = Signature.getInstance("RipeMd160withRSA");
sign.initVerify(rsaPub);
sign.update(messageBytes);
if (sign.verify(signBytes)) {
System.out.println("Signature true");
} else {
System.out.println("Signature false");
}
}
private static byte[] getBytesFromHexString(String hexString) {
byte[] buff = new byte[128];
String[] splitted = hexString.split(" ");
int i = 0;
for (String s : splitted) {
buff[i] = (byte) Integer.parseInt(s, 16);
i++;
}
byte[] result = new byte[i];
for (int index = 0; index < i; index++) {
result[index] = buff[index];
}
return result;
}
}


Signature true

240553834 01.06.2020 03:45

:thumbup:

Paul43 01.06.2020 10:10

Цитата:

Сообщение от Neo_ (Сообщение 950090)
P.S Алгоритм проверки сигнатуры свапа для радара такой же, как и для гейта

Подтверждаю! Поменял на RipeMd160withRSA - теперь валидируется правильно. Спасибо!

zf210 02.06.2020 23:04

Друзья, такой вопрос у кодиака РФ нет распознавания пеших, как я вычитал для активации этой части нужен свап для радара, вопрос возможно ли это сделать удаленно и не нужно ли шить и параметрию новую лить в стоковый радар?

jvkk 03.06.2020 09:48

I know some guys could generate swap code remotely but not me.

It is possible to generate your own SWaP codes if you have private key and able to put it into firmware and flash it.
I think this might be difficult.
Is there any way to do this?
Also I think the public key might also need be signed... (this observed in 5F)

Others works are simple.
For example, generate swap code
echo "1107ffffffff03deadbeef88544849534953414e4558414d5 04c453939005ed742470200040100023000f00" |xxd -r -p > my_swap.bin
echo $(xxd -p -c 128 my_swap.bin)$(openssl dgst -ripemd160 -binary -sign my_private.pem my_swap.bin
|xxd -p -c 128)

Neo_ 03.06.2020 10:34

Приватный ключ не нужно помещать в блок (do not put the private key to firmware)

Public key Put to firmware only


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

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод:
zCarot
Автодиагностика и автосканеры.