• STATISTIQUES
  • Il y a eu un total de 3 membres et 7488 visiteurs sur le site dans les dernières 24h pour un total de 7 491 personnes!


    1 membre s'est inscrit dans les dernières 24h!


    Membres: 2 608
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Hackfest
    Le Hackfest est un évènement de sécurité et de piratage informatique au Québec reg...
    Hacking
    [EN] Security Traps
    Site de challenge qui prétend être construit non pas dans le but de parfaire vos connaissances, mais plutôt dan...
    Challenges
    [FR] Microcontest
    Cryptographie: 7, Mathématiques: 8, Image Son Vidéo: 5, Intelligence artificielle: 3, Réseau: 2, Divers: 7, Phy...
    Challenges
    [EN] Rankk
    Site de challenge construit sur le principe d'une pyramide à 9 level. Level 1: 60,Level 2: 72,Level 3: 68,Lev...
    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
    [EN] Lost-chall
    Site de challenge présenté sous la forme de différente saison. Pour passer une saison vous devez avoir accumulÃ...
    Challenges
    [FR] Kalkulators
    Ce projet a plusieurs buts, le premier étant l’étude de toutes formes cryptographiques, le cot&ea...
    Cryptographie

  • 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
[Python] QuickHex
12-08-2014, 14h32
Message : #1
thxer Hors ligne
:(){ :|:& };:
*



Messages : 382
Sujets : 60
Points: 162
Inscription : Feb 2013
[Python] QuickHex
Coucou,
voilà j'ai dev un petit script qui reprends le .encode(hex) et .decode de python pour réaliser un convertisseur rapide, bien utile quand on reverse. Wink
Le but étant d'avoir à taper simplement la valeur hexa ou ASCII rien d'autre.
Les optimisations sont bienvenues Wink

Code PYTHON :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  Simple Quick HEX -> Simple Hex to  ASCII Converter
#  
#  Copyright 2014 thxer <thxer@thxer.com>
#  
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#  
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#  
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#  MA 02110-1301, USA.
#  
#  
class colors:
    BLUE = '\033[94m'
    GREEN = '\033[92m'
    ERR = '\033[91m'
    NORM = '\033[0m'
   
   
def menu() :           
        print  """ \r\n
==================================
       [ Choose a Mode ]
Mode :
-----------------
1) Hex -> ASCII     (h2a)
2) ASCII -> Hex     (a2h)
-----------------
q for quit
==================================
"""
+ colors.BLUE
        rep = raw_input("\r\nMode 1 or 2 ? > ")
        ok = ["1","2","q"]
        if rep in ok :
                if rep == ok[0] :
                        h2a()
                elif rep == ok[1] :
                        a2h()
                else :
                        exit(0)
               
        else:
                menu()

def h2a() :
        print colors.NORM
        q = 0
        while q != 1 :
                vl = raw_input("\r\nq for quit \r\nH2A > ")
                if vl == "q" :
                        q = 1
                else
                        try:
                                int(vl)
                        except ValueError:
                                print colors.ERR + "Erreur de saisie : Pour 0x41 , donnez 41"+ colors.NORM
                        else:
                                if (len(vl) % 2) == 0 :
                                        print colors.BLUE +"\"0x"+str(vl)+"\" "+ colors.NORM + "=" + colors.GREEN + " \""+str(vl).decode("hex")+"\"" + colors.NORM
                                else :
                                        print colors.ERR +"Erreur de saisie "+ colors.NORM
        exit(0)

def a2h() :
        print colors.NORM
        q = 0
        while q != 1 :
                vl = raw_input("\r\nq for quit \r\nH2A > ")
                if vl == "q" :
                        q = 1
                else :
                        print colors.BLUE +"\""+str(vl)+"\" "+ colors.NORM + "=" + colors.GREEN + " \"0x"+str(vl).encode("hex")+"\"" + colors.NORM
        exit(0)


def main():
        print colors.BLUE + """
                                         
 _____     _     _          _____        
|     |_ _|_|___| |_ _ _   |  |  |___ _ _
|  |  | | | |  _| '_| | |  |     | -_|_'_|
|__  _|___|_|___|_,_|_  |  |__|__|___|_,_|
   |__|             |___|  
                                                        by thxer.com """
+ colors.NORM
        menu()
        return 0

if __name__ == '__main__':
        main()


 
Thxer.com
Twitter Thxer_

Code BASH :
echo "JkZ Palx" | sed 'y/lPZaJxk/MG3@tEH/'




+1 (2) -1 (0) Répondre
12-08-2014, 14h40 (Modification du message : 12-08-2014, 14h41 par notfound.)
Message : #2
notfound Hors ligne
#!/usr/bin/env bash
*



Messages : 687
Sujets : 47
Points: 271
Inscription : Sep 2012
RE: [Python] QuickHex
Plop Thxer,

Merci pour le code. Juste quelques remarques personnelles :
- Moi j'aime pas quand il y a des menus, je trouve ça chiant. Devoir appuyer sur 1 puis mettre le truc etc, c'est relou. Perso je fonctionne plutot comme suit (par exemple) :
Code :
$ prog e <ascii>
$ prog d <hexa>

- Ensuite, ton programme ne fonctionne que dans un cas, cad le cas où l'hexa est de la forme xx yy zz (31 32 33). Quid des autres formes ? (ie \x31\x32\x33 ou 0x31 0x32 0x33 ou 0x313233 ou 0x31,0x32,0x33 etc ...)
+1 (2) -1 (0) Répondre
12-08-2014, 14h58 (Modification du message : 12-08-2014, 15h00 par gruik.)
Message : #3
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
RE: [Python] QuickHex
- dans la fonction h2a() tu fais un int(vl), du coup on ne peut pas rentrer des valeurs comme 0A, CC ou BF
- tant qu'à avoir une option pour quitter dans le menu, ben je pense que j'aurais wrappé menu dans un while true et remplacé les exit(0) par des return dans les sous-fonctions
- ou alors utiliser des options de la ligne de commande directement, -h ou -a par exemple, plutot qu'un programme interractif
- et bon.. toujours par souci de cohérence, je pense que j'aurais pas ajouté le 0x devant la chaine en hexa, de manière que l'output généré avec a2h() peut directement servir d'input à h2a() et inversément

voila voila, my 2 cts
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
(Nicolas Boileau, L'Art poétique)
+1 (1) -1 (0) Répondre
12-08-2014, 15h53
Message : #4
thxer Hors ligne
:(){ :|:&amp; };:
*



Messages : 382
Sujets : 60
Points: 162
Inscription : Feb 2013
RE: [Python] QuickHex
Cool pour le retour Smile , pour le
Code :
int(vl)
j'ai fait le bon boulet ! Smile
C'est que le menu est un peu inutile au final, de plus l'idée de faire du while pour le menu c'est plus propret.
Merci les gars je partagerai la V2 ! Smile
Thxer.com
Twitter Thxer_

Code BASH :
echo "JkZ Palx" | sed 'y/lPZaJxk/MG3@tEH/'




+1 (0) -1 (0) Répondre
13-08-2014, 10h45 (Modification du message : 13-08-2014, 10h46 par fr0g.)
Message : #5
fr0g Hors ligne
NTEuNDI2MzcsLTEuNzc4NDg4
*****



Messages : 348
Sujets : 22
Points: 56
Inscription : Aug 2011
RE: [Python] QuickHex
btw

Code PYTHON :

ok = {"1" : h2a , "2" : a2h , "q" : exit}
if rep in ok: ok[rep]()
else: menu()
 


ça 't'éviteras les if elif en série Smile


sinon :
(12-08-2014, 14h40)notfound a écrit :
Code :
$ prog e <ascii>
$ prog d <hexa>

+1
+1 (1) -1 (0) Répondre
13-08-2014, 19h06
Message : #6
thxer Hors ligne
:(){ :|:&amp; };:
*



Messages : 382
Sujets : 60
Points: 162
Inscription : Feb 2013
RE: [Python] QuickHex
Cool ! Smile
Thxer.com
Twitter Thxer_

Code BASH :
echo "JkZ Palx" | sed 'y/lPZaJxk/MG3@tEH/'




+1 (0) -1 (0) Répondre
15-08-2014, 03h43 (Modification du message : 15-08-2014, 20h27 par sakiir.)
Message : #7
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: [Python] QuickHex
Bon je me permet d'ajouter un truc du style ici , que je viens de faire , ca peut être utilise aussi !
Code C :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int ac,char **av)
{
  if(ac < 2)
    {
      printf("#ASCII-Digest\n");
      printf("Usage : %s <asciisring>\n", av[0]); //edit
      exit(1);
    }
 
  char input[1024];
  int i = 0;
  int inputLen = strlen(av[1]); //edit

  strncpy(input, av[1], 1023);
 

  //Digest 1 41:41:41:41:41 ...
  printf("[^] Digest 1 : ");
  while(input[i] != '\0')
    {
      printf("%x",input[i]);
      if(i == inputLen-1)
        {
          break;
        }
      printf(":");
      i++;
    }
  printf("\n");

  //Digest 2 \x41\x41\x41\x41\x41 ...
  i = 0;
  printf("[^] Digest 2 : ");
  while(input[i] != '\0')
    {
      printf("\\x");
      printf("%x",input[i]);
      i++;
    }
  printf("\n");

  //Digest 3 4141414141 ...
  i = 0;
  printf("[^] Digest 3 : ");
  while(input[i] != '\0')
    {
      printf("%x", input[i]);
      i++;
    }
  printf("\n");  
 
 

}

 
+1 (2) -1 (1) Répondre
15-08-2014, 11h01
Message : #8
thxer Hors ligne
:(){ :|:&amp; };:
*



Messages : 382
Sujets : 60
Points: 162
Inscription : Feb 2013
RE: [Python] QuickHex
Merci sakiir
Thxer.com
Twitter Thxer_

Code BASH :
echo "JkZ Palx" | sed 'y/lPZaJxk/MG3@tEH/'




+1 (0) -1 (0) Répondre
15-08-2014, 11h41
Message : #9
b0fh Hors ligne
Membre actif
*



Messages : 210
Sujets : 17
Points: 309
Inscription : Jul 2012
RE: [Python] QuickHex
Code C :
printf("Usage : %s <asciisring>\n");

devrait être
Code C :
printf("Usage : %s <asciisring>\n", av[0]);


et

Code C :
int inputLen = strlen(input);

devrait être:
Code C :
int inputLen = strlen(av[1]);
+1 (1) -1 (0) Répondre
15-08-2014, 20h26
Message : #10
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: [Python] QuickHex
ahh merde ouai je l'ai pas compilé le code ^^
+1 (0) -1 (1) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [Python]Situer mon niveau. InforMods 19 916 10-11-2016, 00h03
Dernier message: ZeR0-@bSoLu
  [PYTHON] un bot IRC basique darcosion 1 187 13-06-2016, 20h40
Dernier message: Yttrium
  [python] ANBU ::: TCP Session Hunter St0rn 2 233 25-02-2016, 18h45
Dernier message: otherflow
  [Python] Une autre façon de gérer les Virtualenv et Packages thxer 2 132 18-01-2016, 12h06
Dernier message: thxer
  [Python] rot script ark 9 437 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 302 03-03-2015, 10h55
Dernier message: ark
  [python] Un décorateur pour inventorier les objets b0fh 1 199 04-12-2014, 17h50
Dernier message: thxer
  [python] UPnP Scanner St0rn 2 182 29-10-2014, 14h50
Dernier message: St0rn
  [python] Buffer Overflow : EBP et EIP St0rn 0 142 25-10-2014, 12h58
Dernier message: St0rn
  Python : QuickBIn octarin 1 132 13-08-2014, 19h05
Dernier message: thxer

Atteindre :


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