Categories
Visualization

House Of Cards

Une boucle for avec Processing et un fichier CSV. Voici le résultat.

HouseOfCards

Cette rue vous dit quelque chose?

Il s’agit d’une scène, tournée en Floride, de la vidéo de House Of Cards de Radiohead et réalisée avec la technologie Lidar. Et figurez vous que c’est Toby Segaran, l’auteur de Beautiful Data qui a travaillé sur cette vidéo.

Lidar est souvent utilisé pour analyser des terrains. Par exemple, les robots envoyés sur Mars en sont généralement équipés. Il s’agit d’impulsions de lumière laser (laser beam), 2 500 impulsions de lumière par seconde (dans le proche infrarouge). La voiture de Google utilise (ou utilisait, je n’ai pas vérifié récemment) un Lidar. Ne vous gênez surtout pas pour m’en offrir un pour Noël.

Il est également possible d’utiliser Python avec Processing. Je viens d’adapter le programme original permettant de générer une animation du visage de Thom Yorke. Voyez le résultat.

HouseOfCards1

Et ci-dessous le code.

#
# 1. Download CSV points cloud data of Thom Yorke here:
#     https://code.google.com/p/radiohead/downloads/list
#     (original implementation)
# 2. Add Python mode to Processing
# 3. Load this file (or paste the contents of this file
#     into Processing and save to a name and location of your choosing)   
# 4. If it doesnt exist, create a folder called "data" 
#     inside the sketch folder.
# 5. Extract all animation CSV files into "data" folder (2101 files total)
# 6. Press play and enjoy.
#
 
frameCounter = 1
 
def setup():
    size(1024,768, OPENGL)
    strokeWeight(1)
 
def draw():
    global frameCounter
    # We'll use a black background
    background(0)
    # The data has 0,0,0 at the center and we want to draw that point at the center of our screen
    translate(width/2, height/2)
    # Lets adjust our center slightly
    translate(-150, -150)
    # Lets draw things bigger
    scale(2)
 
    raws = loadStrings(str(frameCounter)+".csv")
    for raw in raws:
        x, y, z, intensity = [float(elem) for elem in raw.split(',')]
        stroke(intensity*1.1, intensity*1.6, 200, 255)
        line(x,y,z,x+1,y+1,z+1)
 
    frameCounter += 1
 
    if frameCounter > 2101:
        exit()
        print "done"
Categories
Python Security Visualization

IP-Link v0.2

IP-Link version 0.2 est disponible. Cette version inclue la génération de courbes de Bézier, une mise à jour du site officiel et quelques optimisations (rafraîchissements).

Categories
Security Visualization

Analyse d’une connexion SSH avec IP-Link

Bezier curve

Le module expérimental de génération de courbes de Bézier fait maison est enfin intégré à IP-Link. L’image ci-dessus représente l’établissement d’une connexion SSH. Il y a donc les relations entre les ports de deux IP. Initialement IP-Link permettait uniquement d’établir des relations entre IP. On obtenait des oeuvres de ce style. Grâce aux communications entre les ports vous pourrez dorénavant avoir des figures bien plus artistiques (un scan de port):

Plus d’informations ici. Le code.

Comment analyser une connexion SSH avec IP-Link:

$ hg clone https://bitbucket.org/cedricbonhomme/ip-link/
$ cd ip-link/source
$ mkdir captures data

$ sudo tcpdump -p -i eth0 -s 0 -w captures/snif.pcap

$ python reloaded/pcap_to_sqlite.py -i captures/snif.pcap -o data/ip.sql

$ python reloaded/sqlite_to_object.py -i data/ip.sql -o data/ip.pyobj -r ip -p 192.168.1.13:87.98.168.93
DB connect
Query sent to the base :
        SELECT ip_src, ip_dst, port_src, port_dst FROM ip_link 
        WHERE (ip_src = "192.168.1.13" AND ip_dst = "87.98.168.93")
           OR (ip_src = "87.98.168.93" AND ip_dst = "192.168.1.13")
Serialization...

$ python reloaded/object_to_image.py -i data/ip.pyobj -o data/circle-4.png

Le fichier obtenu circle-4.png devrait ressembler à la première image de ce billet.