Bip por sectores, (MCT necesario)

Tema en 'Purgatorio de los aportes' iniciado por ignaciosam, 27 Oct 2014.

Estado del Tema:
Cerrado para nuevas respuestas
  1. ndeu

    ndeu Usuario Nuevo nvl. 1
    187/244

    Registrado:
    23 Oct 2014
    Mensajes:
    44
    Me Gusta recibidos:
    0
    1° agrega esto:

    private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();


    private static final String[] KEYS_A = { "3A42F33AF429", "6338A371C0ED",
    "F124C2578AD0", "32AC3B90AC13", "4AD1E273EAF1", "E2C42591368A",
    "2A3C347A1200", "16F3D5AB1139", "937A4FFF3011", "35C3D2CAEE88",
    "693143F10368", "A3F97428DD01", "63F17A449AF0", "C4652C54261C",
    "D49E2826664F", "3DF14C8000A1" };


    private static final String[] KEYS_B = { "1FC235AC1309", "243F160918D1",
    "9AFC42372AF1", "682D401ABB09", "067DB45454A9", "15FC4C7613FE",
    "68D30288910A", "F59A36A2546D", "64E3C10394C2", "B736412614AF",
    "324F5DF65310", "643FB6DE2217", "82F435DEDF01", "0263DE1278F3",
    "51284C3686A6", "6A470D54127C" };

    2° funciones:

    public static String bytesToHex(byte[] bytes) {
    char[] hexChars = new char[bytes.length * 2];
    for (int j = 0; j < bytes.length; j++) {
    int v = bytes[j] & 0xFF;
    hexChars[j * 2] = HEX_ARRAY[v >>> 4];
    hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
    }
    return new String(hexChars);
    }


    public static byte[] hexToBytes(String s) {
    int len = s.length();
    byte[] data = new byte[len / 2];
    for (int i = 0; i < len; i += 2) {
    data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16));
    }
    return data;
    }



    3° LEER
    // autentica con key A, indica el numero del sector directo, con un int.
    mfc.authenticateSectorWithKeyA(8, hexToBytes(KEYS_A[8]));
    // el read tambien con un int. Para saber facilmente cual, multiplica por 4 el sector y le sumas dependiendo de que block quieres leer. Recurda que los block son del 0 al 3.
    // Ej: Sector 8, block 1 => 8 * 4 + 1 = 33
    String data = bytesToHex(mfc.readBlock(33)); // este seria el bloque 33, donde esta el saldo. El otro es el 34, que deben tener el mismo valor

    4° ESCRIBIR
    // autenticar con la B
    mfc.authenticateSectorWithKeyB(8, hexToBytes(KEYS_B[8]));
    // escribir un String
    String data = "00000000FFFFFFFF0000000021DE21DE";
    mfc.writeBlock(33, hexToBytes(data));

    y con eso lo que imagines, usa validaciones donde quieras, etc
     
  2. Tio Emilio

    Tio Emilio Usuario Nuevo nvl. 1
    6/41

    Registrado:
    28 Oct 2014
    Mensajes:
    73
    Me Gusta recibidos:
    0
    Revise la Bip que acabo de ocupar, a la que le hice el dump, con el 1.5 para ver el saldo y me sale el mismo saldo que tenia cuado recien lo hice (dump) siendo que la ocupe, es decir tenia como 7800 por ahi y la segunda vez que tome la micro me quedo en 6700 , la cosa es que la revise y todavia salen los 7800.
     
  3. shin_chan

    shin_chan Usuario Nuevo nvl. 1
    6/41

    Registrado:
    10 Ene 2010
    Mensajes:
    42
    Me Gusta recibidos:
    0
    Muchas Gracias por el codigo, pero tengo una duda, porque en los otros codigos el Sector 8 se lee en el block 21 y 22 y la info de tarjeta cuando se hace un dump u otra cosa sale en el 33 y 34??
    saludos!
     
  4. dzambrano.2014

    dzambrano.2014 Usuario Nuevo nvl. 1
    6/41

    Registrado:
    17 Oct 2014
    Mensajes:
    32
    Me Gusta recibidos:
    0
    Cabros bueno les cuento un poco, clone 1 bip con saldo negativo, en un llavero y en una tarjeta blanca, el dia domingo, luego el dia lunes al pasar por el metro m cargo q eran tarjetas no validas, luego descubri que era por q en el MCT clona mal la bip y elegi la opcion que dice extended, luego ese dia en la tarde pase por el metro y paf! magia marco y pude llegar a mi casa, hoy en la mañana tomo la micro normal, le pague el pasaje a mi polola en el metro y pulento pero quise marca de nuevo y Cueck! tarjeta no valida, pude pasar igual ya que una vieja qla marco 2 veces en el validador, ahora en la tarde pase en el metro y normal, pero me entro la curiosidad de revisar el saldo de la tarjeta a traves de la pag de la bip y mi sorpressa fue q en la pagina sigue aparencio ahora q tengo los mismo -190 de la consulta, tonces mis preguntas son:


    -Al clonar la tarjeta no puedo marcar 2 veces en un mismo validador (quiere decir que debe haber en alguna key la funcion de marcar doble) o solo fue mala cuea ?

    -Si se confirma esta logica significa qe el chip cumple la funcion de conversar con el monedero, quiero decir que si el chip revisa que el monedero tiene carga pasa pero el validador no puede procesar la info y mandarla al sistema, por ende no se refleja dicho movimiento en la pag.-

    Bueno espero q este papiro sirva para que puedan revisar en que parte se origina estas situaciones, igal revisare la pag de saldo mañana para ver si se confirma esta teoria o se va a la misma mierda!
     
  5. Tio Emilio

    Tio Emilio Usuario Nuevo nvl. 1
    6/41

    Registrado:
    28 Oct 2014
    Mensajes:
    73
    Me Gusta recibidos:
    0
    Oye pero ese extended es el extended-std.keys?? porque si es asi significa que son otras keys po no las de la bip que estan en un cuadro blanco
     
  6. smowtion

    smowtion Usuario Nuevo nvl. 1
    17/41

    Registrado:
    21 Oct 2014
    Mensajes:
    128
    Me Gusta recibidos:
    1
    son keys para sistemas que usen esta tecnologia mifare, por tanto, si sirven xd
     
  7. santiago1996

    santiago1996 Usuario Casual nvl. 2
    37/41

    Registrado:
    14 Ene 2011
    Mensajes:
    2.932
    Me Gusta recibidos:
    1
    tengo una tarjeta igual y fue por que tenia mal los archivo de las llaves en el mct :( parece que ya murio la blanquita solo mis bolitas azules estan vivas
     
  8. Tio Emilio

    Tio Emilio Usuario Nuevo nvl. 1
    6/41

    Registrado:
    28 Oct 2014
    Mensajes:
    73
    Me Gusta recibidos:
    0
    Lo trate de hacer con el extended-std.keys pero me dice keys no validas asi que lo hice con las keys del cuadro blanco y las keys del extended (las dos con el ticket) vamos a ver que pasa mañana.

    De todas formas les dejo el dump de una tarjeta bloqueada, en esta tarjeta no aparecen los sectores 4 y 9, salen como sectores muertos por lo que puede ser algun nuevo tipo de bloqueo que se esta empezando a utilizar... trate de poner los sectores de otra tarjeta pero no me dejo.

    +Sector: 2
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    F124C2578AD0FF0780009AFC42372AF1
    +Sector: 3
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    32AC3B90AC1378778800682D401ABB09
    +Sector: 5
    000000000000000000000000000000F5
    005677DF0C00200811080002000216C8
    005677DF0C00200811080002000216C8
    E2C42591368A7E17880015FC4C7613FE
    +Sector: 6
    000000000000000000000000000000F5
    00000000FFFFFFFF0000000019E619E6
    00000000FFFFFFFF000000001AE51AE5
    2A3C347A120018778E0068D30288910A
    +Sector: 7
    000000000000000000000000000000F5
    00000000FFFFFFFF000000001DE21DE2
    00000000FFFFFFFF000000001EE11EE1
    16F3D5AB113918778E00F59A36A2546D
    +Sector: 8
    000000000000000000000000000000F5
    D00700002FF8FFFFD007000022DD22DD
    D00700002FF8FFFFD007000021DE21DE
    937A4FFF301118778E0064E3C10394C2
    +Sector: 10
    335507E14B08B37F19900140000000EA
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    693143F1036878778800324F5DF65310
    +Sector: 11
    095647DF2C0042044619B00940C0DF93
    C955E7747540420046190000401427BC
    C955278D270042044619B00940D87900
    A3F97428DD017F078800643FB6DE2217
    +Sector: 12
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    63F17A449AF0FF07800082F435DEDF01
    +Sector: 13
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    C4652C54261CFF0780000263DE1278F3
    +Sector: 14
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    D49E2826664FFF07800051284C3686A6
    +Sector: 15
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    000000000000000000000000000000F5
    3DF14C8000A1FF0780006A470D54127C
     
  9. santiago1996

    santiago1996 Usuario Casual nvl. 2
    37/41

    Registrado:
    14 Ene 2011
    Mensajes:
    2.932
    Me Gusta recibidos:
    1
    intentaste hacer un format ??? esta en write tag
     
  10. ndeu

    ndeu Usuario Nuevo nvl. 1
    6/41

    Registrado:
    23 Oct 2014
    Mensajes:
    44
    Me Gusta recibidos:
    0
    En el cod original, para el saldo k6 leia el block 0x21 que corresponde al 33, asi como el 0x22 es el 34. 0x21 es un hexadecimal, 33 es un decimal, compruebalo online.

    Lo mismo para los sectores.

    Por eso te digo que uses numeros enteros decimales, se entiende mas facil para las personas.
     
  11. Tio Emilio

    Tio Emilio Usuario Nuevo nvl. 1
    6/41

    Registrado:
    28 Oct 2014
    Mensajes:
    73
    Me Gusta recibidos:
    0
    Le acabo de hacer un format pero me sigue arrojando el error de que las partes sector 4 y sector 9 no son escribibles.
     
  12. styky

    styky Usuario Habitual nvl.3 ★
    187/244

    Registrado:
    9 Nov 2007
    Mensajes:
    16.619
    Me Gusta recibidos:
    1
    Pienso que las tarjetas clonadas, no tienen como identificarlas...
    es un UID que no esta en sistema, pero no tiene como comprobarlo...el N° tarjeta puede ser cualquiera...

    Aun asi, imagino el UID en los validadores del metro esta "en linea". Recuerdo que a MULTIVIA se utilizaba antes que la BIP, por lo tanto la tecnologia del metro debiese ser distinta....y por ende sincroniza el UID, asi no acepta los clones....
    En cambio las micros, ya sabemos lo charcha que son...por eso las acepta..esa es mi teoria.
     
Estado del Tema:
Cerrado para nuevas respuestas