• STATISTIQUES
  • Il y a eu un total de 0 membres et 50186 visiteurs sur le site dans les dernières 24h pour un total de 50 186 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [EN] Gekko
    Site de challenge présenter sous la forme d'une quête. Vous êtes un agent secret qui répond sous le nom...
    Challenges
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking
    [FR] Le top web
    Nous offrons une sélection la plus large possible de resources webmaster gratuites, hébergement gratuit...
    Webmaster
    [EN] osix
    Site de challenge qui utilise un système de level on chaque épreuve doit être réussie avant d'accédÃ...
    Challenges
    [EN] Framework Metasploit
    Le Framework Metasploit est un logiciel gratuit, open source de tests de pénétration développ&ea...
    Vulnérabilités

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!

    €



Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Php] Tentative de décryptage d'un xor
25-09-2012, 19h26 (Modification du message : 19-11-2012, 18h38 par InstinctHack.)
Message : #1
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
[Php] Tentative de décryptage d'un xor
Hello, j'ai essayé de coder une fonction en php permettant de décrypter un xor (donc sans connaître la clé). Il suffit juste de lui donner le ciphertext et la longueur de la clé. Elle marche pas a tout les coups, mais elle permet de révéler pas mal de plaintext Smile
La variable $abc contient les caractères les plus fréquents dans un texte normal ([a-zA-Z] etc), donc cette fonction permet d'essayer de retrouver la clé d'un texte 'normal' chiffré, pas un fichier ou quoi.
La fonction retourne un array avec le plaintext et la clé retrouvée.

Exemple avec le ciphertext suivant (en hexa ici) avec une clé de 4 : 0e005911314f451c780255012b0e5717780c581b3e09429b781f5100781a5e522000425c
La fonction retrouve :
Citation :Message déchiffré : VoIci Un mEssaGe cHiffRé pAr uN xoR.
Clé retrouvée : Xo\x07r
L'algo s'est juste trompé sur un caractère de la clé (le 3ème caractère est un 0, pas un 0x07; soit la clé "Xo0r"). Mais le plaintext ici est quand même facilement lisible Smile

Bref, voici la fonction :

Code :
function breakxor($c, $lenkey) {
    $c = str_split($c, $lenkey);
    $a = array();
    for($i = 0; $i < $lenkey; $i++, $a[] = '');
    for($i = 0; $i < $lenkey; $i++)
        for($j = 0; $j < count($c); $j++)
            $a[$i] .= $c[$j][$i];
    $plaintext = array();
    $abc = str_split("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzéèà .");
    $key = '';
    foreach($a as $col)
    {
        $p = array();
        for($k = 0; $k < 256; $k++) {
            $d = $col ^ str_repeat(chr($k), strlen($col));
            $count = 0;
            for($i = 0; $i < strlen($d); $i++)
                if(in_array($d[$i], $abc))
                    $count++;
            $p[$d . chr($k)] = $count;
        }
        $tmp = array_search(max($p), $p);
        $plaintext[] = substr($tmp, 0, -1);
        $key .= substr($tmp, -1);
    }
    $strout = '';
    for($j = 0; $j < strlen($plaintext[0]); $j++)
        for($i = 0; $i < $lenkey; $i++)
            $strout .= $plaintext[$i][$j];
    return array($strout, $key);
}
+1 (0) -1 (0) Répondre
26-09-2012, 09h16
Message : #2
ark Hors ligne
Psyckomodo!
*****



Messages : 1,033
Sujets : 48
Points: 317
Inscription : Sep 2011
RE: [PHP] Tentative de décryptage d'un xor
Sympa :)
Dommage que ce soit du php. xD Ca te derange pas que je la refasse en C ou python pour les gens qui veulent pas utiliser un serveur php...?
+1 (0) -1 (0) Répondre
26-09-2012, 19h06
Message : #3
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
RE: [PHP] Tentative de décryptage d'un xor
Non ça ne me dérange pas du tout ^^ Je viens de finir la version python, toujours mieux que le php :p
Code :
def breakxor(c, lenkey):
        c2, i = [], 0
        while i < len(c):
                c2.append(c[i:i + lenkey])
                i += lenkey
        a = ['' for i in xrange(lenkey)]
        for i in xrange(lenkey):
                for j in xrange(len(c2)):
                        a[i] += c2[j][i]
        plaintext = []
        abc = [l for l in 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzéèà .']
        key = ''
        for col in a:
                p = {}
                for k in xrange(256):
                        d = ''.join([chr(ord(l) ^ k) for l in col])
                        count = 0
                        for w in d:
                                try:
                                        tmp = abc.index(w)
                                        count += 1
                                except: pass
                        p[d + chr(k)] = count
                tmp = [k for k, v in p.iteritems() if v == max(p.values())][0]
                plaintext.append(tmp[0:-1])
                key += tmp[-1]
        strout = ''
        for j in xrange(len(plaintext[0])):
                for i in xrange(lenkey):
                        strout += plaintext[i][j]
        return (strout, key)

L'algo est très simple, mais il s'en sort plutôt bien sur de longs textes. Si vous avez des remarques à faire...
+1 (0) -1 (0) Répondre
26-09-2012, 22h32
Message : #4
ark Hors ligne
Psyckomodo!
*****



Messages : 1,033
Sujets : 48
Points: 317
Inscription : Sep 2011
RE: [PHP] Tentative de décryptage d'un xor
bon, bah si tu l'as déjà fait en python... :p Si j'ai le temps, un jour (je sais pas pourquoi j'ai l'impression de dire ça tout le temps... xD) je le referais en C Smile
+1 (0) -1 (0) Répondre
26-09-2012, 23h03
Message : #5
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
RE: [PHP] Tentative de décryptage d'un xor
Effectivement je pense avoir vue cette phrase 2 ou 3 fois dans les derniers jours hehe
+1 (0) -1 (0) Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut