para paula3 y los que lo quieran Como calcular la 3DES de forma rápida y sencilla
permalink
Visto que ya prácticamente se ha hablado de todo lo que respecta a la 3DES final, os voy a enseñar a calcularla de forma muy fácil y siguiendo unos pasos básicos.
El provedor, para poder "modificar" la clave Idea de las ECMs, recurre a la rutina Map3854:
1) MAP3854, esta llamada siempre hace lo mismo --> colocar 30h bytes de datos en la zona C01-C30 de la card:
- Los bytes colocados entre C01-C10 corresponden a una zona del dump de BC00 que viene marcada en la emm (la emm coloca en BFC un valor que indica que zona del dump coger). Ya sabemos que esa zona se puede calcular en función a la siguiente ecuación:
C01[x] = EE[0xBD50 + y]
Donde y = index * 16 (el index no es más que el valor de BFC)
Es decir, todas las 3DES posibles se calcularán con el volcado que está comprendido entre BD50 y BE40 (puesto que sólo puede haber 16 valores distintos)
- Los bytes colocados entre C11-C20 son siempre los mismos y corresponde a los 10h bytes que están en BD40, siendo para kktel los siguientes: EA 27 F5 80 99 D1 C1 1E FA F2 92 B9 11 8B 00 14
- Los bytes colocados entre C21-C30 son tambien siempre los mismos pero en este caso vienen de la MAPROM40 (zona protegida y no dumpeable). Estos bytes son los siguientes: 70 df b0 42 33 6d 20 91 c6 2b c4 ed 92 c8 70 7e (iguales para todas las tarjetas que sean ROM110)
2) Primero se cogen los bytes que van desde $0C11-0C30, y se les calcula una firma MDC2:
Citação:
Firma MDC2 de EA27F58099D1C11EFAF292B9118B001470dfb042 336d2091c6 2bc4ed92c8707e = 53B1BB57530A885B910B8C212B9D3E63
3) El resultado lo vamos a usar como clave de un 3DES con el que vamos a desencriptar los 38h bytes que se encuentran en $3148, y que se escriben cuando se hace la revisión da cada tarjeta (son específicos de cada card):
Volcado de la zona 3148:
Citação:
90 2D 67 B9 2A 67 D3 2C 78 5E EE 63 9D D5 4D CC E4 85 B6 5C 5C C8 93 DF A0 C6 F2 36 F3 CA C0 E4 14 57 23 A4 A3 96 B5 DA 96 C1 C7 7C D5 4B 90 32 45 19 E0 B9 61 E9 EB 90 72 31 86 15 66 53 90 E2 9C 0D 94 69 BD 3F 94 1C
Desencriptado:
Citação:
6365DEB4EFB56606 C00018 C10018 8CC720 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
Que son una firma de 8 bytes + las posibles ternas que contienen código encriptado.
Dichas ternas son:
02:C000-18h octetos
02:C100-18h octetos
80:8CC7-20h octetos
4) Si ahora cogemos la terna que nos marca la dirección $0BFC=03, es decir la tercera terna, que es la terna que utilizan para transformar la clave encriptada en clave en claro, pues tenemos que hacer lo siguiente:
Cogemos los 10h bytes que hay en $0C01 y los 10h bytes que hay en $0C21, y les calculamos una firma MDC2:
Citação:
Firma MDC2 de 55B7F884F12F13F17FC02427BCFD516F70dfb042 336d2091c6 2bc4ed92c8707e = B125706B0E0462DC4CB637E032C63419
5) El resultado lo usamos como clave 3DES para descifrar los 20h octetos de 80:8CC7:
Citação:
Datos de 80:8CC7 =
71 88 52 A3 C5 95 77 FA 14 BE 70 8A C6 28 5E 6E F3 2E 9C AE D6 E7 8E DB E8 63 F2 76 54 59 F2 E4 E3 89 39 BD 50 71 C2 37 7D 8D 32 FA 8E EB 2B B7 DE 7D A9 8A EE 59 69 BF D9 6B 00 49 59 8B A2 4B A7 FE FA A0 6D AD 7F 94 74 E7 16 49 BA 52 E5 05 5E A0 E9 94 A0 3F 8C 8F 70 4E F6 6B BC 37 19 F2 7C D5 9F A6 D9 3A B3 26 70 91 C2 37 11 6A AB 97 F7 C5 F0 FD B3 E3 FC EA 1E 4E 36 79 30 5D 88 B5 E2 DB C9 21 54 73 0D E7 2E E4 7D 37 18 48 73 8E 8C 25 E3 88 E8 EE 9C DE FF B0 34 96 D8 AB 3B 48 A6 53 0A 1A AF D7 2B 0E E1 02 BE 6D 25 B8 FB 6A BE DC 9F 61 FA 8A A2 86 06 68 AA 43 64 64 44 FF BB BE 8D 12 BD 1B 3E 53 27 07 92 19 A3 C1 E6 03 19 EE 13 DD 18 DF B3 1F D2 F8 7C A1 DC 40 F9 FA 21 60 43 0D C6 3D 12 22 B4 D8 99 52 F1 96 F9 C5 7A 36 F0 39 5D 45 16 C4 9D 3A 71 F9 D0 2A A9 1E
Citação:
Desencriptado = 55 74 E6 37 A9 5C 24 4D 88 A6 13 88 A6 01 88 A6 3B 88 87 9E A1 E7 27 11 A7 67 03 3E 3F 01 A0 6E 8C CB 82 65 8E DB DA AB A1 AE 7F A6 A7 E7 2A E7 99 5A 2A F9 2B 01 A7 A6 01 B7 25 B7 28 A6 19 B7 26 A6 21 B7 29 AD 6E A6 0D B7 2B B7 25 88 AB 13 B7 2C AD 6D A6 06 AD 6D A6 0C AD 69 84 AB 08 29 EC AD 42 CD 60 54 01 00 63 8D 00 80 04 85 58 58 58 5A 90 AE 07 89 D6 09 B1 90 D8 04 09 90 E7 70 5A 90 5A 2A F1 8D 00 80 B1 90 AE 07 85 A3 07 27 4C 90 E6 70 D8 09 A9 90 D8 04 09 D7 09 B1 5A 90 5A 2A EE 20 CD A6 02 20 1C 8D 01 80 E2 8D 01 80 DF 8D 01 81 6B A6 0E 20 0C AD 1D 3F 24 3F 25 A6 70 B7 26 A6 0B CC 38 44 AD EF A6 06 AD F7 3F 2B A6 70 B7 2C A6 0C AD ED 8D 01 81 63 81 CD 60 E6 09 B1 08 70 AD BF AE 6F A6 A7 D7 0D 20 E7 20 D7 01 63 5A 2A F5 2B 01 A7 85 85 CD 62 92 00 F8
3C
Que es el resultado que se colocará en $0100, y que son 8 bytes de firma mas el código que se ejecutará en $0108, la clave 3DES se encuentra siempre situada en $119-$128.
Eso es todo, un poco complejo la verdad pero si lo mirais con calma es sencillo.
__________________
Yo también soy torpe, unios TORPENAUTAS.








:




