37

This might seem like a strange question, but what would you use for creating the typical hollywood hacking scene?

I got this request from a friend and my brain was blank. All I could think of was all the nmap scenes from movies like The Matrix and so on.

But this would need to be done on a Mac with default OSX, which I think is some flavour of *nix, right? They have no internet access so preparing with external tools is out of the question.

I was thinking along the lines of writing the equivalent of /var/log/messages to screen maybe...

5
  • 21
    Take any package, and do a ./configure && make
    – Alex B
    Commented Sep 24, 2011 at 10:30
  • I think Alex is right. Test some different packages as you probably don't want something that compiles for several minutes
    – johnny
    Commented Sep 24, 2011 at 12:45
  • 8
    Have a HUGE banner saying "DECODING" and then twelve slot-machine style reels below it with various characters spinning round and stopping one at a time, leaving you with a lowercase dictionary word.
    – DanBeale
    Commented Sep 25, 2011 at 20:28
  • 2
    Install (if possible) FSN or FSV. "It's a Unix system. I know this!"
    – DanBeale
    Commented Sep 25, 2011 at 20:31
  • If nobody ever suggested, you can try running cmatrix in a terminal window.
    – bollovan
    Commented Sep 28, 2011 at 18:34

9 Answers 9

35

If you're asking how to print one character to the screen at a time (a commonly shown 'hacker' style in Hollywood movies), the following script should suffice (it takes input from stdin).

In 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

Or, a simpler version in 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;
}

If you wanted to use dmesg as input, for example:

dmesg | hollywood
10
  • 2
    Adding some $RANDOM delays in the timings might be fun too :-) Commented Sep 24, 2011 at 16:17
  • 1
    Adding modem line noise would be even better. This may become the most edited post on UL.
    – Tim Post
    Commented Sep 24, 2011 at 16:44
  • 1
    No idea what Tim means by line noise, but I would implement it as changing the first printf to printf '\b%s%c' "${_line:_offset:1}" $RANDOM and adding printf '\b \b' before the second sleep.
    – manatwork
    Commented Sep 25, 2011 at 11:51
  • 1
    HAHAHAH I just ran this with dmesg and freaking laughed! Please keep updating this, it is epic.
    – nopcorn
    Commented Sep 27, 2011 at 12:06
  • 2
    This is halarious. Definitely a winner for "hacky" output...
    – rmckenzie
    Commented Sep 27, 2011 at 18:03
14
export GREP_COLOR='1;32'; cat /dev/urandom | hexdump -C | grep --color=auto "ca fe"

This (and other commands from http://www.commandlinefu.com/commands/view/6663/pretend-to-be-busy-in-office-to-enjoy-a-cup-of-coffee) also seems very ,,hackish'' and confuses most people that stare at the terminal at the given moment ;)

2
  • 6
    No need to export GREP_COLOR, and you don't need to use cat. Just use hexdump -C /dev/urandom | GREP_COLOR='1;32' grep --color=auto 'ca fe'
    – Chris Down
    Commented Sep 26, 2011 at 21:24
  • +1000 Now that's a great answer!
    – user13742
    Commented Feb 29, 2012 at 23:33
6
  1. Use Compiz with things like Wall, Expose, partially transparent windows, etc.
  2. Use tcpdump on at least one screen.
  3. Use IRC and Irssi to talk to other "Hackers" on another screen.
  4. Compile a Kernel. you don't need to install it, just compile it, make the modules, then start over by cleaning compiled objects and restarting the compile. use GCC color to enhance the effect.
  5. Have OpenBSD boot up on one screen, you can use a VM for this, if you don't have a spare machine.
  6. Line-by-line print of dmesg.
  7. Open a few source code files in Gvim, and use the Cobald colorscheme or mine.
  8. Modify xscreensaver "phosphor" and start it in a window. It can print stuff character by character. I've used it a couple of times for visual effect.
  9. Use mplayer with aalib or cacalib. There is a matrix filter, but that might seem like a cheap ripoff.
  10. I suggest using zsh, with colored ls output (dircolor), as well as a nice shell.
4

How about this setup for a Hollywood hackish setup?

  • Don't use a windowmanager that looks like windows or mac, all of the others looks hackish since normal guy don't know what it is.
  • Select some really nerdy colours for the terminal like "amber on black" or "green on black".
  • Have the hexdump from random (like Wiesław Herr described) running in a window in the background.
  • Have something that looks like a log running in another window, maybe a tcpdump that is almost human readable.
  • etc etc

That should be a nice fake start.

4

I had to do that some month ago. I just fired "find /" and it was enough.

4

You can use

pv /var/log/messages -qL 100

Running man pv gives the following definitions for q and L flags.

-q, --quiet - No output. Useful if the -L option is being used on its own to just limit the transfer rate of a pipe.

-L RATE, --rate-limit RATE - Limit the transfer to a maximum of RATE bytes per second. A suffix of "k", "m", "g", or "t" can be added to denote kilobytes (*1024), megabytes, and so on.

the 100 is the number of bytes/second

P.S. great todler protector (Make sure you are not in Window mode ALT+CTRL+F2 works better that way)

EDIT

6
  • Why are you using less at all? Just redirect the file into pv.
    – Chris Down
    Commented Sep 24, 2011 at 13:11
  • oops an oversite, Usually i use man rsync i moded it for the question. Fixing..
    – whoami
    Commented Sep 24, 2011 at 13:15
  • Some googling suggests that pv isn't available by default on Mac (available through HomeBrew and Ports though).
    – Chris Down
    Commented Sep 24, 2011 at 13:22
  • It's not here on on my 10.6 installation... Commented Sep 24, 2011 at 17:08
  • Ive got it working on Ubuntu and Fedora, Ive never used macs so im not sure what the requirement for that be, but im sure you can make install it. Im not sure where one could download the package
    – whoami
    Commented Sep 25, 2011 at 13:22
4

This might seem like a strange question, but what would you use for creating the typical hollywood hacking scene?

Hollywood technodrama, should be enough inspiration for what you are looking for. It is available as a package for Linux, also on github, should be able to pick apart bits you like and package up something on OS X.

On a Debian/Ubuntu system you can install like so:

sudo apt-get install hollywood

Or if that doesn't work:

sudo apt-add-repository ppa:hollywood/ppa
sudo apt-get update
sudo apt-get install hollywood
3

from commandlinefu:

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

or

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

1

I understand that nmap is the standard hackish hollywood app, and here's a page from a guy who worked to make the Hollywood hacking on Tron more real.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .