Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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...

share|improve this question
20  
Take any package, and do a ./configure && make –  Alex B Sep 24 '11 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 Sep 24 '11 at 12:45
6  
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 Sep 25 '11 at 20:28
1  
Install (if possible) FSN or FSV. "It's a Unix system. I know this!" –  DanBeale Sep 25 '11 at 20:31
    
If nobody ever suggested, you can try running cmatrix in a terminal window. –  bollovan Sep 28 '11 at 18:34
add comment

8 Answers 8

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
share|improve this answer
2  
Adding some $RANDOM delays in the timings might be fun too :-) –  Stéphane Gimenez Sep 24 '11 at 16:17
1  
Adding modem line noise would be even better. This may become the most edited post on UL. –  Tim Post Sep 24 '11 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 Sep 25 '11 at 11:51
1  
HAHAHAH I just ran this with dmesg and freaking laughed! Please keep updating this, it is epic. –  MaxMackie Sep 27 '11 at 12:06
2  
This is halarious. Definitely a winner for "hacky" output... –  rmckenzie Sep 27 '11 at 18:03
show 5 more comments

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

share|improve this answer
    
Why are you using less at all? Just redirect the file into pv. –  Chris Down Sep 24 '11 at 13:11
    
oops an oversite, Usually i use man rsync i moded it for the question. Fixing.. –  whoami Sep 24 '11 at 13:15
    
Some googling suggests that pv isn't available by default on Mac (available through HomeBrew and Ports though). –  Chris Down Sep 24 '11 at 13:22
    
It's not here on on my 10.6 installation... –  Server Horror Sep 24 '11 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 Sep 25 '11 at 13:22
show 1 more comment
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 ;)

share|improve this answer
3  
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 Sep 26 '11 at 21:24
    
+1000 Now that's a great answer! –  Herman Torjussen Feb 29 '12 at 23:33
add comment

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.

share|improve this answer
add comment
  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.
share|improve this answer
add comment

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

share|improve this answer
add comment

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

share|improve this answer
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.