[Perl] HexNow 0.1

Iniciado por BigBear, Marzo 09, 2013, 01:42:58 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Un simple script para convertir el codigo de un archivo en hexadecimal , muy util para un proyecto que tengo en mente.
El script es una traduccion a perl del famoso programa No tienes permitido ver los links. Registrarse o Entrar a mi cuenta hecho por hecky neobits.

El codigo :

Código: perl

#!usr/bin/perl
#HexNow 0.1
#Coded By Doddy H
#Script based in getbytes.py made by hecky neobits
#Thanks to hecky neobits & explorer(perlenespanol)

use Getopt::Long;
use File::Basename;
use Cwd;

chdir( getcwd() );

GetOptions(
    "hex=s"      => \$hex,
    "each=s"     => \$hexeach,
    "output=i"   => \$output,
    "savefile=s" => \$savefile
);

head();

if ($hex) {

    my $code_final;

    if ($hexeach) {

        my $st = unpack "H*", getcontent($hex);
        my $reco;

        for ( my $num = 0 ; $num <= length($st) - 1 ; $num += $hexeach ) {
            my $final = substr $st, $num, $hexeach;
            $reco .= $final . "\n";
        }

        $code_final = $reco;

    }
    else {
        $code_final = unpack "H*", getcontent($hex);
    }

    if ( $output eq "1" ) {

        print "\n\n[+] Encoding ....\n";

        print "\n[Start]\n\n";
        print $code_final;
        print "\n\n[End]\n";

    }

    if ($savefile) {
        savefile( $savefile, $code_final );
        print "\n[+] Result generated in : $savefile\n";
    }
    else {
        my $div = basename($hex);
        if ( $div =~ /(.*)\.(.*)/ ) {
            my $listo = $1 . "_hex.txt";
            savefile( $listo, $code_final );
            print "\n[+] Result generated in : $listo\n";
        }
    }

    copyright();

}

sub head {
    print qq(

             _____
      ,----/,--.   `.
     /    '. `-'     \         Program Name : HexNow
     | ____ \      '`|_        Version : 0.1
     \'.--._/` _     \ '.       Author : Doddy H
          /'-|/ \|`\|-`  \       Script based in getbytes.py made by hecky neobits 
         /   /       \   |     Thanks to hecky neobits
         |  ;    '`  |  .'
         '. |;;      ;  /
          \ \ ;     / ,'        Examples :
           ;--,   .,--,
        __||=|=|./|=|=||___   perl hexnow.pl -hex imagen.jpg
          `'-'-'  `-'-'`      perl hexnow.pl -hex imagen.jpg -each 5
      ______________________  perl hexnow.pl -hex imagen.jpg -output 1
          /'/ /  \  \ \          perl hexnow.pl -hex imagen.jpg -savefile test.txt
         / '.';  ; \ ' \
        '-/   | ; | ; \-'
          \_| |   | |_/        The End ?
            `-'\_/`-'

);
}

sub copyright {
    print "\n(C) Doddy Hackman 2013\n";
    exit(1);
}

sub getcontent {

    open( FILE, $_[0] );
    binmode(FILE);
    my @lines = <FILE>;
    close FILE;

    $code = join "", @lines;
    return $code;

}

sub savefile {

    if ( -f $_[0] ) {
        unlink( $_[0] );
    }

    open( SAVE, ">>" . $_[0] );
    print SAVE $_[1];
    close SAVE;
}

#The End ?

Marzo 09, 2013, 05:07:33 PM #1 Ultima modificación: Marzo 09, 2013, 05:09:08 PM por neobits
Probado...muy bueno   ;D

Gracias por la mención...Aunque ese código lo hice cuando estaba aprendiendo python...Ahora estoy con ruby y lo haria con ruby...pero la verdad para mi me funciona lo que es mas fácil, rápido y asequible...Es por ello que ahora lo hago siempre con bash,,,

Obtener todos los bytes en una sola línea:

Código: php
$xxd -p archivo | tr -d "\n"


Obtener los bytes, cada n bytes:

Código: php
$xxd -p -c n archivo


Donde n es cada cuantos bytes queremos por columna....Ej de cada 5 bytes:
Código: php
$xxd -p -c 5 archivo


De nuevo gracias por la mención...Pronto en mi blog personal en la siguiente entrada que saldra pronto, usare justamente xxd y los separare cada byte (de una manera diferente, a las aqui mostradas) en una linea para meterlo en un arreglo...Todo en bash...  8) ::)

Saludos ;)

ja , no sabia que estabas registrado en este foro , en 2 semanas voy a hacer un manual sobre como hacer un joiner en perl como vos hiciste en python.

Ese hecky deberia hacer un libro de "python desde cero hasta forensics" pero se cotiza

Citarja , no sabia que estabas registrado en este foro , en 2 semanas voy a hacer un manual sobre como hacer un joiner en perl como vos hiciste en python.

Doddy :P para que vea que tengo: "Amazing skills tracking in the web" :P Bueno no, solo me avisaron por ahi que viera esto XD....Lo importante no es el lenguaje, sino la idea...ese articulo lo escribi para mostrar lo sencillo que es, ocultar malware de una manera muy burda...y claro, por que pablo y juanan de flu-project me lo pidieron XD

CitarEse hecky deberia hacer un libro de "python desde cero hasta forensics" pero se cotiza

Jaja para nada, no se python... en serio, solo hice lo básico, y tampoco forense...ni me cotizo xD