Skip to content

Commit 4d49c40

Browse files
committed
Add Neta_S11-3600010AJ:3
#50
1 parent 77aacdd commit 4d49c40

File tree

3 files changed

+69
-0
lines changed

3 files changed

+69
-0
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,3 +348,9 @@ MigrationBackup/
348348

349349
# Ionide (cross platform F# VS Code tools) working folder
350350
.ionide/
351+
352+
# MacOS
353+
.DS_Store
354+
355+
# Rider
356+
.idea/
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using System.Collections.Generic;
2+
3+
namespace UnlockECU
4+
{
5+
/// <summary>
6+
/// NetaAlgo1
7+
/// Contribution by Ivan Beck @Ivanbk : https://github.com/jglim/UnlockECU/issues/50
8+
/// </summary>
9+
class NetaAlgo1 : SecurityProvider
10+
{
11+
public override bool GenerateKey(byte[] inSeed, byte[] outKey, int accessLevel, List<Parameter> parameters)
12+
{
13+
if (outKey.Length != 2) { return false; }
14+
if (inSeed.Length != 2) { return false; }
15+
byte[] pinBytes = GetParameterBytearray(parameters, "Pin");
16+
long v = pinBytes[1] | pinBytes[0] << 8;
17+
18+
foreach (var challengeByte in inSeed)
19+
{
20+
v ^= (challengeByte << 8);
21+
for (int i = 0; i < 8; i++)
22+
{
23+
if ((v & 0x8000) == 0)
24+
{
25+
v = (v << 1) & 0xFFFF;
26+
}
27+
else if ((v & 0x80) == 0)
28+
{
29+
v = ((v << 1) ^ 0x8025) & 0xFFFF;
30+
}
31+
else
32+
{
33+
v = ((v << 1) ^ 0x8408) & 0xFFFF;
34+
}
35+
}
36+
}
37+
outKey[0] = (byte)(v >> 8);
38+
outKey[1] = (byte)v;
39+
return true;
40+
}
41+
42+
public override string GetProviderName()
43+
{
44+
return "NetaAlgo1";
45+
}
46+
}
47+
}

UnlockECU/db.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13739,6 +13739,22 @@
1373913739
}
1374013740
]
1374113741
},
13742+
{
13743+
"EcuName": "Neta_S11-3600010AJ",
13744+
"Aliases": [],
13745+
"AccessLevel": 3,
13746+
"SeedLength": 2,
13747+
"KeyLength": 2,
13748+
"Provider": "NetaAlgo1",
13749+
"Origin": "Neta_S11-3600010AJ_@Ivanbk",
13750+
"Parameters": [
13751+
{
13752+
"Key": "Pin",
13753+
"Value": "3DFA",
13754+
"DataType": "ByteArray"
13755+
}
13756+
]
13757+
},
1374213758
{
1374313759
"EcuName": "Honda_L1_011149568773",
1374413760
"Aliases": ["1K001-51E-J010", "1K001-51E-J020", "1K001-51E-J030", "1K001-51E-J03X", "1K001-51E-J040", "1K001-51E-J04X", "1K001-51E-J050", "1K001-51E-J060", "1K001-51E-J110", "1K001-51E-J120", "1K001-51E-J130", "1K001-51E-J140", "1K001-51E-J14X", "1K001-51E-J150", "1K001-51E-J160", "1K001-51E-J310", "1K001-51E-J320", "1K001-51E-J510", "1K001-51E-J520", "1K001-55X-M010", "1K001-55X-M020", "1K001-55X-M030", "1K001-55X-M040", "1K001-55Y-J010", "1K001-55Y-J020", "1K001-55Y-J030", "1K001-55Y-J040", "1K001-55Y-J110", "1K001-55Y-J120", "1K001-55Y-J130", "1K001-55Y-J140", "1K001-55Z-Z010", "1K001-55Z-Z020", "1K001-55Z-Z030", "1K001-58V-J120", "1K001-58V-J130", "1K001-58V-J13X", "1K001-58V-J140", "1K001-58V-J14X", "1K001-58V-J150", "1K001-58V-J310", "1K001-58V-J320", "1K001-58V-J330", "1K001-58V-N010", "1K001-58V-N020", "1K001-58V-Z010", "1K001-58V-Z020", "1K001-5K9-J010", "1K001-5K9-J020", "1K001-5K9-J030", "1K001-5KP-J010", "1K001-5KP-J020", "1K001-5KP-J030", "1K001-5KP-J040", "1K001-5KP-J110", "1K001-5KP-J120", "1K001-5P6-J010", "1K001-5P6-J020", "1K001-5P6-J030", "1K001-5P6-J040", "1K001-5P6-J050", "1K001-5P6-J060", "1K001-5P6-J06X", "1K001-5P6-J070", "1K001-5P6-J07X", "1K001-5P6-J080", "1K001-5P6-N010", "1K001-5P6-N020", "1K001-5P6-N030", "1K001-5P6-N040", "1K001-5P6-N050", "1K001-R9S-A010", "1K001-R9S-A020", "1K001-R9S-A030", "1K001-R9S-A040", "1K001-R9S-A050", "1K001-R9S-A060", "1K001-R9S-A310", "1K001-R9S-A320", "1K001-R9S-H010", "1K001-R9S-H020", "1K001-R9S-H030", "1K001-R9S-H040", "1K001-R9S-H050", "1K001-R9S-H060", "1K001-R9S-H310", "1K001-R9S-H320", "1K001-R9S-J010", "1K001-R9S-J020", "1K001-R9S-M010", "1K001-R9S-M020", "1K001-R9S-Z010", "1K001-R9S-Z020"],

0 commit comments

Comments
 (0)