• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

src/H20-Sep-2017-1,308748

.gitignoreH A D20-Sep-201712 32

LICENSEH A D20-Sep-201734.3 KiB675553

MakefileH A D20-Sep-20171.4 KiB6043

NCURSES.mdH A D20-Sep-2017725 5235

README.mdH A D20-Sep-20174.9 KiB151109

nms.6H A D20-Sep-20171.4 KiB4036

no-more-secrets.specH A D20-Sep-20171.2 KiB4635

sneakers.6H A D20-Sep-2017817 2117

README.md

1![Version](https://img.shields.io/badge/Version-0.3.3-green.svg)
2
3No More Secrets
4===============
5
6This project provides a command line tool called `nms` that recreates the
7famous data decryption effect seen on screen in the 1992 hacker movie Sneakers.
8For reference, you can see this effect at 0:35 in [this movie clip](https://www.youtube.com/watch?v=F5bAa6gFvLs&t=35).
9
10This command works on piped data. Pipe any ASCII or UTF-8 text to `nms`,
11and it will apply the hollywood effect, initially showing encrypted data,
12then starting a decryption sequence to reveal the original plaintext characters.
13
14![Screenshot](http://www.brianbarto.info/extern/images/nms/nms.gif)
15
16Also included in this project is a program called `sneakers` that recreates
17what we see in the above movie clip. Note that this program requires the
18user to select one of the menu options before it terminates.
19
20![Screenshot](http://www.brianbarto.info/extern/images/nms/sneakers.gif)
21
22By default, this project has no dependencies, but it does rely on ANSI/VT100
23terminal escape sequences to recreate the effect. Most modern terminal
24programs support these sequences so this should not be an issue for most
25users. If yours does not, this project also provides a ncurses implementation
26which supports non-ANSI terminals, but at the expense of losing the inline
27functionality (ncurses will always clear the screen prior to displaying output).
28
29Table of Contents
30-----------------
31
321. [Download and Install](#download-and-install)
332. [Usage](#usage)
343. [The NMS Library](#the-nms-library)
354. [License](#license)
365. [Tips](#tips)
37
38Download and Install
39--------------------
40
41More and more unix/linux platforms are including this project in their
42package manager. You may wish to search your package manager to see if it
43is an installation option. If you install form a package manager, please
44check that you have the latest version (`nms -v`). If not, I suggest
45installing from source by following the instructions below.
46
47To install this project from source, you will need to have the tools `git`,
48`gcc`, and `make` to download and build it. Install them from your package
49manager if they are not already installed.
50
51Once you have the necessary tools installed, follow these instructions:
52
53#### Install:
54```
55$ git clone https://github.com/bartobri/no-more-secrets.git
56$ cd ./no-more-secrets
57$ make nms
58$ make sneakers             ## Optional
59$ sudo make install
60```
61
62#### Uninstall:
63
64```
65$ sudo make uninstall
66```
67
68#### Install with Ncurses Support
69
70If your terminal does not support ANSI/VT100 escape sequences, the effect
71may not render properly. This project provides a ncurses implementation
72for such cases. You will need the ncurses library installed. [Install this
73library from your package manager](NCURSES.md). Next, follow these instructions:
74
75```
76$ git clone https://github.com/bartobri/no-more-secrets.git
77$ cd ./no-more-secrets
78$ make nms-ncurses
79$ make sneakers-ncurses     ## Optional
80$ sudo make install
81```
82
83Usage
84-----
85
86`nms` works on piped data. Pipe any ASCII or UTF-8 characters to it and
87enjoy the magic. In the below examples, I use a simple directory listing.
88
89```
90$ ls -l | nms
91$ ls -l | nms -a           // Set auto-decrypt flag
92$ ls -l | nms -s           // Set flag to mask space characters
93$ ls -l | nms -f green     // Set foreground color to green
94$ ls -l | nms -c           // Clear screen
95$ nms -v                   // Display version
96```
97
98Note that by default, after the initial encrypted characters are displayed,
99`nms` will wait for the user to press a key before initiating the decryption
100sequence. This is how the it is depicted in the movie.
101
102#### Command Line Options
103
104`-a`
105
106Set the auto-decrypt flag. This will automatically start the
107decryption sequence without requiring a key press.
108
109`-s`
110
111Set a flag to mask space characters. This will only mask single blank space
112characters. Other space characters such as tabs and newlines will not be masked.
113
114`-f <color>`
115
116Set the foreground color of the decrypted text to the color
117specified. Valid options are white, yellow, black, magenta, blue, green,
118or red. This is blue by default.
119
120`-c`
121
122Clear the screen prior to printing any output. Specifically,
123it saves the state of the terminal (all current output), and restores it
124once the effect is comlpeted. Note that when using this option, `nms` requires
125the user to press a key before restoring the terminal.
126
127`-v`
128
129Display version info.
130
131The NMS Library
132---------------
133
134For those who would like to use this effect in their own projects, I have
135created a C library that provides simple interface and can easily be used
136for any program that runs from the command line.
137
138See [LibNMS](https://github.com/bartobri/libnms) for more info.
139
140License
141-------
142
143This program is free software; you can redistribute it and/or modify it
144under the terms of the GNU General Public License. See [LICENSE](LICENSE) for
145more details.
146
147Tips
148----
149
150[Tips are always appreciated!](https://github.com/bartobri/tips)
151