Abílio Azevedo.

Screenshot Bot

Cover Image for Screenshot Bot
Abílio Azevedo
Abílio Azevedo

Antes de mais nada quero deixar claro que não comercializei nem irei comercializar os materiais citados aqui neste artigo. Também deixar claro que paguei pelos acessos e conteúdos aqui citados. E que fiz os procedimentos aqui citados para estudo, prática de técnicas de engenharia reversa e de segurança de sistemas.

Recentemente voltei a estudar inglês em um curso para melhoria da pronúncia na escola Excellent Global que tem parceria com a Superlógica (empresa que trabalho atualmente).

Como é um curso remoto, eles liberaram acesso ao livro de forma virtual. O acesso é feito pelo site através de um login e senha. Porém, eu queria acessar o livro de maneira offline e poder escrever no livro digitalmente. Entretanto, não era possível porque o site em wordpress utiliza um plugin de segurança PDF Embedder Secure.

Os PDF originais ficam guardados em uma pasta de acesso protegido: Acesso Protegido

O plugin tem acesso a esta pasta e transforma o PDF em um arquivo binário encryptado no backend e baixa ele no frontend: Screen Shot 2022-02-13 at 16.35.34

Com este binário o frontend, então, interpreta e converte para renderizar as páginas do pdf em tags canva no HTML: PDFEM-viewer

Portanto, era preciso utilizar um algoritmo similar ao do plugin para interpretar e converter em PDF. Porém isso tomaria muito tempo, portanto decidi fazer um bot que tira fotos da tela e anda pra próxima página. Você encontra o código fonte do bot. Com isso consegui gerar o PDF do livro.

Para ir mais além no estudo de segurança do plugin, tentei acessar outros livros. Lembrando que eu paguei pelo acesso do livro mais avançado, pra mim os outros livros não tem importância, mas queria ver se era possível acessá-los. Para isso exportei o HTML recebido na página do livro e modifiquei a URL do livro que continha o nome "lifestyle" (ultimo livro) para "decision" (penultimo livro) e rodei esse HTML em um servidor local. Porém, cai no bloqueio de CORS e para by-passar esse bloqueio utilizei o plugin do Chrome Moesif Origin & CORS Changer com isso consegui rodar o script do plugin e acessar o livro Decision. Só consegui isso porque eles utilizaram um padrão de nome de arquivo muito fácil. O ideal é sempre utilizar identificadores randomicos para guardar seus arquivos no servidor.

Já reportei o problema para a empresa =)

Por fim, gostaria de indicar o vídeo que a Rocketseat fez junto com desenvolvedores do Grupo Primo falando sobre o desenvolvimento da plataforma de conteúdo deles. Nesse vídeo eles falam sobre Digital Rights Management (DRM) e as formas de proteger conteúdos digitais. Entre elas:

  • Proteção em hardware para evitar o printscreen.
  • Injetar códigos únicos por usuário no encode da imagem, vídeo ou áudio para identificar quem está compartilhando o conteúdo pirata. Por isso algumas TVs antigas não passam alguns conteúdos por não terem a proteção de DRM.

Mais posts

Cover Image for Padrões de design na nuvem

Padrões de design na nuvem

Explore os principais padrões de design de computação em nuvem que permitem que os desenvolvedores construam aplicativos escaláveis, resilientes e de alto desempenho. Este guia abrangente abrange 42 padrões comprovados, como Embaixador, Disjuntor, CQRS e Saga - destilados a partir das experiências de arquitetos de nuvem experientes. Aprenda a aproveitar essas poderosas técnicas de design para navegar pela complexidade da nuvem e entregar soluções inovadoras que atendam às necessidades em evolução do cenário digital de hoje.

Abílio Azevedo
Abílio Azevedo
Cover Image for PicPlants

PicPlants

Aplicativo com catálogo de plantas que indica a melhor para o seu perfil. Possui in-app purchase para adquirir mais consultas de plantas. Para analytics é utilizado o Amplitude e Firebase.

Abílio Azevedo
Abílio Azevedo

NewsLetter

Eu enviarei o conteúdo postado aqui no blog. Sem Spam =)