Guía Guía para obtener contenido DRM. (En progreso)

yannic0

Lurker
Registrado
18 Ene 2022
Mensajes
305
Puntos de reacción
0
Esta es solo una guía que debería facilitar la obtención de contenido con DRM.
Sí, ya existen algunas guías. Pero quiero hacer una que hasta alguien sin conocimientos técnicos pueda entender, seguir y encontrar.
Esta guía recorrerá el proceso de instalar python y las herramientas necesarias para obtener contenido protegido con DRM
La guía se dividirá en varias partes.
Usuarios de Mac OS, por favor vayan a esta guía: https://simpcityopen.com/threads/81957/
Instalación de Python, PIP y Frida
Primero lo primero.
Descarga Python desde este sitio: https://www.python.org/downloads/ y consigue la última versión*. (No la pre-release)

* La última versión al momento de escribir esto es 3.11.4
Abre el instalador y asegúrate de marcar "Add python to PATH"

Después de seleccionar esa opción presiona instalar y espera hasta que termine.
Para asegurarte de que está bien instalado, abre Terminal (Windows 11) o Powershell (Windows 10/11) y escribe:
Eso debería darte el siguiente resultado*

* La versión puede variar según cuál sea la última con el tiempo.
Con la instalación de Python viene el paquete pip. Para revisar si está instalado escribe en una Terminal o Powershell:
Eso también debería darte el siguiente resultado*

* De nuevo la versión puede variar con el tiempo.
Si por alguna razón PIP no está instalado todavía, abre una Terminal o Powershell y escribe:
Para instalar frida ve a una Terminal o Powershell y escribe:
Asegúrate de anotar en algún lado qué versión se instaló, es importante más adelante. * (La versión está marcada en amarillo)

* Las versiones pueden variar para ti, así que revisa bien.
Después necesitas frida-tools que se puede instalar escribiendo en Terminal o Powershell:

Instalación de Android Studio y creación de tu primer teléfono virtual
Descarga Android Studio https://developer.android.com/studio

Y sigue el proceso de instalación.
Después de instalar abre Android Studio.
Puedes dejar la mayoría de las configuraciones en default. Luego cuando lleguen las licencias haz clic en aceptar en todas hasta que se resalte el botón de finalizar.

Después de la instalación Android Studio se abrirá y te dará la opción de "crear un nuevo proyecto" como se muestra abajo:

Si te da un error en esta parte, tendrías que revisar si tu dispositivo tiene la virtualización habilitada.
Lee este post: https://simpcityopen.com/threads/81957/
Luego selecciona "phone and tablet" con una "empty activity" y haz clic en next, como se muestra en la imagen de abajo:

A continuación selecciona un SDK mínimo de Android 9.0 (Pie) o superior como se muestra abajo:

Para crear un nuevo dispositivo presiona el botón device manager y haz clic en "create device" como se muestra abajo:

Busca el Pixel 6, selecciónalo y presiona next.

Primero necesitarás descargar el OS, así que presiona el ícono de descarga junto a la versión* que quieras. (*Elige Android 9.0 o más nuevo.)

Cuando termine de descargar selecciona la versión de nuevo, presiona next y termina de configurar el nuevo dispositivo.
Instalando Frida-server en tu teléfono virtual
Lo siguiente es instalar frida en tu teléfono virtual. Descarga frida en tu PC desde aquí: https://github.com/frida/frida/releases y busca "frida-server" con la versión correcta que se resaltó en amarillo cuando instalaste frida con pip, y asegúrate de elegir la versión android-x86, como se muestra abajo:

Extrae el archivo descargado a la siguiente ubicación en tu dispositivo:
Usa Winrar o 7zip. (O algo similar.)
Y déjalo ahí así:

--
Elige uno de los dos métodos:
Método automatizado: https://simpcityopen.com/threads/81957/
Abre una Terminal o Powershell en la carpeta donde extrajiste la herramienta. Hay varias formas de hacer esto.
  • (Windows 10/11) Shift + Clic derecho > Abrir en Terminal/Powershell. (Primera imagen)
  • (Windows 11) Clic derecho + Mostrar más opciones > Abrir en Terminal. (Primera imagen)
  • (Windows 10/11) En la barra de ruta, escribe "CMD" y presiona ENTER. (Segunda imagen)
Opción 1 y 2

Opción 3

En Terminal o Powershell escribe:
Prueba esto en su lugar:
(Agrega ".\" antes.)
Deberías ver un emulador.

Asegúrate de haber iniciado tu teléfono virtual yendo a Android Studio > Device Manager y presionando el botón de play de tu teléfono virtual.
(Deberías ver que el botón de play se convierte en un botón de stop y aparecerá un teléfono debajo.)
Si eso no funciona ve a la siguiente carpeta:
Abre Terminal o Powershell y escribe:
Prueba esto en su lugar:
(Agrega ".\" antes.)
Deberías ver el nombre de tu teléfono virtual ahí. Para iniciar tu teléfono escribe lo siguiente:
Ejemplo:

Tu teléfono virtual ya está corriendo.
Continúa escribiendo el siguiente comando, asegúrate de revisar qué versión necesitas usar:

Después de que se haya "insertado" en tu teléfono escribe el siguiente comando para acceder al teléfono (mira las imágenes de ejemplo si esta parte se te dificulta):
Ejemplo:

¡MANTÉN ESTA TERMINAL O POWERSHELL ABIERTA!
Configurando el script Dumper
Ve al siguiente github en tu PC (no tu teléfono virtual) https://github.com/wvdumper/dumper y presiona el botón verde "Code " y luego "Download zip".
image4cd8d25dcc2e386a.png

Extrae el archivo zip donde quieras. (Yo lo tengo en la carpeta de descargas) entra a la carpeta y abre el archivo requirements.txt usando el bloc de notas.
image65b962c80078751b.png

Agrega la siguiente línea al archivo:
Debería verse algo así ahora:
image920bcc60ebad9b1b.png


Guarda el archivo y abre una nueva Terminal o Powershell. (Sin cerrar la anterior.)
Puedes abrir una terminal o powershell haciendo clic derecho y seleccionando terminal/powershell (1) o escribiendo "CMD" en la barra de ruta (2).
Opción 1

Opción 2

En la segunda terminal o powershell escribe:
Una vez que termine de instalar los paquetes necesarios escribe lo siguiente:
¡MANTÉN ESTA TERMINAL O POWERSHELL ABIERTA TAMBIÉN!
Obteniendo claves usando el script Dumper
Finalmente usa tu teléfono virtual y navega usando chrome al siguiente sitio: https://bitmovin.com/demos/drm
El sitio preguntará si se le permite reproducir videos protegidos. Presiona PERMITIR.
Baja un poco hasta que veas el video y presiona play.
Deberías ver algo de actividad en tu segunda terminal o powershell. ¡Eso significa que funcionó! 🎉
Para verificar eso, entra a la carpeta dumper-main y revisa si ves la carpeta "key_dumps":

Al seguir entrando en las carpetas encontrarás "private_keys" sigue entrando hasta que veas estos dos archivos:

Renombra estos archivos así:
Nombre originalNombre nuevo
client_id.bindevice_client_id_blob
private_key.pemdevice_private_key
Asegúrate de cambiar la extensión, esto debería pasar cuando renombras los archivos.
Revisa si el tipo de archivo cambió a solo "Archivo" en vez de un archivo BIN o PEM.*

*Nota que esto es una comparación, tú solo tendrás los dos archivos (device_client_id_blob y device_private_key)
Ahora estás listo para usar las claves para las herramientas de scraping.
(Haré una guía de algunos de esos scrapers más abajo, de nuevo con la intención de que sea fácil de entender y seguir.)
Mientras tanto puedes intentarlo tú mismo siguiendo las guías que ya existen aquí:
https://simpcityopen.com/threads/2257/
 
Buen aporte, gracias :peepolove:
Puse links en los posts relevantes de mi guía de OF para mandar a la gente para acá
 
¡Gracias! Después de extraer las keys con éxito, ¿hay alguna razón por la que no se podría desinstalar Android Studio, Python, etc? ¿O las keys caducan en algún momento y hay que generarlas de nuevo?
 
Yo recomendaría dejar siempre python instalado ya que se usa en la mayoría de scrapers.
Y para Android Studio también es mejor mantenerlo instalado, porque las keys generadas podrían dejar de funcionar después de un tiempo. (Eso te ahorra tiempo para usos futuros)
 
Hice unos scripts batch que agilizan un poco el proceso, te ahorran tener que meterte manualmente en adb.exe, etc. https://github.com/sim0n00ps/L3-Dumping. Traté de explicar lo más posible qué rutas van dónde.
Otro tip sería en Helpers/Scanner.py cambiar los nombres de archivo en la línea 44 de "client_id.bin" a "device_client_id_blob" y en la línea 47 de "private_key.pem" a "device_private_key". Te ahorra tener que renombrar los archivos y quitar las extensiones después.
 
¡Funciona re bien! Lo voy a agregar a la guía como la versión "automatizada"
 
Hola, quería pedir una pequeña ayuda porque estoy siguiendo un tutorial, pero desafortunadamente no todo me está funcionando.
Específicamente, estoy siguiendo las instrucciones paso a paso, eligiendo el método automático, y cuando completo todos los pasos, lanzo el dispositivo y luego ejecuto el 'run.bat'.
Efectivamente se abren dos líneas de comandos. Sin embargo, cuando avanzo con los siguientes pasos, las instrucciones mencionan que debería ver alguna actividad en una de las líneas de comandos. Por desgracia, en mi caso no pasa nada. Tampoco aparece ninguna carpeta nueva en la carpeta 'dumper-main'. Intenté rehacer todo, pero persisten los mismos problemas. Adjunto capturas de mis líneas de comandos. Tal vez alguien me pueda dar algún consejo. Gracias de antemano por cualquier ayuda.
https://i.pixl.li/246574e7dad017050.png
https://i.pixl.li/1e172e8a70f4c7dd0.png
 
Falla mía. (Me olvidé de mencionar que igual hay que correr el script de requirements.) ¡Lo voy a agregar a la guía!
 
Che, logré que funcione todo con el método automático solo después de cambiar el nombre de los archivos client y meterlos en la carpeta cdm. Excepto que el archivo blob no se encuentra en el downloader de OF. La device key sí se encuentra, después de renombrarla cambió a archivo tipo "file". Cuando renombré el archivo blob, no cambió de archivo bin a tipo "file", ¿será por eso?
 
Sí, lo más probable. La extensión tiene que cambiar a "file". Mirá la siguiente imagen:
imageddca91dc6d8f83c8.png
 
¿Sabés cómo hacer que el archivo bin cambie a file? No pasó después de renombrarlo. ¿Qué puedo hacer para que pase?
 
¿Podés activar esto?
imagee05d8dc9a426ec06.png

Así podés ver si el archivo todavía tiene la extensión al final. (Si es así, al editar el nombre tenés que borrar la parte .bin o .pem — Windows te va a preguntar si puede cambiar la extensión, solo aceptá. Mirá la siguiente imagen:)
image58f3368fe0e4ae5d.png
 
Gracias, viejo, todavía me sale el mensaje de que no se encuentra el archivo blob, no sé qué hice mal, voy a intentar todo de nuevo. La private key sí es reconocida.
 
Ya hice todo, así que solo estoy trabado en la parte de las keys. Primero me sale este error "Unable to start: Error binding to address 127.0.0.1:27042: Address already in use" y cuando reinicio me sale "'adb' is not recognized as an internal or external command"
 
Probá lo siguiente.
En vez de llamar al comando adb así:
Probá esto:
 
¿Alguna idea de cuál es el error? Me pasa tanto con el método manual como con el automático
 
Creo que me pasó esto antes y terminé simplemente borrando el teléfono y reiniciando el proceso
 
Probé eso pero no tuve suerte
Con el método manual, aunque los requirements están satisfechos, sigo teniendo ModuleNotFoundError: No module named 'frida'
 
Atrás
Arriba