Guia Guia para conseguir conteúdo DRM. (WIP)

yannic0

Lurker
Entrou
18 Jan 2022
Postagens
305
Pontuação de reações
0
Isso é só um guia que deve facilitar a obtenção de conteúdo com DRM.
Sim, já existem alguns guias. Mas eu só quero fazer um que até quem não manja de tecnologia consiga entender, seguir e encontrar.
Esse guia vai passar pelo processo de instalar o python e as ferramentas necessárias pra conseguir conteúdo protegido por DRM
O guia será dividido em várias partes.
Usuários de Mac OS, por favor vão pra este guia: https://simpcityopen.com/threads/81957/
Instalação do Python, PIP e Frida
Primeiro as coisas primeiro.
Baixe o Python nesse site: https://www.python.org/downloads/ e pegue a versão mais recente*. (Não a pre-release)

* A versão mais recente no momento em que escrevo é a 3.11.4
Abra o instalador e certifique-se de marcar "Add python to PATH"

Depois de selecionar essa opção aperte instalar e espere terminar.
Pra garantir que foi instalado corretamente, abra o Terminal (Windows 11) ou Powershell (Windows 10/11) e digite:
Isso deve te dar o seguinte resultado*

* A versão pode variar dependendo de qual é a versão mais recente com o tempo.
Com a instalação do Python vem o pacote pip. Pra ver se está instalado digite em um Terminal ou Powershell:
Isso também deve dar o seguinte resultado*

* De novo, a versão pode variar com o tempo.
Se por algum motivo o PIP ainda não estiver instalado, abra um Terminal ou Powershell e digite:
Pra instalar o frida vá num Terminal ou Powershell e digite:
Certifique-se de anotar em algum lugar qual versão foi instalada, isso é importante mais pra frente. * (A versão está marcada em amarelo)

* As versões podem ser diferentes pra você, então confira.
Aí você precisa do frida-tools que pode ser instalado digitando no Terminal ou Powershell:

Instalação do Android Studio e criação do seu primeiro celular virtual
Baixe o Android Studio https://developer.android.com/studio

E siga o processo de instalação.
Depois de instalar abra o Android Studio.
Você pode deixar a maioria das configurações no padrão. Depois, quando chegar nas licenças, clique em aceitar em todas até o botão de finalizar ficar destacado.

Depois da instalação o Android Studio vai abrir e dar a opção de "criar um novo projeto" como mostrado abaixo:

Se você tiver um erro nessa parte, você vai precisar checar se seu dispositivo tem a virtualização ativada.
Leia esse post: https://simpcityopen.com/threads/81957/
Aí selecione "phone and tablet" com uma "empty activity" e clique em next, como mostrado na imagem abaixo:

Depois selecione um SDK mínimo de Android 9.0 (Pie) ou superior como mostrado abaixo:

Pra criar um novo dispositivo aperte o botão device manager e clique em "create device" como mostrado abaixo:

Procure pelo Pixel 6, selecione e aperte next.

Você vai precisar baixar o OS primeiro, então aperte o ícone de download ao lado da versão* que você quiser. (*Escolha Android 9.0 ou mais novo.)

Depois que terminar de baixar selecione a versão de novo e aperte next e termine de configurar o novo dispositivo.
Instalando o Frida-server no seu celular virtual
Agora é instalar o frida no seu celular virtual. Baixe o frida no seu PC aqui: https://github.com/frida/frida/releases e procure por "frida-server" com a versão certa que ficou marcada em amarelo quando você instalou o frida usando o pip, e certifique-se de pegar a versão android-x86, como mostrado abaixo:

Extraia o arquivo baixado pro seguinte local no seu dispositivo:
Use o Winrar ou 7zip. (Ou algo parecido.)
E deixe ele lá assim:

--
Escolha um dos dois métodos:
Método automatizado: https://simpcityopen.com/threads/81957/
Abra um Terminal ou Powershell na pasta onde você extraiu a ferramenta. Tem várias formas de fazer isso.
  • (Windows 10/11) Shift + Clique com o botão direito > Abrir no Terminal/Powershell. (Primeira imagem)
  • (Windows 11) Clique com o botão direito + Mostrar mais opções > Abrir no Terminal. (Primeira imagem)
  • (Windows 10/11) Na barra de caminho, digite "CMD" e aperte ENTER. (Segunda imagem)
Opção 1 e 2

Opção 3

No Terminal ou Powershell digite:
Tente isso ao invés:
(Adicione ".\" na frente.)
Você deve ver um emulador.

Certifique-se de ter iniciado seu celular virtual indo em Android Studio > Device Manager e apertando o botão de play do seu celular virtual.
(Você deve ver o botão de play virar um botão de stop e um celular vai aparecer embaixo dele.)
Se isso não funcionar vá pra seguinte pasta:
Abra o Terminal ou Powershell e digite:
Tente isso ao invés:
(Adicione ".\" na frente.)
Você deve ver o nome do seu celular virtual nele. Pra iniciar seu celular digite o seguinte:
Exemplo:

Seu celular virtual está rodando agora.
Continue digitando o seguinte comando, certifique-se de checar qual versão você precisa usar atualmente:

Depois que for "inserido" no seu celular digite o seguinte comando pra acessar o celular (dê uma olhada nas imagens de exemplo se achar essa parte difícil):
Exemplo:

DEIXE ESSE TERMINAL OU POWERSHELL ABERTO!
Configurando o script Dumper
Vá pro seguinte github no seu PC (não no seu celular virtual) https://github.com/wvdumper/dumper e aperte o botão verde "Code " e depois "Download zip".
image4cd8d25dcc2e386a.png

Extraia o arquivo zip onde você quiser. (Eu deixo ele na pasta de downloads) entre na pasta e abra o arquivo requirements.txt usando o bloco de notas.
image65b962c80078751b.png

Adicione a seguinte linha no arquivo:
Deve ficar mais ou menos assim agora:
image920bcc60ebad9b1b.png


Salve o arquivo e abra um novo Terminal ou Powershell. (Sem fechar o anterior.)
Você pode abrir um terminal ou powershell clicando com o botão direito e selecionando terminal/powershell (1) ou digitando "CMD" na barra de caminho (2).
Opção 1

Opção 2

No segundo terminal ou powershell digite:
Quando terminar de instalar os pacotes necessários digite o seguinte:
DEIXE ESSE TERMINAL OU POWERSHELL ABERTO TAMBÉM!
Pegando as chaves usando o script Dumper
Por fim use seu celular virtual e navegue usando o chrome pro seguinte site: https://bitmovin.com/demos/drm
O site vai perguntar se ele pode reproduzir vídeos protegidos. Aperte PERMITIR.
Role um pouco pra baixo até ver o vídeo e aperte play.
Você deve ver alguma atividade no seu segundo terminal ou powershell. Isso significa que funcionou! 🎉
Pra confirmar isso, vá na pasta dumper-main e veja se você vê a pasta "key_dumps":

Entrando mais nas pastas você vai achar "private_keys" continue entrando nela até ver esses dois arquivos:

Renomeie esses arquivos assim:
Nome originalNovo nome
client_id.bindevice_client_id_blob
private_key.pemdevice_private_key
Certifique-se de mudar a extensão, isso deve acontecer quando você renomear os arquivos.
Veja se o tipo do arquivo mudou pra só "Arquivo" ao invés de um arquivo BIN ou PEM.*

*Note que isso é uma comparação, você vai ter só os dois arquivos (device_client_id_blob e device_private_key)
Você já está pronto pra usar as chaves nas ferramentas de scraping.
(Vou fazer um guia pra alguns desses scrapers mais abaixo, de novo com a intenção de deixar simples de entender e seguir.)
Enquanto isso você pode tentar você mesmo seguindo os guias que já existem aqui:
https://simpcityopen.com/threads/2257/
 
Boa, valeu :peepolove:
Coloquei links nos posts relevantes do meu guia de OF pra mandar a galera pra cá
 
Valeu! Depois de extrair as keys com sucesso, tem algum motivo pra não poder desinstalar o Android Studio, Python, etc? Ou as keys expiram em algum momento e precisam ser geradas de novo?
 
Eu sugeriria sempre deixar o python instalado, já que é usado na maioria dos scrapers.
E quanto ao Android Studio, também é melhor manter instalado, pois as keys geradas podem parar de funcionar depois de um tempo. (Isso vai economizar tempo pro futuro)
 
Fiz uns scripts batch que agilizam um pouco o processo, te poupam de ter que mexer manualmente no adb.exe, etc. https://github.com/sim0n00ps/L3-Dumping. Tentei explicar o máximo possível quais caminhos vão onde.
Uma dica também seria em Helpers/Scanner.py mudar os nomes dos arquivos na linha 44 de "client_id.bin" para "device_client_id_blob" e na linha 47 de "private_key.pem" para "device_private_key". Te poupa de ter que renomear os arquivos e tirar as extensões depois.
 
Funciona super bem! Vou adicionar no guia como a versão "automática"
 
Oi, eu gostaria de pedir uma ajudinha porque estou seguindo um tutorial, mas infelizmente nem tudo está funcionando pra mim.
Especificamente, estou seguindo as instruções passo a passo, escolhendo o método automático, e quando completo todos os passos, inicio o dispositivo e depois rodo o 'run.bat'.
Realmente abrem duas linhas de comando. Porém, quando sigo com os próximos passos, as instruções mencionam que eu deveria ver alguma atividade em uma das linhas de comando. Infelizmente, nada acontece do meu lado. Também não aparece nenhuma pasta nova na pasta 'dumper-main'. Tentei refazer tudo, mas os mesmos problemas persistem. Estou anexando prints das minhas linhas de comando. Talvez alguém consiga me dar algum conselho. Desde já agradeço qualquer ajuda.
https://i.pixl.li/246574e7dad017050.png
https://i.pixl.li/1e172e8a70f4c7dd0.png
 
Falha minha. (Esqueci de mencionar que ainda tem que rodar o script de requirements.) Vou adicionar no guia!
 
E aí, consegui fazer tudo funcionar com o método automático só depois de mudar o nome dos arquivos client e colocá-los na pasta cdm. Só que o arquivo blob não é encontrado no downloader de OF. A device key é encontrada, depois que renomeei ela virou um arquivo tipo "file". Quando renomeei o arquivo blob, ele não virou um arquivo "file" (continuou bin), será que é por isso?
 
É, provavelmente sim. A extensão precisa mudar pra "file". Olha a imagem a seguir:
imageddca91dc6d8f83c8.png
 
Você sabe como fazer o arquivo bin mudar pra file? Não aconteceu depois de renomear. O que eu posso fazer pra isso acontecer?
 
Você pode habilitar isso:
imagee05d8dc9a426ec06.png

Assim dá pra ver se o arquivo ainda tem a extensão atrás do nome. (Se sim, ao editar o nome você precisa remover a parte .bin ou .pem — o Windows vai perguntar se pode mudar a extensão, só clicar em permitir. Veja a próxima imagem:)
image58f3368fe0e4ae5d.png
 
Valeu cara, ainda recebo a mensagem que o arquivo blob não é encontrado, não sei o que fiz de errado, vou tentar de novo tudo. A private key é reconhecida, no entanto.
 
Já fiz tudo, então só estou travado na parte das keys. Primeiro dá esse erro "Unable to start: Error binding to address 127.0.0.1:27042: Address already in use" e depois quando reinicio dá "'adb' is not recognized as an internal or external command"
 
Tenta o seguinte.
Em vez de chamar o comando adb assim:
Tenta isso:
 
Alguma ideia do que seja esse erro? Dá tanto no método manual quanto no automático
 
Acho que já tive isso antes e acabei simplesmente deletando o telefone e reiniciando o processo
 
Tentei isso mas não tive sorte
Com o método manual, mesmo com os requirements satisfeitos, ainda tenho ModuleNotFoundError: No module named 'frida'
 
Voltar
Topo