Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
a client-only layer of protection from the wiretap/sniff/IDS analysis
C++ Shell C
branch: devel

This branch is even with vecna:devel

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

SniffJoke: transparent TCP connection scrambler 0.5-devel

SniffJoke is an application for Linux that handle transparently your TCP connection, delaying, modifyng and inject fake packets inside your transmission, make them almost impossible to be correctly readed by a passive wiretapping technology (IDS or sniffer)


janus package: the nighly release
libevent installed (developed and tested with the 1.4.2 version)
cmake (minimum version required: 2.8)
gcc/g++ (4.2.4 version tested & developed)



TODO, for stabilize 0.5

implement/fix the new scrambling tech
verify libevent supports
Janus stabilization and portability supports
IP/TCP opt no more autotested
Strong use of cache
location self-recognition, location concept need to be linked with janus

SniffJoke directory explaination


documentation, txt, explanation and so on


the base configuration, every location will start from the 'generic' location


sniffjoke autotest scripts, the web service used for test sniffjoke reialability since a location, and (TODO) analysis and stats


the core of the project, C++ code that compiled give the sniffjoke binary


sniffjoke will be controlled by command line at the startup, or via commands given by a client. In this times, also a windows client is under development, and the client should be remote from Sj (that should be remote from janus)


the attack metodoloy to defeat sniffer will be improved, personally implemented and enable on requests. plugins contains the C++ classes compiled as shared library, loaded at the startup.


SniffJoke since the release 0.5 works only in conjunction with a Janus instance. Janus is a "traffic diverter" and should run in the same host where Sj is running, or in a different hosts.

Since the 0.5 release, SniffJoke aim to became fully portable, and Janus provide network handling (and portability issue)

How to compile/install

mkdir build
cd build
cmake ..
sudo -s
make install

How to use SniffJoke

you need to have installed Janus, stable release at

Suggested setup, for configure your network capabilities

sniffjoke-autotest -l name_of_your_location 

since you have runned the "autotest" in this network location (office, home, lab, etc...) you will invoke sniffjoke with:

sniffjoke --location name_of_your_location
sniffjokectl --stat
sniffjokectl --start
sniffjokectl --help

Link and info

SniffJoke man page:

SniffJoke location requirement:

SniffJoke concepts, goals:

CONFIG FILES installed in the 'generic' location


CACHE and LOGs that should be generated in a location


CONFIG FILES generated as location specific by sniffjoke-autotest


Installed files

This is the 'generic' (act as a default) location. Remind: every network location you're using (your office, your home, etc), track different cache. using a cache collected in a different location will cause the total corruption of the connections, and therfore before use sniffjoke you have to create a sperate directory for every network places you are using. In the future, this selection will be automatized using the mac address+IP of the default gateway in order to detect a different location.


sjA script, nothing useful for an user:


man pages:


the binaries:


the plugins:


the scripts:


External service

Sniffjoke in autotesting required to contact, this is not striclty required and if an user want to perform himself the test, will install the "pe.php" script, present in this package. and using the semi-secret options -s and -a in sniffjoke-autotest (you will avoid every contact w/ delirandom)

 Official sniffjoke page:

(old) academic researchs:

Hacker's old bread:

MacOSx 0.3 ports as kernel module:

Wireshark thread about Sj 0.3:

Italian music support Uochi Toki - Il ladro Uochi Toki - L'estetica

GPG public keys

X-2:~ X$ gpg --keyserver --recv-key C6765430
X-2:~ X$ gpg --fingerprint C6765430
pub   1024D/C6765430 2009-08-25 [expires: 2011-08-25]
      Key fingerprint = 341F 1A8C E2B4 F4F4 174D  7C21 B842 093D C676 5430
uid                  vecna <>
uid                  vecna <>
sub   3072g/E8157737 2009-08-25 [expires: 2011-08-25]

X-2:~ X$ gpg --keyserver --recv-key D9A950DE
X-2:~ X$ gpg --fingerprint D9A950DE
pub   1024D/D9A950DE 2009-05-10 [expires: 2014-05-09]
      Key fingerprint = C1ED 5C8F DB6A 1C74 A807  5695 91EC 9BB8 D9A9 50DE
uid                  Giovanni Pellerano <>
sub   4096g/50A7F150 2009-05-10 [expires: 2014-05-09]

X-2:~ X$ gpg --keyserver --recv-key 7D9E677D
X-2:~ X$ gpg --fingerprint 7D9E677D
pub   1024D/7D9E677D 2011-05-21
      Key fingerprint = F37C 2042 5052 27E2 2FD7  D511 947F 574B 7D9E 677D
uid                  SniffJoke project (
Something went wrong with that request. Please try again.