正文:
很多木马生成器就是用的内存流和文件流生成客户端的,
废话不多说了,代码如下:

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开源)相关推荐

  1. day27-API-java流的三大分类,常用的流(文件流,对象流, 缓冲流, 转换流, PW)

    文章目录 一. java流的三大类 1. 输出流和输入流 2. 字节流和字符流 3. 节点流和处理流 二. 字节流 1. 文件流 FIS和FOS 1.1 文件输出流:FileOutputStream ...

  2. IO流(文件流 , 缓冲流 , 对象流, 字符流 )

    IO流父类 输入流InputStream : 硬盘–>内存 输出流OutputStream : 内存–>硬盘 文件流(FileInputStream 和FileOutputStream) ...

  3. java io流过滤流_JAVA io流 文件流 字节流 字符流 过滤流 缓冲流

    一.概念 1.1.按流向分类: 输入流: 程序可以从中读取数据的流. 输出流: 程序能向其中写入数据的流. 1.2.按数据传输单位分类: 字节流:以字节(8位二进制)为单位进行处理.主要用于读写诸如图 ...

  4. JavaIO流(2)--IO流原理、流的分类及节点流文件流操作

    文章目录 IO流简介 IO流原理 流的分类 IO 流体系 节点流和处理流 节点流操作 IO流简介 I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于处理设备之间的数据传输.如读 ...

  5. react前端下载后端返回文件流(文件流下载excel、csv)

    以前用vue框架的时候,写过不少下载上传的东西,当然包括后端返回文件流供前端下载,现在用react,牵扯到这个功能,又提起来说,有两种下载类型,一种是Excel,一种是Csv. 首先后端返回这种: 或 ...

  6. 使用kbmmw 生成客户端delphi函数原型

    前面我们讲了使用swagger 生成java,php 的客户端调用函数原型. 对于delphi,其实很遗憾,不能直接生成客户端函数原型代码. 不要紧,解铃还须系铃人,既然是kbmmw 自己生成的,我们 ...

  7. Java高级:IO流、File类、抽象基类、节点流、缓冲流、图片加密、其他流、对象流、随机存取文件流

    package com.atguigu.java3;import org.junit.Test;import java.io.File; import java.io.IOException; imp ...

  8. 【Delphi入门】文件系统(文件分类 文件文本变量 文件操作 文件流操作)

    文件分类 文本文件(TextFile) & 二进制文件(Flie) 二进制形式存放数据占有存储空间较少,但不直观:文本文件与之相反 文件是由相同类型的数据元素组成的序列.在DELPHI中对文件 ...

  9. 【java基础,IO合集】文件流、高级流(缓冲流、对象流)、 序列化接口java.io.Serrializable

    目录 文件流 1 块读写的文件复制操作 2 文件输出流-覆盖模式 3 文件输出流-追加模式 4 文件输出流-读取文本数据 高级流 1  流连接示意图 2 缓冲流 2.1 使用缓冲流完成文件复制操作 2 ...

最新文章

  1. 基于mysqld_multi实现MySQL 5.7.24多实例多进程配置
  2. 熟悉 Linux 系统结构,推开Linux 大门
  3. 魔法城堡计算机谱子,TFBOYS魔法城堡歌谱及歌词
  4. Markdown-基础语法
  5. android addtextchangedlistener参数,【Android】关于addTextChangedListener()方法的上机记录...
  6. SEM竞价员怎么分析竞争对手,需要分析哪些?
  7. springbatch开启任务的两种方式
  8. 2. MarkText可代替Typora的markdown 编辑器
  9. 【MSP是什么】最佳管理实践指南
  10. C#Winform中运用DevExpress提供的ChartControl控件绘制多条曲线图
  11. 如何更好的提问-在提问之前试试Stack Overflow、小黄鸭调试法
  12. Found existing installation:xxxx
  13. 【vue】To install them, you can run: npm install --save aws-sdk module
  14. 单手杀穿经典链表题Pt.2——LeetCode天梯渡劫(倒数第k节点,合并链表,链表分割,回文结构)
  15. 2021年底跨平台技术比较和选型指南(也许是最全的)
  16. 初识 ❤ TensorFlow |【一见倾心】
  17. Linux查看服务器配置命令
  18. 内存泄漏是个什么狗东西
  19. Android面试基础技能罗列,谈谈我认为的高级Android开发到底应该是怎样的
  20. python调音_Linux实现远程控制ALSA调音台?!

热门文章

  1. [导入]ASP.NET AJAX 说明文档-客户端引用-全局命名空间-JavaScript 基础类型扩展-Array 类型扩展-contains 函数...
  2. poj 3280(简单区间dp)
  3. java------多线程通信
  4. 并查集杭电1272小希的迷宫
  5. NYOJ 417 死神来了
  6. 形态形成场(矩阵乘法优化dp)
  7. omnigraffle 的一些总结
  8. 【USACO】奶牛抗议 树状数组+dp
  9. 软件工程课堂作业(八)——结对开发(三)
  10. 使用Oracle数据库开发中的一个技巧