Je kunt ook secamosc (spaans proggy) gebruiken om de laatste 3 bytes te bruteforcen.
Let wel: je gaat hierbij informatie in de kaart OVERSCHRIJVEN! Is dat bijv een PBM dan is dat makkelijk weer recht te zetten, maar als je een record wilt lezen waar een keyrecord “bovenop” ligt dan moet je dat eerst lezen, 8*90 over je EIGEN key ENCRYPTEN en dat overschrijven, dan kun je het volgende lezen. Maak je één fout dan ben je je 01-key kwijt of nog erger je 00!!
Dus iedereen die dit wil proberen: oefen eerst op een “testkaart”. Zorg dat je een kaart hebt om mee te klooien, leer de commando’s en zelf keys schrijven en zo (niet met een drukknop progje). Ga DAN pas dit soort dingen doen. Anders is de ellende niet te overzien.
Wat je kunt doen is kijken wat er bovenop key01/primary ligt (81), is dat een PBM of PPV record dan kun je dat veranderen. Je kunt dan 8 bytes uitlezen en dan heb je je eigen 01 key.
Dit vond ik toevallig, heb het nog niet geprobeerd!
Finding out your MK01 (or operational keys) without logging - the holy grail is here!!!
Written by Mal, using the information supplied by Jabo, translated by neilt.
Fourth draft - 03/01/01
I have rushed this so it’s probably full of omissions!!
This seems to be easier to do on newer OnDigital cards.
Create an MK on provider00 with MKFind to allow you to modify the card at a later stage.
Open a copy of Cardmaster+, connect to the card and click the ‘Records’ button. You will
see something like this appear:
Provider 0 .
Record 0001 = 01 00 00 00 00 00 00 00 02 00 00 E0 <<<<< Unknown as yet
Record 0002 = 00 06 05 00 29 00 1B 03 3C 34 20 E0 <<<<< Unknown as yet
Record 0003 = F0 FF FF FF FF FF FF FF FF 29 00 80 <<<<< 90 F0
Record 0004 = 50 FF FF FF FF FF FF FF FF F2 00 C0 <<<<< 91 50
Record 001A = 52 FF FF FF FF FF FF FF FF 1C 00 80 <<<<< 90 52
Provider 1 .
Record 0005 = 50 FF FF FF FF FF FF FF FF 86 00 81 <<<<< 90 50
Record 0006 = 50 FF FF FF FF FF FF FF FF 46 00 C1 <<<<< 91 50 This is the previous record
Record 0007 = 51 FF FF FF FF FF FF FF FF 36 00 81 <<<<< 90 51 Here is the Primary MK01
Record 0008 = 51 FF FF FF FF FF FF FF FF 04 00 C1 <<<<< 91 51 Here iS the Secondary MK01
Record 0015 = FC C4 00 03 FF E0 00 00 00 00 00 91 <<<<< Here is the PBM
Record 0016 = 5C FF FF FF FF FF FF FF FF 7A 00 81 <<<<< 90 5C Here is the 0C key
Record 0017 = 5D FF FF FF FF FF FF FF FF 53 00 81 <<<<< 90 5D Here is the 0D key
Record 0018 = 5E FF FF FF FF FF FF FF FF 2E 00 81 <<<<< 90 5E Here is the 0E key
Record 0019 = 00 00 00 00 00 8C 15 00 00 00 00 D1 <<<<< Unknown as yet
Provider 2 .
Record 0009 = F0 FF FF FF FF FF FF FF FF E9 00 82 <<<<< 90 F0
Record 000A = 50 FF FF FF FF FF FF FF FF 39 00 C2 <<<<< 91 50
Record 000B = F2 FF FF FF FF FF FF FF FF F5 00 82 <<<<< 90 F2
Record 000C = 52 FF FF FF FF FF FF FF FF 0D 00 C2 <<<<< 91 52
etc, etc
Done.
Look for the record in Provider 1 that contains MK01 (marked on the above example).
Find the previous record (in this case I’m really lucky as it’s the one above). The ‘50’
means that it’s key ‘00’ and the ‘Cx’ means that it’s a secondary key. ‘8x’ would mean
primary key. If the previous record begins with an ‘Fx’ (eg ‘F0’ in record 00 03) you can
overwrite this safely as well.
One point to note is that unless you know the contents of the previous record you will lose
them when they are overwritten.
Overwrite the previous key with ‘90 90 90 90 90 90 90 90’ encrypted with your MK created on
provider00. In this case I would be writing to ‘91 50’ in nano speak. The full command
being:
C1 40 MK MK LN 24 ID ID 91 50 n1 n2 n3 n4 n5 n6 n7 n8 82 + sig
where LN is the length
where ID ID is the provider ident to modify (00 1B is OnDigital 1)
where n1-n8 is ‘90 90 90 90 90 90 90 90’ encrypted with your MK on provider00
where MK MK is the management key you are using for the modification (ie 00 02)
Reconnect Cardmaster+ and click ‘Dump’. In this example the
result was:
Records in plain
Record 0006 = D9 77 70 A8 3A 36 00 81 50 90 90 90
Done.
The last 5 bytes of MK01 are ‘D9 77 70 A8 3A’.
Do a ‘C1 5A 01 01 08’ command to get the encypted full MK01. Use CocDec to search for the last
3 missing bytes and you should have your MK01.
After you are done, you may wish to restore the previous record or overwrite it with
‘FF FF FF FF FF FF FF FF’. You may also want to delete the MK you created on provider00 - which
you can do this with MKFind.
Things still to find out:
What to do if the previous record is in provider00 and is not able to be overwritten.
Als ik het bovenstaande voorbeeld bekijk, moet je beginnen met record0002 en niet met 0006 want dan overschrijf je je 00-key!
heb je de inhoud van record 0003, dan kun je die overschrijven en record 0004 uitlezen en zo verder tot je bij 0007 bent, 0008 uitlezen en dan heb je alle relevante keys.
Ik heb gezien dat bij een NL kaart de “previous” record van de MK01 een ppv-record is. Dat kun je wissen en maak dan een key02 aan, die “plain” uit die 90’s bestaat.
Beetje fantasie gebruiken
Je kunt een PPV record verwijderen met 42 FF FF 00 00.
Vervolgens komt de volgende key die je schrijft op dat record te staan.
Dan codeer je die 90’s over je eigen MK en schrijft dat als gecodeerde key met bijv index 05. Zoiets: c1 40 00 P2 LL 24 00 19 90 55 xx xx xx xx xx xx xx xx 82 s1
Op dezelfde wijze als je andere keys schrijft dus.
Later kun je die key weer deleten met 10 05 (wel aan je ident adresseren met 24 00 19 (nl) )
Dan schrijf je weer een ppv record (hoeft niet denk ik).
C1 40 00 0x LL 24 00 19 90 5E xx xx xx xx xx xx xx xx 82 s1
0x= je eigen key. (05)
Het 24 nano zorgt ervoor dat je keyupdate aan Ident 0019 geadresseerd wordt.
Vervolgens die 90’s crypten over je eigen key en schrijven.
Je 0E key ben je dan kwijt maar dat is een kwestie van de kaart een kwartiertje in de ontvanger (of zelf ff crypten en schrijven)
Ik vind het wel belangrijk. Ik probeer al een tijdje een PBM record weg te krijgen voor prov 0019. Volgens het uitlezen en seca faq zou dit een type 00 record zijn:
c1 40 00 02 LL 24 00 19 11 00 82 s1 doet echter niets. (Verwijderen van een type 00 record bij provider 0019)
Dit PBM staat voor mijn Mk00 vandaar.
Wat doe ik fout ?. Mk02 is mijn eigen MK waarmee ik de signatuur laat berekenen