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 A psicologia do Dinheiro

A psicologia do Dinheiro

Morgan Housel oferece insights valiosos sobre a gestão financeira e tomada de decisões. O autor enfatiza que o sucesso financeiro depende mais do comportamento do que da inteligência ou conhecimento técnico. Housel destaca a importância da visão de longo prazo e da resiliência diante da volatilidade do mercado, encorajando a forcamos na sustentabilidade em vez de ganhos de curto prazo.

Cover Image for Bellsant

Bellsant

Estou na vanguarda do desenvolvimento de um aplicativo de saúde e bem-estar de ponta. Nossa pilha de tecnologia combina React Native para desenvolvimento móvel multiplataforma com um backend NodeJS sem servidor, aproveitando o AWS Lambda para escalabilidade e eficiência de custos.

Abílio Azevedo
Abílio Azevedo

NewsLetter

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

Engenheiro de software experiente, formado em Engenharia Elétrica, com mais de 10 anos de experiência prática na construção de aplicativos móveis, web e back-end robustos e escaláveis em vários projetos, principalmente no setor de fintech. Mobile (React Native), Web (React e Next.JS) e Backend (Node.JS, PHP e DJANGO). Meu objetivo é criar produtos que agreguem valor às pessoas. - © 2024, Abílio Azevedo