No More Secrets - Recriando o efeito de descriptografia na tela do filme Sneakers, de 1992
(github.com/bartobri)nmsé uma ferramenta de linha de comando que aplica a textos ASCII ou UTF-8 recebidos via pipe um efeito de descriptografia na tela, fazendo com que inicialmente pareçam dados criptografados antes de revelar os caracteres originais em texto claro- O efeito recria a famosa cena de descriptografia de dados do filme de hackers Sneakers, de 1992, e está ligado ao efeito mostrado no ponto 0:35 deste clipe do filme
- Por padrão, o
nmsexibe primeiro os caracteres criptografados iniciais, depois espera a entrada do usuário pelo teclado e então inicia a sequência de descriptografia - A forma principal de uso é passar dados da saída padrão por pipe, como em
ls -l | nms, e ele oferece opções representativas como descriptografia automática-a, mascaramento de caracteres de espaço-s, definição da cor de primeiro plano-f <color>, limpeza da tela-ce exibição da versão-v - O programa
sneakers, fornecido junto, recria a cena mostrada no clipe do filme, e o usuário precisa selecionar uma das opções de menu antes de sair - A configuração padrão não tem dependências, mas usa sequências de escape de terminal ANSI/VT100 para reproduzir o efeito
- Para terminais que não suportam ANSI/VT100, há uma implementação com ncurses
- A implementação com ncurses oferece suporte a terminais sem ANSI, mas tem a limitação de sempre limpar a tela antes da saída, perdendo assim a funcionalidade inline
- Para instalar a partir do código-fonte, são necessários
git,gccemake, e os alvos de compilação se dividem emnms, o opcionalsneakers, além denms-ncursesesneakers-ncursespara ncurses - Para usuários que queiram usar o mesmo efeito em programas de linha de comando, a biblioteca em C LibNMS é oferecida separadamente
- É software livre, podendo ser redistribuído e modificado sob os termos da GNU General Public License
1 comentários
Comentários no Hacker News
Gosto que as instruções de instalação não presumam que quem vai instalar esse pacote já tenha gcc/git/make
Afinal, não deve existir alguém do tipo “sou um usuário *nix totalmente iniciante, com a distribuição recém-instalada, e quero instalar um comando que recria o efeito de descriptografia de Sneakers”
Pacotes demais fazem esse tipo de suposição, e nesses casos há grande chance de outras informações essenciais também estarem faltando
Além disso, também é bom que não seja algo no estilo
npm installÀs vezes só há trechos de código ou configuração que não funcionam sozinhos, sem ficar claro onde devem ser colocados ou dentro do quê estão aninhados
Às vezes usam imports com nomes que nem aparecem na página
No mínimo, eu gostaria que colocassem um exemplo completo no fim da página, ou um link para ele
makeou procurandolib-$THINGno apt só olhando o nome de um arquivo.hque estava faltandoIsso deveria ser o padrão, e não uma exceção agradável
Eu me identifico 100% com essa frustração
Não quero colocar nada que envolva
makeem nenhum ponto do nosso processoPorque no fim vai falhar
Dito isso, isto não foi feito para uso sério, está mais para um projeto de brincadeira
Ainda assim, seria legal poder executar direto do código-fonte sem dependências, e acho que é por isso que algumas ferramentas ainda são feitas em shell puro
Em ataques reais de criptoanálise, há uma categoria de técnicas que, quando executadas, parecem a cena de descriptografia de Sneakers, como o oráculo de padding em CBC, o oráculo de padding RSA de Bleichenbacher e ataques byte a byte em ECB
Se bem me lembro, Juliano Rizzo chamou isso de Hollywood Attack
É um ótimo termo, eu queria que todo mundo usasse, e ele até ajuda um pouco a formar a intuição sobre o ataque
Muitos ataques de criptoanálise funcionam não enfrentando a mensagem inteira de 128 ou 2048 bits de uma vez, mas sim isolando de forma criativa um único byte do texto cifrado
Eu adoro esse filme
Vi em VHS quando era criança e, por coincidência, passo de bicicleta todos os dias pelo cenário de uma das cenas principais
É o pátio de tijolos que hoje fica entre o Google e a Wharton
No filme, ele aparece como uma área externa para refeições, e Sidney Poitier fala ao capanga no Karmann Ghia do Martin: “Martin, It's your mother”
E então eles percebem que não estão com a NSA
Hoje acrescentaram ali uma espécie de quartel de bombeiros suspenso, e a estrada mudou um pouco, mas eu gosto de como o lugar ainda permanece parecido com o que era na época das filmagens
No geral, é um filme realmente muito bem feito
Baixar de 3 a 5 arquivos-fonte e simplesmente rodar
make, e ele compila?Sem montar ambiente de build isolado, sem baixar 1600 dependências para compilar a partir do código-fonte, sem instalar uma hierarquia de sistema de arquivos com 1600 bibliotecas
.so, sem Docker nem npm?E ainda por cima compila em menos de 1 segundo?
Impressionante o que essa nova linguagem C consegue fazer
Você precisa ter
makee a toolchain de C instaladosSe isso estiver instalado, é quase certo que Python, Perl e talvez até uma versão bem recente de Java também estejam
No MacOS não, mas na maioria das distribuições Linux provavelmente sim
E todos eles também conseguem fazer a mesma coisa sem dependências
Nos anos 90, eu às vezes implementava métodos por conta própria porque achava, por engano, que incluir
stdlib.hou outras bibliotecas faria um programa em C ficar inchadoOu seja, eu nem entendia como a etapa de linkedição funcionava
Meu eu de 12 anos ficaria sem ar ao ver hoje NPM, pip, bundle e até Electron
Dava para fazer muita coisa com muito pouco
Se o ambiente estiver instalado e o programa não tiver dependências, basta rodar o comando de build
Este projeto também precisa de gcc, make e ncurses sem versões especificadas
Senão ela pode virar algo como o Python horroroso de hoje
Python já foi fantástico e realmente simplesmente funcionava
Aí todo mundo descobriu a linguagem, a Nvidia entrou na jogada e vieram TensorFlow/PyTorch/machine learning, e tudo desandou
Porque script kiddies sem o menor interesse em compatibilidade de pacotes escreveram coisa demais malfeita
A comunidade é o maior ponto forte da linguagem e, ao mesmo tempo, uma parte enorme do que ela tem de pior
makee realmente funcionou que, quando vejo um projeto em C, penso “legal, mas eu não vou conseguir compilar isso” e fecho a abaEste projeto compilou direitinho
Quando ouço a palavra “Passport”, não consigo evitar dizer “My voice is my passport”, nem que seja só na minha cabeça
“cattle mutilations are up”
Agora já nem sei qual dos dois era
O que acabei de fazer não foi fácil
O hack foi diretamente inspirado no filme, e a PLA mostrou isso em um episódio de podcast
https://phonelosers.com/2008/05/pla-radio-episode-17-voice-a...
A combinação disso com o cool-retro-term[1] é essencial para passar um tempo de hacker de verdade no meu computador
[1] https://github.com/Swordfish90/cool-retro-term
https://www.youtube.com/watch?v=_gRIG_zK4SQ
No meu primeiro trabalho em help desk, o suporte a mainframe fazia parte do serviço, e eu podia usar um antigo terminal de plasma IBM de 4 partições que ainda restava
O sistema de tickets também ainda ficava no mainframe, então era realmente útil para o trabalho no help desk
Acho que era este modelo, ou um muito parecido: https://www.argecy.com/ibm-3290-plasma-terminal
[1] https://github.com/Rezmason/matrix
brew install --cask cool-retro-termÉ curioso que, ao ver o obituário do Kevin Mitnick, esse filme tenha vindo imediatamente à minha cabeça
Imagino que muita gente tenha pensado o mesmo
Sempre divertido
Alguns anos atrás, fiz um script Python de arquivo único,
decrypt.py, que faz quase exatamente a mesma coisaInfelizmente, ele ainda é o repositório mais popular entre os meus projetos no GitHub: https://github.com/jtwaleson/decrypt
Eu realmente gostaria de ver uma versão moderna de Sneakers
Seria legal se a história fosse sobre alguém descobrir que um computador quântico provavelmente já foi construído e que, se ele realmente existir, precisa ser roubado
Isso também encaixa perfeitamente com o meme “no more secrets” do Sneakers
Mas o original já era um filme sobre envelhecimento e maturidade, então só o fato de mais uma geração ter passado não renderia uma história tão convincente
É triste que River Phoenix e Sidney Poitier tenham morrido, e até fui conferir se Ben Kingsley ainda está vivo
Para um filme que lida em alguma medida com tecnologia, acho que o original envelheceu surpreendentemente bem
Em parte porque foi feito exatamente antes da chegada da World Wide Web, e porque mesmo em 2023 ainda existem sistemas importantes rodando em mainframes
Não sei por que os filmes de que eu gostava quando era criança não ganham reboot, continuação, prequela, nem sequer uma continuação ruim
Este é um dos filmes da minha vida
A cena da descriptografia é realmente icônica na minha memória, e este projeto capturou perfeitamente essa sensação