2017-03-08 14:25:08 -08:00
|
|
|
![Version](https://img.shields.io/badge/Version-0.3.3-green.svg)
|
2017-01-13 12:17:07 -08:00
|
|
|
|
2016-04-21 13:59:08 -07:00
|
|
|
No More Secrets
|
|
|
|
===============
|
|
|
|
|
2017-01-11 17:37:38 -08:00
|
|
|
This project provides a command line tool called `nms` that recreates the
|
|
|
|
famous data decryption effect seen on screen in the 1992 hacker movie Sneakers.
|
2017-01-13 12:55:43 -08:00
|
|
|
For reference, you can see this effect at 0:35 in [this movie clip](https://www.youtube.com/watch?v=F5bAa6gFvLs&t=35).
|
2016-04-25 10:40:19 -07:00
|
|
|
|
2017-01-11 17:37:38 -08:00
|
|
|
This command works on piped data. Pipe any ASCII or UTF-8 text to `nms`,
|
2017-01-13 12:55:43 -08:00
|
|
|
and it will apply the hollywood effect, initially showing encrypted data,
|
|
|
|
then starting a decryption sequence to reveal the original plaintext characters.
|
2016-04-25 11:14:28 -07:00
|
|
|
|
2017-01-10 16:24:10 -08:00
|
|
|
![Screenshot](http://www.brianbarto.info/extern/images/nms/nms.gif)
|
2016-04-25 11:14:28 -07:00
|
|
|
|
2017-01-11 17:37:38 -08:00
|
|
|
Also included in this project is a program called `sneakers` that recreates
|
|
|
|
what we see in the above movie clip. Note that this program requires the
|
|
|
|
user to select one of the menu options before it terminates.
|
2016-04-25 10:41:19 -07:00
|
|
|
|
2017-01-10 16:24:10 -08:00
|
|
|
![Screenshot](http://www.brianbarto.info/extern/images/nms/sneakers.gif)
|
2016-04-21 13:59:08 -07:00
|
|
|
|
2017-01-20 11:59:02 -08:00
|
|
|
By default, this project has no dependencies, but it does rely on ANSI/VT100
|
|
|
|
terminal escape sequences to recreate the effect. Most modern terminal
|
|
|
|
programs support these sequences so this should not be an issue for most
|
|
|
|
users. If yours does not, this project also provides a ncurses implementation
|
|
|
|
which supports non-ANSI terminals, but at the expense of losing the inline
|
|
|
|
functionality (ncurses will always clear the screen prior to displaying output).
|
2017-01-11 18:13:04 -08:00
|
|
|
|
2017-01-11 17:37:38 -08:00
|
|
|
Table of Contents
|
|
|
|
-----------------
|
2016-04-22 13:25:21 -07:00
|
|
|
|
2017-01-11 17:37:38 -08:00
|
|
|
1. [Download and Install](#download-and-install)
|
|
|
|
2. [Usage](#usage)
|
2017-01-20 12:17:59 -08:00
|
|
|
3. [The NMS Library](#the-nms-library)
|
|
|
|
4. [License](#license)
|
2017-05-30 07:52:16 -07:00
|
|
|
5. [Tips](#tips)
|
2016-04-21 13:59:08 -07:00
|
|
|
|
2017-01-11 17:37:38 -08:00
|
|
|
Download and Install
|
|
|
|
--------------------
|
2016-04-21 13:59:08 -07:00
|
|
|
|
2017-01-13 12:55:43 -08:00
|
|
|
More and more unix/linux platforms are including this project in their
|
|
|
|
package manager. You may wish to search your package manager to see if it
|
|
|
|
is an installation option. If you install form a package manager, please
|
|
|
|
check that you have the latest version (`nms -v`). If not, I suggest
|
2017-01-20 11:59:02 -08:00
|
|
|
installing from source by following the instructions below.
|
2017-01-11 18:00:47 -08:00
|
|
|
|
2017-01-12 13:59:56 -08:00
|
|
|
To install this project from source, you will need to have the tools `git`,
|
|
|
|
`gcc`, and `make` to download and build it. Install them from your package
|
2017-01-13 12:55:43 -08:00
|
|
|
manager if they are not already installed.
|
2016-04-21 13:59:08 -07:00
|
|
|
|
2017-01-12 13:59:56 -08:00
|
|
|
Once you have the necessary tools installed, follow these instructions:
|
2017-01-11 18:00:47 -08:00
|
|
|
|
2017-01-12 13:59:56 -08:00
|
|
|
#### Install:
|
2017-01-11 18:00:47 -08:00
|
|
|
```
|
2017-04-22 11:58:32 -07:00
|
|
|
$ git clone https://github.com/bartobri/no-more-secrets.git
|
|
|
|
$ cd ./no-more-secrets
|
|
|
|
$ make nms
|
|
|
|
$ make sneakers ## Optional
|
|
|
|
$ sudo make install
|
2017-01-11 18:00:47 -08:00
|
|
|
```
|
|
|
|
|
2017-01-12 13:59:56 -08:00
|
|
|
#### Uninstall:
|
2017-01-11 18:00:47 -08:00
|
|
|
|
|
|
|
```
|
|
|
|
$ sudo make uninstall
|
|
|
|
```
|
2016-04-26 11:22:34 -07:00
|
|
|
|
2017-01-20 11:59:02 -08:00
|
|
|
#### Install with Ncurses Support
|
|
|
|
|
|
|
|
If your terminal does not support ANSI/VT100 escape sequences, the effect
|
|
|
|
may not render properly. This project provides a ncurses implementation
|
2017-01-21 14:06:03 -08:00
|
|
|
for such cases. You will need the ncurses library installed. [Install this
|
|
|
|
library from your package manager](NCURSES.md). Next, follow these instructions:
|
2017-01-20 11:59:02 -08:00
|
|
|
|
|
|
|
```
|
2017-04-22 11:58:32 -07:00
|
|
|
$ git clone https://github.com/bartobri/no-more-secrets.git
|
|
|
|
$ cd ./no-more-secrets
|
|
|
|
$ make nms-ncurses
|
|
|
|
$ make sneakers-ncurses ## Optional
|
|
|
|
$ sudo make install
|
2017-01-20 11:59:02 -08:00
|
|
|
```
|
|
|
|
|
2017-01-11 17:37:38 -08:00
|
|
|
Usage
|
|
|
|
-----
|
2016-04-25 14:40:09 -07:00
|
|
|
|
2017-01-13 09:29:53 -08:00
|
|
|
`nms` works on piped data. Pipe any ASCII or UTF-8 characters to it and
|
|
|
|
enjoy the magic. In the below examples, I use a simple directory listing.
|
2016-04-25 13:45:52 -07:00
|
|
|
|
|
|
|
```
|
2017-04-22 11:58:32 -07:00
|
|
|
$ ls -l | nms
|
|
|
|
$ ls -l | nms -a // Set auto-decrypt flag
|
|
|
|
$ ls -l | nms -s // Set flag to mask space characters
|
|
|
|
$ ls -l | nms -f green // Set foreground color to green
|
|
|
|
$ ls -l | nms -c // Clear screen
|
|
|
|
$ nms -v // Display version
|
2016-04-25 14:18:43 -07:00
|
|
|
```
|
2016-09-18 10:37:15 -07:00
|
|
|
|
2017-01-13 09:29:53 -08:00
|
|
|
Note that by default, after the initial encrypted characters are displayed,
|
|
|
|
`nms` will wait for the user to press a key before initiating the decryption
|
2017-01-21 06:30:56 -08:00
|
|
|
sequence. This is how the it is depicted in the movie.
|
2017-01-13 09:29:53 -08:00
|
|
|
|
2017-01-11 17:37:38 -08:00
|
|
|
#### Command Line Options
|
2016-09-18 10:37:15 -07:00
|
|
|
|
2017-01-11 17:37:38 -08:00
|
|
|
`-a`
|
2016-04-26 08:40:42 -07:00
|
|
|
|
2017-01-13 09:29:53 -08:00
|
|
|
Set the auto-decrypt flag. This will automatically start the
|
|
|
|
decryption sequence without requiring a key press.
|
2016-04-25 15:10:43 -07:00
|
|
|
|
2017-04-22 11:51:33 -07:00
|
|
|
`-s`
|
|
|
|
|
|
|
|
Set a flag to mask space characters. This will only mask single blank space
|
|
|
|
characters. Other space characters such as tabs and newlines will not be masked.
|
|
|
|
|
2017-01-16 13:28:12 -08:00
|
|
|
`-f <color>`
|
2016-09-18 10:37:15 -07:00
|
|
|
|
2017-01-13 09:29:53 -08:00
|
|
|
Set the foreground color of the decrypted text to the color
|
2017-01-11 17:37:38 -08:00
|
|
|
specified. Valid options are white, yellow, black, magenta, blue, green,
|
|
|
|
or red. This is blue by default.
|
2016-04-25 13:45:52 -07:00
|
|
|
|
2017-01-12 13:38:24 -08:00
|
|
|
`-c`
|
|
|
|
|
2017-01-13 09:29:53 -08:00
|
|
|
Clear the screen prior to printing any output. Specifically,
|
2017-01-12 13:38:24 -08:00
|
|
|
it saves the state of the terminal (all current output), and restores it
|
|
|
|
once the effect is comlpeted. Note that when using this option, `nms` requires
|
|
|
|
the user to press a key before restoring the terminal.
|
|
|
|
|
2017-01-12 13:59:56 -08:00
|
|
|
`-v`
|
|
|
|
|
|
|
|
Display version info.
|
|
|
|
|
2017-01-20 12:17:59 -08:00
|
|
|
The NMS Library
|
|
|
|
---------------
|
|
|
|
|
|
|
|
For those who would like to use this effect in their own projects, I have
|
|
|
|
created a C library that provides simple interface and can easily be used
|
2017-01-20 12:19:46 -08:00
|
|
|
for any program that runs from the command line.
|
2017-01-20 12:17:59 -08:00
|
|
|
|
|
|
|
See [LibNMS](https://github.com/bartobri/libnms) for more info.
|
|
|
|
|
2016-04-22 13:25:21 -07:00
|
|
|
License
|
|
|
|
-------
|
|
|
|
|
2017-01-11 17:37:38 -08:00
|
|
|
This program is free software; you can redistribute it and/or modify it
|
2017-04-01 09:23:12 -07:00
|
|
|
under the terms of the GNU General Public License. See [LICENSE](LICENSE) for
|
2017-01-11 17:37:38 -08:00
|
|
|
more details.
|
2017-05-30 07:52:16 -07:00
|
|
|
|
|
|
|
Tips
|
|
|
|
----
|
|
|
|
|
|
|
|
If you've found any of my open source projects helpful to the extent that
|
|
|
|
you'd like to repay me in some way, below are a couple methods you can use to
|
|
|
|
tip me for my work. I work on open source software full time, and I do not
|
|
|
|
get paid for it. Any tips are greatly appreciated.
|
|
|
|
|
|
|
|
#### PayPal
|
|
|
|
Send tips to bartobrian@gmail.com or [follow this link](https://www.paypal.me/BrianBarto).
|
|
|
|
|
|
|
|
#### Bitcoin
|
|
|
|
Tip address: 19fy9CsJvN39f3dV6MJy6FfvggP5zunh5j
|