用内存流 文件流 资源生成客户端(Delphi开源)
生活随笔
收集整理的這篇文章主要介紹了
用内存流 文件流 资源生成客户端(Delphi开源)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正文:
很多木馬生成器就是用的內存流和文件流生成客戶端的,
廢話不多說了,代碼如下:
unit Main;interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Inifiles;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
msgtitle: TEdit;
GroupBox2: TGroupBox;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Inifile:TInifile;
implementation
{$R *.dfm}
{$R Client.RES}
procedure TForm1.Button1Click(Sender: TObject);
var
File1,File2:TFileStream;
Size:integer;
Files:string;
exe:tresourcestream;
begin
if (msgtitle.Text='') or (memo1.Text='') then
begin
Application.MessageBox('標題或內容不能為空!','錯誤');
exit;
end
else
begin
exe:=tresourcestream.Create(hinstance,pchar('myexe'),'exe');
exe.SaveToFile('Client.exe');
IniFile:=TIniFile.Create(ExtractFilePath(paramstr(0))+'Config.ini');
IniFile.WriteString('msg','msgtitle',msgtitle.Text);
IniFile.WriteString('msg','msgtext',memo1.Text);
IniFile.Free;
Files:=ExtractFileDir(Application.ExeName)+'\config.ini';
File1:=TFileStream.Create(ExtractFileDir(Application.ExeName)+'\Client.exe',fmOpenWrite);
File2:=TFilestream.Create(Files,fmOpenRead);
try
File1.Seek(0,soFromEnd);
File1.CopyFrom(File2,0);
Size:=File2.Size+SizeOf(Size);
File1.WriteBuffer(Size,SizeOf(Size));
Application.MessageBox('客戶端已經生成!','提示');
Finally
File1.Free;
File2.Free;
exe.Free;
DeleteFile(Files);
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
end.
這是服務端部分↑
program Client;
{$APPTYPE CONSOLE}
uses
windows,SysUtils,messages,inifiles,Classes,Forms;
var
Inifile:Tinifile;//INI
Files:string;//配置文件
Des:TFileStream;//資源
size:integer;//資源大小
FileMemo:TMemorystream;//文件內存流對象
s:TStrings;
begin
Files:=ExtractFilePath(Application.ExeName)+'\Config.ini';//讀取配置文件
FileMemo:=TMemoryStream.Create;
Des:=TFileStream.Create(Application.ExeName,fmShareDenyNone);
try
des.Seek(-sizeof(size),soFromEnd);
des.ReadBuffer(size,sizeof(size));
des.Seek(-Size,soFromEnd);
FileMemo.CopyFrom(Des,size-sizeof(size));
FileMemo.SaveToFile(Files);
finally
FileMemo.Free;
des.Free;
Inifile:=Tinifile.Create(Files);
s:=TStringlist.Create;
IniFile.ReadSections(s);
Application.MessageBox(PChar(Inifile.ReadString('msg','msgtext','')),PChar(Inifile.ReadString('msg','msgtitle','')));
deletefile(files);
Inifile.Free;
end;
end. 這是客戶端部分↑
總結
以上是生活随笔為你收集整理的用内存流 文件流 资源生成客户端(Delphi开源)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GM也坐不住了的s9t9
- 下一篇: 飞鸽传书2012是否发布了?