Gast Geplaatst: 10 augustus 2002 Geplaatst: 10 augustus 2002 Hier even een korte uitleg van checksum 32 (SFV) De uitleg en vraag van Azazal is duidelijk, dus hier even een voorbeeld van een crc32 berekening. Alles met de hoop dat er wat meerdere mensen aan het proggen slaan voor de vraagstelling van Azazal. public class eSFVCheck { static StringBuffer buffer; static StringBuffer buffertwo; static String Test_String; static String Test_Stringtwo; static int blah = 0; static int blahtwo =0; static eSFVCheck ClassVariable = new eSFVCheck(); static StringBuffer OGChecksum = new StringBuffer(""); public static void main(String[] args) throws IOException { ClassVariable.ReadSFVFile(); } void CalculateChecksum(StringBuffer OGChecksum) { CRC32 checksum = new CRC32(); try { System.out.println("Enter the location of the file to be checked."); System.out.print("(_/-> "); buffer = new StringBuffer(""); while ((blah = System.in.read()) != 13) { buffer.append((char) blah); } buffer.deleteCharAt(0); Test_String = buffer.toString(); FileInputStream file = new FileInputStream(Test_String); int length = file.available(); byte aofb[] = new byte[length]; file.read(aofb, 0, length); file.close(); checksum.update(aofb); long chk = checksum.getValue(); String hs = Long.toHexString(chk); String hs2 = hs.toUpperCase(); System.out.println("\nFile read: "+ Test_String); System.out.println("Bytes read: " + length + " bytes"); System.out.println("Checksum calculated: " + hs2); System.out.println("Original checksum : " + OGChecksum); if (hs2.equals(OGChecksum.toString())) System.out.println("Not Corrupt"); else System.out.println("Corrupt"); } catch (IOException e) { System.out.println(e.toString()); } } void ReadSFVFile() { try { System.out.println("Enter the location of the .sfv file to be read."); System.out.print("(_/-> "); buffertwo = new StringBuffer(""); while ((blahtwo = System.in.read()) != 13) { buffertwo.append((char) blahtwo); Test_Stringtwo = buffertwo.toString(); } FileReader SFVFile = new FileReader(Test_Stringtwo); BufferedReader in = new BufferedReader(SFVFile); boolean eof = true; while (eof != false) { String FirstString = in.readLine(); if ((FirstString.charAt(0)) == ';') { eof = true; } else { char chararray[] = new char[FirstString.length()]; chararray = FirstString.toCharArray(); int stringlength = FirstString.length(); for (int i = 8; i > 0; i--) { OGChecksum.append(chararray[(stringlength - i)]); } eof = false; } } in.close(); ClassVariable.CalculateChecksum(OGChecksum); } catch (IOException f) { System.out.println(f.toString()); } } }
Gast Geplaatst: 10 augustus 2002 Geplaatst: 10 augustus 2002 Is dit nog een berekening voor seca (dus niet 2). Is dit dus uitleg van een voorbeeld berekening voor hoe het nu gedaan wordt (seca1) ? Kun jij een aantal voorbeelden geven van Seca2? Dus wat gaat erin en welke checksum moet eruit komen (je hebt natuurlijk geen voorbeeld berekening). Als je daar een aantal voorbeelden van hebt dan zou ik (en ik hoop vele anderen) eens kunnen proberen daar een berekening bij te verzinnen (door computer laten berekenen).
Gast Geplaatst: 10 augustus 2002 Geplaatst: 10 augustus 2002 Hoi Kimble, ik heb de indruk dat dit een java-script is. Dit is toch geen voorbeeld maar een progje wat er staat <img src="/ubbthreads/images/icons/confused.gif" alt="" /> Kan je dit wat beter toelichten aub. Bedankt <img src="/ubbthreads/images/icons/wink.gif" alt="" />
Gast Geplaatst: 10 augustus 2002 Geplaatst: 10 augustus 2002 @lancelot Dit is absoluut geen java en ff iets meer uitleg gaat niet zo makkelijk je moet bij de bodem beginnen in pizza taal gezegd wil je eea kunnen begrijpen dan moet je toch wat assembler,C enz. kunnen en het is inderdaad een stukje van een prog. maar dat is het hele codeer en decodeer gebeuren ook
Gast Geplaatst: 10 augustus 2002 Geplaatst: 10 augustus 2002 Het is geen berekening voor de checksum zoals Seca1, waarom niet ?? Als je er vanuit gaat dat Seca2 dezelfde berekeningen uitvoert als Seca1 dan had het al lang open gelegen. Feit is dat er gevraagd werd of er meerdere mensen zouden kunnen kijken naar checksum berekeningen. Gezien de reactie's dat er vele monden van verbazing openvielen en dat het ingewikkeld is, en wat knap allemaal, is volgens mij de vraag niet helemaal begrepen. De vraag was duidelijk of er mensen zouden kunnen zijn die konden helpen met de checksum, niet om kompleet Seca2 te analyseren. Het laat een duidelijke berekening zien van een crc32 zoals zelfs een winzip, rar pakketje gebruikt. De vraag van Azazel was duidelijk hulp bij checksumberekeningen. En ik neem aan dat iedereen wel iets van wiskunde weet zonder verder ook maar enige kennis van coderingen te weten. Hoop dat ik nu wel duidelijk ben geweest, in ieder geval de vraag is al meerdere gesteld, alleen de reacties waren in mijn ogen geen antwoord op de vraag. Resumerend, dit is een voorbeelberekening van een checksum (crc32) en van Azazel de vraag of er nog meer mensen kunnen helpen bij checksumberekeningen.
Gast Geplaatst: 10 augustus 2002 Geplaatst: 10 augustus 2002 never mind...(bericht verwijdert door mezelf)
Azazel Geplaatst: 10 augustus 2002 Geplaatst: 10 augustus 2002 Als eerse Kimble bedankt voor je duidelijke voorbeeld m.b.t. je voorbeeld berekening. Hier wil ik aan toevoegen wat ik al eerder schreef in 'the study continues'. Dan wordt het een beetje overzichtelijker. In principe gaan we ervan uit dat voor elke kaart dezelfde berekening wordt gebruikt. Om de checksum van de key's te berekenen gebruikt men per kaart data als masterkey's, serie nummer, usertables, etc.) D.w.z. zeggen dat elk kaart een andere checksum heeft op de key's 0C, 0D en 0E. De kunst is om erachter te komen welke checksum je eigen kaart heeft, welk berekening kunnen we hiervoor gebruiken? Berekeningen op de vorige vesies kunnen we nu niet meer toepassen, maar mischien dat er met een kleine aanpassing ........ Alles wordt bereken d in decimalen en aan het einde veranderen we de checksum in hexdecimaal. 1) Serie nummer wordt gedeeld door 2300 en we krijgen dan een xx getal, dit getal zullen we 'abcd' noemen, en dat is een nummer tussen de 0 en 2300. 2) Splitsen vanhet nummer "abcd" in twee groepen: "ab" , "cd" 3) Optellen van "ab" + "cd" en we krijgen dan weer een uitkomst ("efg"), deze ligt tussen de 0 en 198 4) De twee laaste cijfers ("fg") van de laatste uitkomst brengen we over in hexdecimaal en verkrijgen zo dus de checksum. VOORBEELD: sn = serie nummer 1) Laten we aannemen dat sn is 123.456.789 123.456.789 / 2300 = 53676 123.456.789 - (53676 * 2300) = 1989 Dit is dus hetzelfde als: 123.456.789 = 53676 * 2300 + 1989 abcd = 1989 ------> 19 89 ab = 19 cd = 89 ab + cd = 19 + 89 = 108 = 0108 -----> 01 08 fg = 08 08 (dec) = 08 (hex) = checksum Dus de register corresponderend aan de serie nummer moet zijn: 00 08 00 07 5B CD 15 waar 07 5B CD 15 is de nummer 123.456.789 in hexdecimal en 08 de checksum. Gezien deze manier van checksum berekenen voor de serie nummer moet er ook een methode zijn om de checksum voor de key's te berekenen. Wat ik weet is dat alle kaarten dus dezelfde keys hebben maar de checksum per kaart verschilt... Nog een voorbeeldje: 2) Serie nummer = 444.444.444 444.444.444 = 193236 * 2300 + 1644 ab = 16 cd = 44 ab + cd = 16 + 44 = 60 = 060 -----> 00 60 60 (dec) = 3C (hex) = checksum Register : 00 3C 00 00 1A 7D AF 1C Saludos! 'Azazel miembro del equipo RAIDEN, la resistencia.' [color:"red"] LLORAMOS JUNTOS, GANAREMOS JUNTOS! [/color]
Gast Geplaatst: 10 augustus 2002 Geplaatst: 10 augustus 2002 Hoi, Dit is voor het eerst dat ik durf te reageren (en vergeef me als mijn opmerking ronduit stom is). Allereerst alle legale kaarten hebben een nummer (logisch) In de nummering moet een bepaalde logica zitten. Zodra die logica ontsloten is, door gewoonweg achter zo veel mogelijk kaartnummers proberen te komen. Mogelijk kan dit via loggen <img src="/ubbthreads/images/icons/confused.gif" alt="" /> <img src="/ubbthreads/images/icons/confused.gif" alt="" />. Is in ieder geval een gedeelte van de bouwstenen voor de checksum bekend. Verder lijkt het mij logisch dat voor elke kaart het zelfde rekensommetje wordt gebruikt. Okee als de kaartnummering logica is "ontleed" is er nog maar een klein gedeelte opgelost, maar er is in ieder geval 1 onbekende minder. Hopelijk zit ik een beetje op het goede spoor <img src="/ubbthreads/images/icons/confused.gif" alt="" /> <img src="/ubbthreads/images/icons/confused.gif" alt="" /> Met Vriendelijke Groet, Wil Weten
Gast Geplaatst: 11 augustus 2002 Geplaatst: 11 augustus 2002 @Azazel De berekening die je doet op het serie nummer van de kaart komt uit SECA1? Zo,ja wat hoop je hier dan mee te doen? Een string te vinden in de byte code van de kaart zodat je deze plaatsen kan vast leggen als serienummer checksum? Als je zeker bent van deze berekening is het simpleweg een applicatie maken waarmee je alle bytecode ingeeft en het serie nummer en de applicatie kan snel zien waar de eventueele checksum staat in de byte code. De vraag blijft echter is de berekening wel juist. <img src="/ubbthreads/images/icons/confused.gif" alt="" /> Ik heb wel wat ervaring in het maken van checksum. Het is echter niet eenvoudig om een reverse berekening te maken. Ik denk dat het wat te simple is weergegeven. Eén extra variable en het word tienkeer zo lastig zo niet nog veel ingewikkelder. <img src="/ubbthreads/images/icons/frown.gif" alt="" /> Ik blijf het volgen en als ik iets kan bij dragen zal ik dat zeker doen. Keep up the good work <img src="/ubbthreads/images/icons/cool.gif" alt="" /> Allround
Gast Geplaatst: 11 augustus 2002 Geplaatst: 11 augustus 2002 Ik moet eerlijk bekennen (hoewel ik zelf sw engineer ben geweest) dat ik nog nooit met checksums gewerkt heb. Dus ben dan ook van de hele discussie niet zo op de hoogte. Wat ik hier echter zie is (zonder iemand te willen beledigen) "simpelweg" stoeien met getallen. De software is alleen een geautomatiseerde manier om aan de checksum te komen maar is niet direct nodig. Ik denk dan ook dat voor velen het laatste voorbeeld het meest duidelijke is (nogmaals zonder te beweren dat het simpel zou zijn). De software is denk ik voor velen een drempel geweest. Goed voorbeeld dus!!!!!!!!! Ook ik zou er wel mijn steentje aan willen bijdragen maar dan moet er voor mijn gevoel wel iets meer info zijn (waarmee ik me aansluit bij vorige berichtgevers). Bij reverse engineering gaan we toch uit van de uitkomst en werken naar de berekening toe. Mijn vraag is dan ook: Zijn er uitkomsten bekend van checksumberekeningen (bij voorkeur meer dan 1) met de mogelijk gebruikte data (dat er nog een aantal onbekenden zijn lijkt me logisch)? Mocht deze info al ergens staan dan zou ik graag weten waar. Wellicht zou ik er wat vrije uurtjes aan kunnen spenderen. Heb wiskunde altijd wel een leuk vak gevonden. Ik heb nou niet meteen de indruk dat het mij wel even gaat lukken (waarschijnlijk niet) maar dan is het toch leuk geweest om mee te doen en er wat van op te steken. Groeten
Gast Geplaatst: 11 augustus 2002 Geplaatst: 11 augustus 2002 @Pink Panther totaal mee eens! @everyone we moeten voorbeelden hebben van werkende SECA2 checksum uitkomsten en de daarbij behorende variabelen! Verder alleen nog maar de wiskundige berekening erbij zoeken. Het later in een programma gieten is totaal het probleem niet.
Azazel Geplaatst: 12 augustus 2002 Geplaatst: 12 augustus 2002 Hallo satvrienden, Als eerste bedankt iedereen voor het meedenken omtrent dit probleem. Aan de reacties te lezen was ik denk ik niet helemaal duidelijk... Goed.. korte uitleg: Het enige nut dat dit tot nog toe heeft is het proces begrijpen, om in de toekomst te kunnen gebruiken om de berekenig te maken v/d checksum van de key's t.a.v. de blackcard. Deze gegevens hebben we nodig om programmas te kunnen ontwikkelen die het geschikt maken om de v7 te lezen, schrijven, etc. De berekeningen die nu gedaan worden zijn bep. door een aantal factoren, vb. mk, serienr., tabellen, PPUA, etc.. Ik zal verderop een checksum en serie nummer geven van de blackcard en je zult zien dat de voorbeeld berekening die ik eerder heb gegeven hier niet geldt. De kunst is dus een logische reverse berekening te kunnen achterhalen voor je eigen kaart, let wel, op dit moment moeilijk gezien het feit een aantal factoren onbekend zijn. De berekening die ik eerder schreef werd zeker toegepast op de vorige kaarten. Ik zal als voorbeeld mijn eigen oude Canal plus kaart gebruiken: Sn.: 012.209.096 Reg. 00 02 00 00 BA 4B C8 12209096 = 5308 * 2300 + 696 (abcd) ab = 06 cd = 96 6 + 96 = 102 -- 01 02 Dec 02 = Hex 02. Reg. 00 02 00 00 BA 4B C8 Ik zou zeggen probeer deze berekening met je eigen kaart en je zal zien dat het altijd uitkomt. Lees je eigen kaart uit met bv. het zeer gemakkelijke en snelle programma CSDinfo. Betreft de v7, dan gaat deze berekening niet meer. Vb: Sn: 007.122.781 Reg: 00 5c 00 00 00 6C AF 5D Als je de berekening hierop toepast zul je zien dat de uitkomst ab + cd 100 zal zijn, (klopt niet met de checksum 5c). Enkele gegevens van dezelfde kaart: SerialNumStr =007.122.781 SerialNum =00 5C 00 00 00 6C AF 5D ProviderBitMap =00 00 00 07 00 10 DB ATR = 3B F7 11 00 01 40 96 70 70 07 0E 6C B6 D6 StartUpRecord=01 00 00 00 00 00 00 00 00 00 10 04 RecordActivacion=02 20 04 20 02 00 00 00 00 00 00 04 ProviderPackageBitMap01=00 00 00 10 80 00 30 8E 04 FF FF FF DescEntidad00=00 00 53 45 43 41 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 DescEntidad01=00 64 43 41 4E 41 4C 53 41 54 C9 4C 49 54 45 20 20 20 0A 18 AE F1 18 DE 02 KeysProvider00 =FF FF 0F 6C 00 F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF KeysProvider01=FF FF 0F 6C 00 F0 51 F3 5D 5C 5E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF Version=08 10 11 71 30 14 0D 03 64 00 FF B8 1E 8F FB 85 C4 17 3D 76 44 55 C7 14 AC 06 DC 96 04 01 FC B0 AF EC A8 97 3E BA 59 FE D5 91 28 43 29 53 45 43 41 2D 3E 31 39 39 34 2D 2D 3E 31 39 39 39 2A 2A 56 36 2E 30 VersionStr =©SECA->1994-->2001**V7.0 Hier is het dus interessant te weten welk berekening men toepast (hoe moeilijk het ook zal zijn). Saludos! 'Azazel miembro del equipo RAIDEN, la resistencia.' [color:"red"] LLORAMOS JUNTOS, GANAREMOS JUNTOS! [/color]
Gast Geplaatst: 12 augustus 2002 Geplaatst: 12 augustus 2002 En als toevoeging op Azazel een uitreksel van de Blackcard (V7.0) met MasterKeyFind v4.4 MKFIND 4.4: [GeneralInfo] ATR= 3B F7 11 00 01 40 96 70 70 07 0E 6C B6 D6 UAhex= 0x xx xx xx UAdec= xxx.xxx.xxx SuppProv= 0000000000001111 [00 00] Name= SECA SECAStartup= 00 00 00 00 00 00 00 00 00 10 SECAPPV= 07 03 00 47 00 64 02 17 01 00 PrimaryKeys= F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF [00 64] Name= CANALSATÉLITE Date= 31/12/02 PPUA= 0x xx xx xx Region= 00 PBM= 00 00 00 00 00 00 60 00 PrimaryKeys= F0 F1 F3 FE FF FF FF FF FF FF FF FF FF FF FF FF [00 66] Name= CANALSATÉLITE2 Date= 31/12/02 PPUA= 0x xx xx xx Region= 00 PBM= 00 00 00 00 00 00 00 00 PrimaryKeys= F0 F1 F3 FE FF FF FF FF FF FF FF FF FF FF FF FF [00 67] Name= CANALSATÉLITE3 Date= 31/12/02 PPUA= 0x xx xx xx Region= 00 PBM= 00 00 00 00 00 00 00 00 PrimaryKeys= F0 F1 F3 FE FF FF FF FF FF FF FF FF FF FF FF FF [Card Records] Pr: Index = Record - Description 00: 00 01 = F0 FF FF FF FF FF FF FF FF CC 00 80 - Clave Primaria 00 00: 00 02 = 70 FF FF FF FF FF FF FF FF 43 00 C0 - Clave Secundaria 00 00: 00 03 = 00 07 03 00 47 00 64 02 17 01 00 E0 - Registro SECA PPV 00: 00 04 = FB 28 0A 9D 46 D2 75 87 28 B5 9C D0 - Registro de credito PPV 00: 00 05 = 01 00 00 00 00 00 00 00 00 00 10 E0 - Registro SECA Start-up 01: 00 06 = F0 FF FF FF FF FF FF FF FF 8F 00 81 - Clave Primaria 00 01: 00 07 = 50 FF FF FF FF FF FF FF FF 56 00 C1 - Clave Secundaria 00 01: 00 08 = F1 FF FF FF FF FF FF FF FF 98 00 81 - Clave Primaria 01 01: 00 09 = 51 FF FF FF FF FF FF FF FF 36 00 C1 - Clave Secundaria 01 01: 00 0A = F3 FF FF FF FF FF FF FF FF F2 00 81 - Clave Primaria 03 01: 00 0B = 53 FF FF FF FF FF FF FF FF 6B 00 C1 - Clave Secundaria 03 01: 00 0C = FE FF FF FF FF FF FF FF FF 0F 00 81 - Clave Primaria 0E 02: 00 0D = F0 FF FF FF FF FF FF FF FF C4 00 82 - Clave Primaria 00 02: 00 0E = 50 FF FF FF FF FF FF FF FF 39 00 C2 - Clave Secundaria 00 02: 00 0F = F1 FF FF FF FF FF FF FF FF A8 00 82 - Clave Primaria 01 02: 00 10 = 51 FF FF FF FF FF FF FF FF 9C 00 C2 - Clave Secundaria 01 02: 00 11 = F3 FF FF FF FF FF FF FF FF 5A 00 82 - Clave Primaria 03 02: 00 12 = 53 FF FF FF FF FF FF FF FF 49 00 C2 - Clave Secundaria 03 02: 00 13 = FE FF FF FF FF FF FF FF FF A2 00 82 - Clave Primaria 0E 03: 00 14 = F0 FF FF FF FF FF FF FF FF A5 00 83 - Clave Primaria 00 03: 00 15 = 50 FF FF FF FF FF FF FF FF B0 00 C3 - Clave Secundaria 00 03: 00 16 = F1 FF FF FF FF FF FF FF FF 59 00 83 - Clave Primaria 01 03: 00 17 = 51 FF FF FF FF FF FF FF FF 7C 00 C3 - Clave Secundaria 01 03: 00 18 = F3 FF FF FF FF FF FF FF FF F6 00 83 - Clave Primaria 03 03: 00 19 = 53 FF FF FF FF FF FF FF FF BB 00 C3 - Clave Secundaria 03 03: 00 1A = FE FF FF FF FF FF FF FF FF 3C 00 83 - Clave Primaria 0E 00: 00 78 = FB 28 0A 9D 46 D2 75 87 28 B5 9C D0 - Registro de credito PPV 00: 00 F0 = FB 28 0A 9D 46 D2 75 87 28 B5 9C D0 - Registro de credito PPV 00: 01 68 = FB 28 0A 9D 46 D2 75 87 28 B5 9C D0 - Registro de credito PPV 00: 01 E0 = FB 28 0A 9D 46 D2 75 87 28 B5 9C D0 - Registro de credito PPV @Azazel Voorbeeld ident 0064 : Incoming ECM Instruction C1 3C 0E BE 5C Received Encrypted CW 10 01 79 CF 03 DE A7 5F E9 74 17 7A A4 43 E5 B8 F5 C0 64 85 67 7C 97 3D DD 4E 00 CF AD AD 15 96 20 85 A8 9E 66 74 51 F6 87 8C DF 3F ED 9F BC 9A 43 47 98 84 60 34 66 5C 1A DC B0 C5 93 9C 52 C2 49 F5 A3 1F DC B0 3B 43 C0 7B F6 3D BF 50 1A 9E 94 49 EA CB 54 68 D1 BB 34 26 73 70 90 02 Key in gebruik is 0E, bit 7 is set(superencryption, sla de eerste 8 bytes over) bits 4,5,6 zijn gelijk aan 3, dus die kan je ook overslaan, resulteerd 10 01 79 CF 03 DE A7 5F E9 74 17 (moet kloppen ??) Ben nu bezig met Blowfish, Cast128, 3DES, RC5, La Idea, Seguro en CFB als encryptie. Volgende week beginnen de scholen weer en zal mijn zoon dit "probleem" aan de wiskundeleraar voorleggen.
Gast Geplaatst: 12 augustus 2002 Geplaatst: 12 augustus 2002 ik hoop dat je nog niet stopt. maar waar haal jij een blakecard vandaan. ik probeer via via aan een te komen maardit gaat niet. ik heb wel een irdeto2 kaart maar niet eeen blake. kun je mij daar niet aan helpen. gr bt
Gast Geplaatst: 12 augustus 2002 Geplaatst: 12 augustus 2002 Heb je meer voorbeelden van seca2 serials en met checksum uitkomsten, is makkelijker testen of de berekening klopt Een opvallende tot nu to 1600 ipv 2300 <img src="/ubbthreads/images/icons/smile.gif" alt="" /> 7122781 = 1600 * 4451 + 1181 (abcd) ab = 11 cd = 96 abcd = 1196 96 = hex 5c Gr, Melt_Down
Aanbevolen berichten
Maak een account aan of log in om te reageren
Je moet een lid zijn om een reactie te kunnen achterlaten
Account aanmaken
Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!
Registreer een nieuwe accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen