Comme pour le Petite frappe 1, j’ai flag salement. Je vais éditer rapidement avec une amélioration dans les prochains jours…

Énoncé

Lors de l’investigation d’un poste GNU/Linux, vous analysez un nouveau fichier qui semble être généré par un programme d’enregistrement de frappes de clavier. Retrouvez ce qui a bien pu être écrit par l’utilisateur de ce poste à l’aide de ce fichier !

Format du flag : FCSC{xxx}, où xxx est la chaîne que vous aurez trouvée.

Solution

Bon comme je disais en intro, c’est vraiment dégueulasse, mais j’ai récupéré chaque valeur en face d’un key press :

46 46 24 65 24 65 39 32 46 30 28 31 32 57 65 24 55 26 54 65 54 65 53 31 57 33 30 28 65 57 26 65 26 65 39 26 26 47 56 46 26 65 26 65 33 24 39 65 39 65 39 30 33 26 27 65 33 27 24 28 31 38 30 26 65 24 65 24 65 40 26 40 26 54 32 40 26 27 62 59 59 62 65 46 26 65 26 65 41 46 24 42 65 26 39 28 65 30 57 17 54 46 24 55 31 26 27 17 24 25 26 27 28 29 17 26 57 17 55 24 30 28 17 40 26 30 53

Puis j’ai comparé avec les keycode linux :

lla a solution avec c xinput ne e seemble e pas s super pratique a a dedecoder62mm62 le e flag est un_clavier_azerty_en_vaut_deux

Flag

Le flag est donc : FCSC{un_clavier_azerty_en_vaut_deux}

Edit

En fait, la solution propre était d’utiliser le script pour décoder présent sur : blog.rom1v.com :

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import re, sys
from subprocess import *

def get_keymap():
    keymap = {}
    table = Popen(['xmodmap', '-pke'], stdout=PIPE).stdout
    for line in table:
        m = re.match('keycode +(\d+) = (.+)', line.decode())
        if m and m.groups()[1]:
            keymap[m.groups()[0]] = m.groups()[1].split()[0]
    return keymap

if __name__ == '__main__':
    keymap = get_keymap();
    for line in sys.stdin:
        m = re.match('key press +(\d+)', line.decode())
        if m:
            keycode = m.groups()[0]
            if keycode in keymap:
                print keymap[keycode],
            else:
                print '?' + keycode,

En excécutant ce script sur le fichier text fournit :

[vixepti@microwave]$ cat petite_frappe_2.txt | python2.7 xinput-decoder.py 
l a space s o l u t i o n space a v e c space x i n p u t space n e space s e m b l e space p a s space s u p e r space p r a t i q u e space a space d e c o d e r Shift_R semicolon space l e space f l a g space e s t space u n underscore c l a v i e r underscore a z e r t y underscore e n underscore v a u t underscore d e u x