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


  • ANNUAIRE
  • [EN] hax.tor
    50 level de challenges mélangés
    Challenges
    [FR] Infomirmo
    Challenge présenté sous la forme de 6 niveaux de difficultés diverses et variées avec chacun plusieurs chall...
    Challenges
    [EN] Bright Shadows
    JavaScript: 13, Exploit: 27, Crypto: 69, CrackIt: 52, Stegano: 67, Flash: 3, Programming: 16, Java-Applet: 10, Logic: 20...
    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
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [FR] Le top web
    Nous offrons une sélection la plus large possible de resources webmaster gratuites, hébergement gratuit...
    Webmaster
    [FR] Root-Me
    Notre équipe se base sur un constat : à l'heure actuelle ou l'information tend à devenir...
    Hacking

  • 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


Messages dans ce sujet
[Php] Tentative de décryptage d'un xor - par Luxerails - 25-09-2012, 19h26

Atteindre :


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