Desprotección DRM de mapas y tarjeta SD | Foro Hyundai Tucson

Desprotección DRM de mapas y tarjeta SD

Tema en 'Car Audio y Multimedia' iniciado por JKD, 21 Sep 2016.

  1. JKD

    JKD Forero Experto

    Motor:
    2.0 CRDi 136 CV
    Versión:
    Tecno Aut. 4x4
    Color:
    Thunder Gray
    Bueno gente, a tenor de un post en el que se da un truco para usar mapas de navegación descargados de internet instalados en la SD oficial me he puesto manos a la obra para averiguar cómo funciona nuestro software en el campo de la protección de los mapas. Voy a dividir este tema en dos posts consecutivos en este mismo hilo. El siguiente post será un poco más técnico pero puede que sirva de interés para alguien con la curiosidad suficiente.

    Hasta abril de 2016 teníamos dos limitaciones con los mapas. En primer lugar, no era posible hacer una copia de las tarjetas oficiales y funcionar con ellas. Tampoco era posible descargar mapas y usarlos sin más, dependiendo de Hyundai para este cometido con el desembolso correspondiente que puede conllevar a los que no dispongan de actualizaciones gratuitas. En marzo o abril de 2016 se empezó a entregar una versión actualizada de los mapas. Esta versión ya permite realizar una copia de la tarjeta SD funcional. Pero la instalación de nuevas versiones descargadas de internet han sido un tema imposible hasta que ha salido a la luz el truco antes mencionado. Este truco, revela el nexo de unión que hay entre los mapas instalados y la tarjeta SD. Ahora bien, aunque las dos limitaciones más importantes parecen estar superadas, una futura actualización de mapas podría dejarnos de nuevo sin posibilidad de clonar la tarjeta SD (Campaña 60CC07).

    Las limitaciones vienen impuestas por un programa del navegador llamado LgeDRMKey y puede encontrarse en la ruta "\storage card\SYSTEM\LgeDRMKey.exe". Es el que se encarga de decidir si la tarjeta SD que metemos en el navegador contiene unos mapas válidos y originales. Anteriormente, se ha discutido sobre la posibilidad de clonar la tarjeta SD de los mapas y la dificultad de saltarse la protección que lleva la SD. Para ver cómo afrontar ese problema tenemos que ver qué hace el software para dar por válidos los mapas. Estos son a grandes rasgos los pasos que se siguen para verificar que los mapas son válidos:

    1. Existencia de tarjeta SD en el lector: Esto es obvio y no necesita explicación. ¿O sí? :whistling:

    2. Existencia de AMK.LMF : Explicaré este punto más adelante.

    3. Existencia de la ID del navegador: Cada navegador lleva asociada una ID. Esta ID se puede localizar en la ruta "\USER\System\Data\LISA\DeviceID.txt". El programa trata de leer la ID de ese archivo hasta tres veces esperando 500 milisegundos entre intento e intento. Así que es de esperar que otro proceso se encarga de crear el archivo DeviceID.txt si este no existiera. Si al tercer intento no ha conseguido leer la ID, NO da por válidos los mapas.

    4. Cotejar ID de la tarjeta SD con archivo LMV.LMF: Este punto nos lo detalló un compañero de Rusia y es posible sortear esta protección igualando el valor de PrivateBuild de un nuevo archivo LMV.LMF al que teníamos originalmente, para que coincida con la ID de nuestra tarjeta. El programa lee la ID de LMV.LMF, toma la ID de la SD (leyendo del dispositivo "SDC1:") y coteja ambos valores. Si coinciden, los mapas son válidos. En realidad es un poco más elaborado pero se explica en el siguiente post.

    5. Comprobación de "MnSoft DRM": Este sistema lo llama así el programa. A este punto llega independientemente del resultado del punto 4 y necesita de la existencia de tres archivos:

      - \SDMemory\LGENavi\TDP\AUTHKEY.inf
      - \SDMemory\LGENavi\TDP\MAPMODULE.bin
      - \SDMemory\LGENavi\LIMF\LMV.LMF

      La actualización de abril incluye AUTHKEY.inf por defecto así que es posible la copia de la SD. Bueno, en realidad no es cierto que permita la copia de la SD. Este chequeo comprueba si hay permiso para usar estos mapas. Si es posible la copia de datos es porque hay autorización a usar los mapas aunque el punto 4 falle, que es el que realmente verifica si la SD es original.

    El programa comprueba los 5 puntos. Si cualquiera de los puntos 4 y 5 son válidos (con uno de los dos vale) dará por válidos los mapas y permitirá utilizarlos.

    Sabiendo lo que sabemos hasta ahora podríamos detenernos aquí ya que somos capaces de clonar la SD y de hacer trucos para habilitar mapas descargados pero... ¿No sería mejor que en vez de usar trucos y ediciones con editores hexadecimales ... evitar cualquier tipo de comprobación? :)

    Pues sí. Hay una forma de evitar que el programa realice estos chequeos sin alterar el ejecutable. En el punto 2 el programa busca el archivo "\LGENavi\LIMF\AMK.LMF" en la SD. Ese archivo es una llave, una forma de decir al programa "Ignora todas las comprobaciones y da por buenos los mapas, la tarjeta y el navegador". Si no lo encuentra o si su contenido no es el esperado pasa al tercer punto.

    El archivo AMK.LMF debe tener un contenido concreto. Por lo que veo, el programa está preparado para aceptar uno de dos posibles contenidos en función de si una variable determinada contiene un 0 o un 1. Indico el contenido que debe tener el archivo AMK.LMF para cada caso:

    • Variable a cero:
    • Variable a uno:
    Adjunto las dos posibilidades en un archivo ZIP para evitar errores a la hora de crear dicho archivo. El contenido que debería tener con la dichosa variable a 0 se encuentra dentro de la carpeta \0 del ZIP. Y lo mismo con la carpeta \1. Basta con copiar el archivo adecuado en la SD en la carpeta "\LGENavi\LIMF\".

    Puede que alguno se haya dado cuenta ya, de que ese archivo ya existe desde la actualización de abril en la tarjeta SD pero por lo visto algunos no lo tienen. El contenido de ese archivo corresponde a "\1\AMK.LMF". Lo he comprobado y efectivamente esa es la llave que espera nuestro navegador. Recomiendo hacer una copia de seguridad de la SD y hacer estas modificaciones en la copia.

    Alguno se preguntará "Bueno si yo ya puedo hacer una copia de la SD que tengo ¿para qué hacer esto?" Puedes hacer una copia porque tienes los archivos que permiten superar el DRM MnSoft pero no significa que sea así con una nueva versión de los mapas o con mapas descargados de internet. Con el archivo AMK.LMF se evita toda comprobación. Y para más inri... sigue leyendo ;)


    Campaña 60CC07

    Con la actualización de los mapas allá por abril Hyundai cometió un error. Un lapsus en el que distribuyeron los mapas tanto con el archivo AUTHKEY.INF como con el archivo AMK.LMF. Con ello, entregaron los mapas desprotegidos permitiendo hacer copias utilizables por cualquiera sin pasar por el concesionario/taller/caja. Para solventarlo han sacado esta campaña. Oficialmente esta es la explicación:
    • Síntoma/Condición:
      En algunos vehículos Tucson (TLe) fabricados en la planta de República Checa, la unidad AVN podría no funcionar correctamente debido al bloqueo de la tarjeta SD relacionada con el problema de reconocimiento de mapas.
    • Medidas a tomar:
      Sustituya la tarjeta SD defectuosa según el procedimiento de mantenimiento suministrado en este boletín.
    Aquí hay una incoherencia. Y es que si el problema es la SD, no tiene sentido entregar una SD nueva con una versión anterior de los mapas cinco o seis meses después de la última actualización. Y si el problema estuviera en los mapas, no tendría sentido sustituir la tarjeta SD con el coste que ello supone pudiendo reescribir su contenido como pasaría con una actualización normal. Además, si el problema está en hard o soft, o funciona o no funciona. Si en cinco o seis meses no ha habido problemas, no tendría por qué pasar nada que justifique instalar mapas de 2013 (versión 7.52.xxxxx) a estas alturas.

    Así pues, la razón por la que están haciendo esta sustitución obedece más a un intento de retomar el control sobre los privilegios de uso de los mapas instalando rápido y mal, la versión que saben, está protegida (no cuenta con los archivos detallados aquí). Y lo están vendiendo como una medida de seguridad.

    En cuanto a la mención "bloqueo de la tarjeta SD relacionada con el problema de reconocimiento de mapas", eso puede ser una declaración de intenciones. Esto es, el día de mañana, con una versión nueva de LgeDRMKey.exe, inhabilitar estos archivos "mágicos" con lo que las copias dejarían de funcionar. Pero eso ya será otra historia :)
     

    Adjuntos:

    • AMK.zip
      Tamaño de archivo:
      1,1 KB
      Visitas:
      322
    Última edición: 22 Sep 2016
    barruzo, Agustin, tomasmt y 10 otros les gusta esto.
  2. JKD

    JKD Forero Experto

    Motor:
    2.0 CRDi 136 CV
    Versión:
    Tecno Aut. 4x4
    Color:
    Thunder Gray
    A continuación procedo a explicar un poco paso a paso los puntos de comprobación mencionados en el post anterior. Para ello vamos a utilizar código descompilado del programa LgeDRMKey.exe. Teniendo en cuenta que el software está programado en C++, el código generado es un pseudocódigo en C que no tiene por qué ser fiel a la programación real y parte del código de máquina de la arquitectura ARM por lo que podrían verse operaciones un tanto extrañas. Los nombres de las funciones y de las variables se han ido editando a medida que se desvelaba su funcionalidad y he añadido algunos comentarios (precedidos por // ) los cuales aparecen en color verde para tratar de hacer más comprensible el flujo del programa.

    • checkMaps:
      checkMaps.png
      Así he llamado a esta función que engloba los 5 puntos de control. Esta función devolverá un 0 o un 1. Si da por válidos los mapas devolverá un 1 y en cualquier otro caso un 0. Primero comprueba si existe la carpeta LGENavi en la tarjeta SD. Después, en función del valor de una variable a la que he llamado AMKKeyType (que en nuestro caso contiene el valor 1) busca el archivo AMK.LMF. Si existe da los mapas por buenos. Si no existe o su contenido no es correcto, pasa al siguiente punto en el que trata de leer la ID del navegador hasta en tres ocasiones. Si no lo consigue la función termina devolviendo 0 dando los mapas por no validos.

      A continuación realiza las comprobaciones 4 y 5 en la siguiente forma:
      Insertar CODE, HTML o PHP:
      if ( checkMapVer() || checkMnSoftDRM(&dword_176C8) ... 
      Esto significa que no tienen por qué cumplirse los dos chequeos. Con que uno de los dos sea válido, los mapas también lo serán.
      De la función checkMnSoftDRM no puedo dar más datos ya que el depurador por alguna razón no ha localizado referencia al código pero es de esperar que entre otras cosas coteje la información del archivo AUTHKEY.inf. La función que me parece más interesante es checkMapVer que bueno, quizá no sea ese su nombre más apropiado pero es el encargado de la comprobación del punto 4 y lo detallo a continuación.

    • checkMapVer:
      checkMapVer.png
      En esta función podemos ver como toma dos valores que posteriormente va a cotejar. En primer lugar el valor del archivo LMV.LMF y posteriormente el valor que devuelve la ID de la tarjeta SD. Es un valor que forma parte de la ID de la tarjeta, no la ID en sí.
      Vamos a ver como pilla el valor de LMV.LMF.

    • getMapID:
      getMapID.png
      Vemos aquí que toma un valor del archivo LMV.LMF correspondiente al campo PrivateBuild. Son dos bytes con la representación hexadecimal de un ID. Dicha función devuelve el valor hexadecimal correspondiente. En nuestro caso, la función devolverá un 0x4b.

    • getSDCardID:
      getSDCardID.png
      Esta función es la más interesante ya que revela cómo identifica una tarjeta SD original. Primeramente encuentra la cID de la tarjeta SD.Partiremos de un ejemplo. En linux la id de una SD se puede leer fácilmente con un comando como este:

      Insertar CODE, HTML o PHP:
      cat /sys/block/mmcblk0/device/cid
      134b474c47450000104400000000f901     <<< este es el cID de una SD original
      La cID de una SD está formada por 16 bytes con varios campos y casi todos ellos serán similares salvo los últimos dígitos que corresponden a la fecha de fabricación y a una suma de comprobación CRC. Estos campos, en nuestro ejemplo se pueden desglosar así:

      Insertar CODE, HTML o PHP:
      13 4b47 4c47450000 10 44000000 0 0f901
      
      MID = 13           = Manufacturer ID       = 8 bits
      OID = 4b47         = Application ID        = 16 bits  KG
      PNM = 4c47450000   = Product name          = 40 bits  LGE
      PRV = 10   = 1.0   = Product revision      = 8 bits
      PSN = 44000000     = Product serial number = 32 bits
      --- = 0 & 0x0f = 0 = reserved              = 4 bits
      MDT (fecha) = 00f9 & 0x0fff= 0x0f9 -- m = 0xf9 & 0xf = 9 septiembre
                                 -- yy = 0xf9 >> 4 = f = 15 + 2000 = 2015
      CRC = (01 & 0xfe) >> 1 = 0 = CRC7 checksum = 7 bits
      no usado, siempre 1 -> 01 & 1 = 1            = 1 bit
      Básicamente, esta función comprueba que el campo PNM sea 4c47450000 que corresponde al ASCII "LGE". Si esto es así, devuelve el segundo byte del cID que pertenece al campo OID y que en nuestro caso es 0x4b. Como podéis observar, aquí está el nexo de unión entre LMV.LMF y el cID de la tarjeta SD. De ahí que, el truco que notificó el compañero ruso consista en forzar en el campo PrivateBuild del archivo LMV el mismo valor que tiene la id de la SD en su segundo byte.

      CID.png

      Si alguno piensa que la directa es poner en LMV directamente el valor del segundo byte de la id de la tarjeta, que tenga en cuenta que no funcionará si el campo PNM (nombre del producto) no es exactamente "LGE" (4c47450000). Si el PNM es el correcto, la función devolverá 0x4b. Si no, -1. De momento no sé si existe alguna tarjeta SD que permita la reescritura de la ID. El truco del ruso funciona para tarjetas originales de Hyundai.

    • checkDevIDExists:
      checkDevIDexists.png
      Esta es la función encargada de localizar la ID del navegador y de comprobar si es correcta. No tiene mucho misterio. Localiza y abre DeviceID.txt. Luego comprueba que la ID es correcta. Por lo que pude apreciar, la ID puede tener una longitud de 1 a 12 bytes y la comprobación se basa en que la ID no puede estar compuesta sólo de ceros. No devuelve la ID del navegador. Si es correcta, devuelve un 1. Si no, un cero.

    • readAMKLMF1:
      readAMKLMF1.png
      Esta función es la encargada de detectar si existe AMK.LMF con un contenido determinado. Para ello, localiza AMK.LMF en LGENavi\LIMF\, lo abre, lee su contenido y después lo compara letra a letra con un patrón que ya hemos detallado en el post anterior. Si el contenido del archivo es similar, la función devolverá un 1 y los mapas serán válidos sin realizar ninguna otra comprobación.

    ¿AMK.LMF versión 0 o 1?

    Mayoritariamente se usa la versión 1 cuyo contenido se muestra en el primer post. Pero ¿de qué depende que elija una u otra versión para cotejar su contenido?. Durante la inicialización de LgeDRMKey.exe, carga la librería CmnVersion.dll e importa la única función que tiene "GetCmnVersionInfo". Esta función devuelve una línea de texto de una tabla interna que consta de 6 posibles textos:
    • ID 2 : "V 12.11.07"
    • ID 3 : "V 12.11.07"
    • ID 4 : "20"
    • ID 5 : "RU"
    • ID 6 : "EU"
    • ID 7 : "SOP"
    LgeDRMKey solicita a CmnVersion mediante GetCmnVersionInfo la cadena de texto cuya id es 7. En realidad el valor que solicita es 6 pero GetCmnVersionInfo suma 1 ya que no existe la ID 1. En este caso devuelve "SOP". Si la ID solicitada fuera 1 (que no es el caso), GetCmnVersionInfo toma la versión de software del registro de Windows. Concretamente de "HKEY_LOCAL_MACHINE\LGE\SystemInfo\VerSW". Si el resultado devuelto es "SOP", LgeDRMKey espera AMK.LMF versión 1, si no la 0.


    Esto es todo por el momento. Como veis, no ha sido necesario alterar para nada el software de Hyundai. Esperemos que esta info pueda ser de utilidad para futuros análisis :thumbsup:


    Nota para aquellos que posean el software de Hyundai antiguo (versión TL.EU.SOP.20.004 y anteriores)

    Después de realizar unas comprobaciones con @Sandrovich en su versión de software podemos afirmar lo siguiente:
    • En el software antiguo, versión TL.EU.SOP.20.004 y anteriores, el truco del archivo AMK.LMF no funcionará puesto que su versión de LgeDRMKey.exe se limita a verificar que la SD es original.
    • El truco de modificar LMV.LMF para que unos mapas descargados funcionen en la tarjeta original funcionaría.
    • Para poder usar una tarjeta no original habría dos posibilidades. O bien parchear el ejecutable LgeDRMKey.exe de dicha versión o bien utilizar la última versión de dicho programa. Las pruebas demuestran que la última versión de LgeDRMKey es compatible hacia atrás por lo que, sustituyendo ese programa por el de la última versión, el truco del archivo AMK.LMF funcionará y permitirá el uso de SD no originales.
    Así pues, adjunto el programa LgeDRMKey.exe de la última versión que tenemos para que aquellos que tengan las versiones antiguas puedan actualizarlo y disfrutar de esa "mejora". La instalación es tan sencilla como descomprimir el archivo en un pendrive, hacer una copia de "\storage card\SYSTEM\LgeDRMKey.exe" y sustituirlo por el del pendrive. Aunque todo esto se evita actualizando a la última versión en cualquier taller oficial. :)
     

    Adjuntos:

    Última edición: 30 Abr 2017
    barruzo, Agustin, kike y 6 otros les gusta esto.
  3. Sandrovich

    Sandrovich
    Moderador
    Miembro del equipo

    Ubicación:
    Santa Cruz de Tenerife
    Motor:
    1.6 GDi 131 CV
    Versión:
    Style
    Color:
    Polar White
    Pues todos aquellos, a los que les han cambiado la tarjeta por una nueva con la versión 7.xx deberían ir a quejarse por el cambio de tarjeta con unos mapas antiquísimos.
    Creo que alguien está haciendo algo mal, no deberían cambiar la tarjeta después de actualizar el aparato, creo que deberían actualizar una vez han cambiado la tarjeta.
     
    A darkhugo le gusta esto.
  4. Red2pepper

    Red2pepper Forero Activo

    Ubicación:
    Girona
    Motor:
    1.6 TGDi 176 CV
    Versión:
    Style 7DCT 4x4
    Color:
    Platinum Silver
    MOnstruo!!!! buen análisis!!!
     
  5. Snor

    Snor Forero Activo

    Ubicación:
    Sestao
    Motor:
    1.7 CRDi 115 CV
    Versión:
    Klass
    Color:
    White Sand
    Muy buen trabajo JKD,impresionante!!
     
  6. JRB

    JRB Forero Activo

    Motor:
    1.7 CRDi 141 CV
    Versión:
    Tecno
    Color:
    Ara Blue
    Sinceramente estoy alucinando con el trabajo de la gente.

    Yo personalmente no me he enterado de nada porq soy un zoquete en estas cosas pero aun así alucino con el nivel y el grado de entendimiento que tienen todos y cada uno de los miembros de este foro :thumbsup:.

    He aprendido un huevo y la mitad del otro con todos vosotros. gracias. Aun así sigo siendo muy torpe, jejeej

    ENHORABUENA!!!!!. Se puede decir mas alto pero no mas claro.
     
    A kike le gusta esto.
  7. tate

    tate Forero Habitual

    Ubicación:
    Córdoba
    Motor:
    2.0 CRDi 136 CV
    Versión:
    Tecno
    Color:
    White Sand
    Buen aporte compañero pero yo soy zoquete mayor para todo eso...
    Menos mal q devero me instalo el tucson player porque sino hubiese ardido mi navegador de lo torpe que soy...

    Yo el lunes me han citado para la campaña gancho de capó...iba a pedir q me actualizaran pero, visto lo visto mejor que no...es más estoy por sacar la sd antes de dejarlo...por si acaso...
     
    A kike le gusta esto.
  8. JKD

    JKD Forero Experto

    Motor:
    2.0 CRDi 136 CV
    Versión:
    Tecno Aut. 4x4
    Color:
    Thunder Gray
    Hoy por hoy y a modo de resumen, si te bajas algún mapa de HERE (navteq) de internet, lo grabas en una tarjeta SD cualquiera y en la carpeta LGENavi\LIMF\ copias el archivo AMK.LMF los mapas funcionarán en el navegador de tu Tucson. Esa es básicamente toda la dificultad ;)
     
    Agustin, SANTOSESO, kike y 5 otros les gusta esto.
  9. sanjusto

    sanjusto Forero Novato

    Ubicación:
    VALLADOLID
    Motor:
    1.7 CRDi 115 CV
    Versión:
    Tecno
    Color:
    White Sand
    Me has dejado sin palabras...:thumbsup:
     
    A kike le gusta esto.
  10. Connermc

    Connermc Forero Activo

    Jkd, estas abriendo la puerta a meter mapas actuales como los q se hablaron en otro post de mayo 2016 de la marca vw?

    Saludos!
     
    A kike le gusta esto.
  11. JKD

    JKD Forero Experto

    Motor:
    2.0 CRDi 136 CV
    Versión:
    Tecno Aut. 4x4
    Color:
    Thunder Gray
    No conozco el tipo de mapas que integra vw pero si no son de HERE o no guardan la misma estructura de archivos nuestro navi no sabrá interpretarlos
     
    A kike y Connermc les gusta esto.
  12. Red2pepper

    Red2pepper Forero Activo

    Ubicación:
    Girona
    Motor:
    1.6 TGDi 176 CV
    Versión:
    Style 7DCT 4x4
    Color:
    Platinum Silver
    A kike y Connermc les gusta esto.
  13. Connermc

    Connermc Forero Activo

    Red2pepper me has quitado el post de la boca xddd
     
    A kike y Red2pepper les gusta esto.
  14. Sandrovich

    Sandrovich
    Moderador
    Miembro del equipo

    Ubicación:
    Santa Cruz de Tenerife
    Motor:
    1.6 GDi 131 CV
    Versión:
    Style
    Color:
    Polar White
    Bueno, siento ser aguafiestas pero en mi navegador no ha funcionado.
    Me he bajado el fichero de la variables a 1 que me pasó @JKD y lo he metido en una tarjeta normal SD con los mapas que pasó el compañero ruso, que son los últimos que hay disponibles.
    Pues bien, sigue diciendo que la tarjeta no es compatible o algo así.

    A ver si subo la versión que lleva mi navegador pero es la del verano 2015 sin actualizar.
     
    A kike le gusta esto.
  15. JKD

    JKD Forero Experto

    Motor:
    2.0 CRDi 136 CV
    Versión:
    Tecno Aut. 4x4
    Color:
    Thunder Gray
    Localiza LgeDRMKey.exe y pásamelo por correo. A ver tu versión. Te puedo asegurar que con las dos últimas versiones es funcional.
     
    A kike le gusta esto.
  16. Sandrovich

    Sandrovich
    Moderador
    Miembro del equipo

    Ubicación:
    Santa Cruz de Tenerife
    Motor:
    1.6 GDi 131 CV
    Versión:
    Style
    Color:
    Polar White
    Te lo pasaré mañana junto a la captura de la versión que llevo porque estoy de noche y salgo de madrugada.
     
  17. JKD

    JKD Forero Experto

    Motor:
    2.0 CRDi 136 CV
    Versión:
    Tecno Aut. 4x4
    Color:
    Thunder Gray
  18. Red2pepper

    Red2pepper Forero Activo

    Ubicación:
    Girona
    Motor:
    1.6 TGDi 176 CV
    Versión:
    Style 7DCT 4x4
    Color:
    Platinum Silver
  19. JKD

    JKD Forero Experto

    Motor:
    2.0 CRDi 136 CV
    Versión:
    Tecno Aut. 4x4
    Color:
    Thunder Gray
    Son los mapas a los que me refiero. He visto la estructura de archivos y ni su estructura ni las extensiones de archivo se corresponden con lo que tenemos nosotros. Incluso estos tampoco se asemejan a otros mapas para IGO que supuestamente también son de HERE.
     
    A kike le gusta esto.
  20. Red2pepper

    Red2pepper Forero Activo

    Ubicación:
    Girona
    Motor:
    1.6 TGDi 176 CV
    Versión:
    Style 7DCT 4x4
    Color:
    Platinum Silver
    Perdona, no lo había visto:confused:
     
Este sitio usa cookies, propias y de terceros. Si se continúa con nosotros entendemos que se acepta el uso de cookies. Aceptar Más información