Outils d'utilisateurs

Outils du Site


hackingweek_2014:crypto:crypto3

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

hackingweek_2014:crypto:crypto3 [2014/03/04 19:18]
ganapati
hackingweek_2014:crypto:crypto3 [2017/04/09 15:33] (Version actuelle)
Ligne 8: Ligne 8:
 L'image est un png, donc sans compression, de plus, lena.png est souvent utilisée comme exemple en stéganographie pour le lsb. L'image est un png, donc sans compression, de plus, lena.png est souvent utilisée comme exemple en stéganographie pour le lsb.
  
-On commence par rechercher l'image originale en uploadant sur google image l'image (1 seul résultat) :+On commence par rechercher l'image originale en l'uploadant sur google image (1 seul résultat) :
  
 {{:hackingweek_2014:crypto:lenaoriginal.png?200|}} {{:hackingweek_2014:crypto:lenaoriginal.png?200|}}
Ligne 29: Ligne 29:
   * etc   * etc
  
-petit script qui récupère les 4 bits de poids faible de chaque couleur :+petit script qui récupère les 4 bits de poids faible de chaque couleur et les rassemble 2 par 2 :
  
 <code Python> <code Python>
Ligne 35: Ligne 35:
 # encoding: utf-8 # encoding: utf-8
  
-import os 
 import Image import Image
 import argparse import argparse
Ligne 105: Ligne 104:
  Wrong input  Wrong input
  
-Il faut reverse l'ELF pour savoir quel est l'entrée attendue+Il faut reverse l'ELF pour savoir quel est l'entrée attendue
 On remarque dans la string suivante dans le bin :  On remarque dans la string suivante dans le bin : 
  ############ #@#   # ## #   # # ## ##### # ##         ## ##### #### #   #   ## # # ### ##   #   # ## ### #$# ############  ############ #@#   # ## #   # # ## ##### # ##         ## ##### #### #   #   ## # # ### ##   #   # ## ### #$# ############
  
-en découpant la chaine tous les 11 chars (premiere série de #)on vois une sorte de labyrinthe. on devine que le @ correspond au joueur et le $ à l'arrivée.+Le binaire place un curseur au niveau du '@', et la victoire est assurée si le curseur atteint le '$'. L'entrée passée permet de se déplacer dans la chaine. Selon le caractère rencontréle curseur est déplacé d'un offset particulier : 
 +  * caractère 'n' : offset -12 
 +  * caractère 's' : offset +12 
 +  * caractère 'e' : offset +1 
 +  * caractère 'w' : offset -1 
 + 
 +Tout autre caractère fait sortir du programmeDe même, on ne continue que si le curseur se trouve sur un ' ', un '#' renvoyant à la fin du programme. 
 + 
 +On devine alors (d'après les nsew => North / South / East / West, et les offsets de déplacement) que l'on est en présence d'un labyrinthe de 11x11 cases.
  
 (j'ai remplacé les # par des blocks pour la lisibilité) (j'ai remplacé les # par des blocks pour la lisibilité)
Ligne 125: Ligne 133:
  ███████████  ███████████
  
-après avoir visualisé le chemin, on peut essayer de voir sous quel format entrer la réponse : +après avoir visualisé le chemin, on peut entrer la réponse : 
- * down right right... +<code> 
- * drr... (premieres lettres du précédent concat) +seeneessswwwwwwsssseenneessees 
- * south east east... +</code>
- * see... (premieres lettres du précédent concat) +
- +
-le 4e test ouvre un shell /bin/sh, c'est le flag+
hackingweek_2014/crypto/crypto3.1393957137.txt.gz · Dernière modification: 2017/04/09 15:33 (modification externe)