Saída "cena de hackers de Hollywood" de um shell

36

Isso pode parecer uma pergunta estranha, mas o que você usaria para criar a cena típica de hackers de hollywood?

Recebi esse pedido de um amigo e meu cérebro estava em branco. Tudo o que eu conseguia pensar era em todas as cenas nmap de filmes como Matrix e assim por diante.

Mas isso precisaria ser feito em um Mac com OSX padrão, que eu acho que é uma espécie de * nix, certo? Eles não têm acesso à Internet, portanto, preparar-se com ferramentas externas está fora de questão.

Eu estava pensando ao longo das linhas de escrever o equivalente a / var / log / messages para rastrear talvez ...

Xerbee
fonte
21
Pegue qualquer pacote e faça um./configure && make
Alex B
Eu acho que Alex está certo. Testar alguns pacotes diferentes, como você provavelmente não quer algo que compila para vários minutos
johnny
8
Tenha um banner enorme dizendo "DECODIFICAÇÃO" e doze rolos no estilo de caça-níqueis abaixo dele, com vários caracteres girando e parando um de cada vez, deixando-o com uma palavra em minúscula no dicionário.
DanBeale 25/09
2
Instale (se possível) FSN ou FSV. "É um sistema Unix. Eu sei disso!"
DanBeale 25/09
Se ninguém sugeriu, tente executar cmatrixem uma janela do terminal.
bollovan

Respostas:

34

Se você está perguntando como imprimir um caractere na tela de cada vez (um estilo de 'hacker' comumente exibido nos filmes de Hollywood), o seguinte script deve ser suficiente (é necessário a entrada de stdin).

Em bash:

#!/bin/bash

while IFS= read -r line; do
    length="${#line}"
    bol=1
    for (( offset = 0 ; offset < length ; offset++ )); do
        char="${line:offset:1}"
        printf '%s' "$char"
        if (( bol )) && [[ "$char" == " " ]]; then
            continue
        fi
        bol=0
        sleep 0.05
    done

    if (( length == 0 )); then
        sleep 0.$(( RANDOM % 3 + 2 ))
    else
        sleep 0.$(( RANDOM % 7 + 3 ))
    fi

    printf '\n'
done

Ou, uma versão mais simples em C:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(void) {
    char buf[1];
    int len;

    while ((len = read(STDIN_FILENO, buf, sizeof(buf))) > 0) {
        if (write(STDOUT_FILENO, buf, len) != len) {
            perror("write");
            return EXIT_FAILURE;
        }
        usleep(50000);
    }
    if (len != 0) {
        perror("read");
        return EXIT_FAILURE;
    }
    return EXIT_SUCCESS;
}

Se você deseja usar dmesgcomo entrada, por exemplo:

dmesg | hollywood
Chris Down
fonte
2
Adicionando alguns $RANDOMatrasos nos horários pode ser muito divertido :-)
Stéphane Gimenez
1
Adicionar ruído na linha do modem seria ainda melhor. Esse pode se tornar o post mais editado na UL.
Tim Post
1
Não faço ideia do que Tim quer dizer com ruído de linha, mas eu o implementaria como mudar o primeiro printfpara printf '\b%s%c' "${_line:_offset:1}" $RANDOMe adicionar printf '\b \b'antes do segundo sleep.
manatwork
1
HAHAHAH Acabei de rodar isso com dmesg e rindo muito! Por favor, continue atualizando isso, é épico.
n0pe 27/09/11
2
Isso é obscuro. Definitivamente um vencedor para a saída "hacky" ...
rmckenzie
14
export GREP_COLOR='1;32'; cat /dev/urandom | hexdump -C | grep --color=auto "ca fe"

Este (e outros comandos de http://www.commandlinefu.com/commands/view/6663/pretend-to-be-busy-in-office-to-enjoy-a-cup-of-coffee ) também parece muito, , hackish '' e confunde a maioria das pessoas que olham para o terminal no momento determinado;)

Wiesław Herr
fonte
6
Não é necessário exportar GREP_COLOR e você não precisa usar o cat. Basta usarhexdump -C /dev/urandom | GREP_COLOR='1;32' grep --color=auto 'ca fe'
Chris Baixo
+1000 Agora essa é uma ótima resposta!
6
  1. Use o Compiz com itens como Wall, Expose, janelas parcialmente transparentes etc.
  2. Use tcpdump em pelo menos uma tela.
  3. Use o IRC e o Irssi para conversar com outros "hackers" em outra tela.
  4. Compile um Kernel. você não precisa instalá-lo, basta compilá-lo, criar os módulos e começar de novo limpando objetos compilados e reiniciando a compilação. use cores GCC para aprimorar o efeito.
  5. Para iniciar o OpenBSD em uma tela, você pode usar uma VM para isso, se não tiver uma máquina sobressalente.
  6. Impressão linha a linha de dmesg.
  7. Abra alguns arquivos de código-fonte no Gvim e use o esquema de cores Cobald ou o meu .
  8. Modifique xscreensaver "phosphor" e inicie-o em uma janela. Pode imprimir itens de caractere por caractere. Eu o usei algumas vezes para efeito visual.
  9. Use mplayer com aalib ou cacalib. Existe um filtro de matriz, mas isso pode parecer uma imitação barata.
  10. Sugiro usar o zsh, com saída ls colorida (dircolor), além de um bom shell.
polemon
fonte
4

Que tal essa configuração para uma configuração hackeada de Hollywood?

  • Não use um gerenciador de janelas parecido com windows ou mac, todos os outros parecem hackeados, pois o cara normal não sabe o que é.
  • Selecione algumas cores realmente nerds para o terminal, como "âmbar no preto" ou "verde no preto".
  • Tenha o hexdump aleatoriamente (como Wiesław Herr descreveu) executando em uma janela em segundo plano.
  • Tenha algo parecido com um log sendo executado em outra janela, talvez um tcpdump quase legível por humanos.
  • etc etc

Esse deve ser um bom começo falso.

Johan
fonte
4

Eu tive que fazer isso há um mês atrás. Acabei de disparar "find /" e foi o suficiente.

gb.
fonte
3

Você pode usar

pv /var/log/messages -qL 100

A execução man pvfornece as seguintes definições para qe Lsinalizadores.

-q, --quiet - Sem saída. Útil se a opção -L estiver sendo usada sozinha para limitar a taxa de transferência de um tubo.

-L RATE, --rate-limit RATE - Limita a transferência a um máximo de bytes de RATE por segundo. Um sufixo de "k", "m", "g" ou "t" pode ser adicionado para indicar kilobytes (* 1024), megabytes e assim por diante.

o 100é o número de bytes / segundo

PS great todler protector (verifique se você não está no modo Janela ALT+ CTRL+ F2funciona melhor assim)

EDITAR

Quem sou eu
fonte
Por que você está usando less? Apenas redirecione o arquivo para pv.
Chris Baixo
Opa um oversite, geralmente eu uso man rsynceu modificado para a pergunta. Fixando ..
whoami
Alguns pesquisadores sugerem que isso pvnão está disponível por padrão no Mac (disponível no HomeBrew e no Ports).
Chris Baixo
Não está aqui na minha instalação 10.6 ...
serverhorror 24/09
Eu consegui trabalhar no Ubuntu e Fedora, nunca usei macs, então não tenho certeza qual é o requisito para isso, mas tenho certeza que você pode instalá-lo. Im não tem certeza onde se podia baixar o pacote
whoami
3

Isso pode parecer uma pergunta estranha, mas o que você usaria para criar a cena típica de hackers de hollywood?

O tecnodrama de Hollywood deve ter inspiração suficiente para o que você está procurando. Está disponível como um pacote para Linux, também no github , deve ser capaz de separar os bits que você gosta e empacotar algo no OS X.

Em um sistema Debian / Ubuntu, você pode instalar assim:

sudo apt-get install hollywood

Ou se isso não funcionar:

sudo apt-add-repository ppa:hollywood/ppa
sudo apt-get update
sudo apt-get install hollywood
Eliot
fonte
2

de commandlinefu:

tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"

ou

echo "You can simulate on-screen typing just like in the movies" | pv -qL 10

Sirex
fonte
1

Entendo que o nmap é o aplicativo hollywoodiano padrão, e aqui está uma página de um cara que trabalhou para tornar o hacking de Hollywood em Tron mais real.

Dave Jacoby
fonte