zoukankan      html  css  js  c++  java
  • 用内存流 文件流 资源生成客户端(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.
    这是客户端部分↑
    http://blog.csdn.net/diligentcatrich/article/details/7101723
  • 相关阅读:
    NET在后置代码中输入JS提示语句(背景不会变白)
    corev4.css 左菜单修改CSS
    寺庙里的那点荡事儿
    sharepoint 2010中通过命令部署和卸载FEATURE
    定时任务 Timer JOB
    获取MOSS个人站点的SPWeb对象
    C#对Active Directory进行增删修查的类源码
    权限操作
    在SharePoint中,检验用户(SPUser)是否属于给定的组(SPGroup)的方法(代码)
    DirectoryEntry所有字段对应解释
  • 原文地址:https://www.cnblogs.com/findumars/p/5218012.html
Copyright © 2011-2022 走看看