[Delphi] DH Server Manager 0.3

Iniciado por BigBear, Abril 24, 2015, 12:27:36 PM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.

Un simple programa en Delphi para modificar ejecutables con las siguientes opciones :

  • File Pumper
  • Extension Spoofer
  • Icon Changer

    Una imagen :



    Código: delphi

    // DH Server Manager 0.3
    // (C) Doddy Hackman 2015
    // Based on : http://www.nerdprogrammer.in/2014/05/the-rats-crew-aio.html

    unit dhserverman;

    interface

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

    type
      TForm1 = class(TForm)
        PageControl1: TPageControl;
        TabSheet1: TTabSheet;
        TabSheet2: TTabSheet;
        TabSheet3: TTabSheet;
        GroupBox1: TGroupBox;
        ruta_archivo: TEdit;
        Button1: TButton;
        GroupBox2: TGroupBox;
        Button2: TButton;
        StatusBar1: TStatusBar;
        TabSheet5: TTabSheet;
        GroupBox3: TGroupBox;
        GroupBox4: TGroupBox;
        count: TEdit;
        UpDown1: TUpDown;
        tipo_cantidad: TComboBox;
        GroupBox5: TGroupBox;
        ruta_icono: TEdit;
        Button3: TButton;
        GroupBox6: TGroupBox;
        Image1: TImage;
        OpenDialog1: TOpenDialog;
        OpenDialog2: TOpenDialog;
        GroupBox7: TGroupBox;
        usefilepumper: TCheckBox;
        iconchanger: TCheckBox;
        extensiones: TComboBox;
        selectextension: TCheckBox;
        GroupBox8: TGroupBox;
        mi_extension: TCheckBox;
        esta_extension: TEdit;
        extensionchanger: TCheckBox;
        TabSheet4: TTabSheet;
        Image2: TImage;
        GroupBox9: TGroupBox;
        Image3: TImage;
        Memo1: TMemo;
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}
    // Functions

    procedure file_pumper(archivo: string; cantidad: LongWord);
    var
      arraycantidad: array of Byte;
      abriendo: TFileStream;
    begin
      abriendo := TFileStream.Create(archivo, fmOpenReadWrite);
      SetLength(arraycantidad, cantidad);
      ZeroMemory(@arraycantidad[1], cantidad);
      abriendo.Seek(0, soFromEnd);
      abriendo.Write(arraycantidad[0], High(arraycantidad));
      abriendo.Free;
    end;

    procedure extension_changer(archivo: string; extension: string);
    var
      nombre: string;
    begin
      nombre := ExtractFileName(archivo);
      nombre := StringReplace(nombre, ExtractFileExt(nombre), '',
        [rfReplaceAll, rfIgnoreCase]);
      nombre := nombre + char(8238) + ReverseString('.' + extension) + '.exe';
      MoveFile(PChar(archivo), PChar(ExtractFilePath(archivo) + nombre));
    end;

    //

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

    procedure TForm1.Button2Click(Sender: TObject);
    var
      change: dword;
      valor: string;
      tipocantidad: string;
      tipoextension: string;
      extensionacambiar: string;
    begin

      if not(FileExists(ruta_archivo.Text)) then
      begin
        ShowMessage('Select File to change');
      end
      else
      begin

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

        if (usefilepumper.Checked) then
        begin
          tipocantidad := tipo_cantidad.Items[tipo_cantidad.ItemIndex];
          if (tipocantidad = 'Byte') then
          begin
            file_pumper(ruta_archivo.Text, StrToInt(count.Text) * 8);
          end;
          if (tipocantidad = 'KiloByte') then
          begin
            file_pumper(ruta_archivo.Text, StrToInt(count.Text) * 1024);
          end;
          if (tipocantidad = 'MegaByte') then
          begin
            file_pumper(ruta_archivo.Text, StrToInt(count.Text) * 1048576);
          end;
          if (tipocantidad = 'GigaByte') then
          begin
            file_pumper(ruta_archivo.Text, StrToInt(count.Text) * 1073741824);
          end;
          if (tipocantidad = 'TeraByte') then
          begin
            file_pumper(ruta_archivo.Text, StrToInt(count.Text) * 1099511627776);
          end;
        end;

        if (iconchanger.Checked) then
        begin
          try
            begin
              change := BeginUpdateResourceW
                (PWideChar(wideString(ruta_archivo.Text)), false);
              LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
                PWideChar(wideString(ruta_icono.Text)));
              EndUpdateResourceW(change, false);
            end;
          except
            begin
              //
            end;
          end;
        end;

        if (extensionchanger.Checked) then
        begin
          if not(selectextension.Checked and mi_extension.Checked) then
          begin
            if (selectextension.Checked) then
            begin
              extensionacambiar := extensiones.Items[extensiones.ItemIndex];
              extension_changer(ruta_archivo.Text, extensionacambiar);
            end;
            if (mi_extension.Checked) then
            begin
              extension_changer(ruta_archivo.Text, esta_extension.Text);
            end;
          end;
        end;

        StatusBar1.Panels[0].Text := '[+] Done';
        Form1.StatusBar1.Update;
      end;

    end;

    procedure TForm1.Button3Click(Sender: TObject);
    begin
      if OpenDialog2.Execute then
      begin
        ruta_icono.Text := OpenDialog2.FileName;
        Image1.Picture.LoadFromFile(OpenDialog2.FileName);
      end;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      OpenDialog1.InitialDir := GetCurrentDir;
      OpenDialog2.InitialDir := GetCurrentDir;
      OpenDialog2.Filter := 'Icons|*.ico|';
    end;

    end.

    // The End ?


    Un video con ejemplos de uso :



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