软件自动升级程序之执行dos命令和自运行程序的升级包|C/S框架网
软件自动升级程序之执行dos命令和自运行程序的升级包|C/S框架网基于C/S架构设计的自动升级程序支持封装命令升级包,以及在本地用户的PC机能自动运行的子程序(类似在客户端植入木马程序),程序员通过升级程序制作执行dos命令的升级包和木马程序升级包。

一、什么是命令升级包?
命令升级包是指客户端根据升级包的内容执行某些动作,比如删除当前应用程序目录下的文件,或者运行一个指定的程序。自动升级程序支持【删除文件的命令升级包】以及【运行程序的命令升级包】。
点击【制作命令升级包】菜单,弹出管理员登录界面,输入密码:csframework,按【回车键】或点【登录】按钮打开【封装执行命令的升级包】界面,预设显示【删除文件的命令】界面。
二、制作运行dos命令的升级包:

根据界面提示,在文件输入框键入删除文件的DOS命令,如:tmp*.txt, test.dll
(注意:只需要输入带有统配符的文件名)。
自动升级程序下载升级包到用户的机器,将自动运行升级包内的dos命令。
三、制作运行程序的升级包:

选择能够独立运行的EXE程序文件,点【封装升级包】。
自动升级程序下载升级包到用户的机器,将自动运行EXE程序文件。
四、命令升级包接口设计
C# Code:
/// <summary>
/// 命令管理器
/// </summary>
public class PackageCommand
{
/// <summary>
/// 执行升级包命令
/// </summary>
/// <param name="files"></param>
public static void Execute(List<PackageFileItem> files)
{
foreach (PackageFileItem item in files)
{
(item as IMyCommand).Execute();
}
}
}
/// <summary>
/// 命令升级包接口
/// </summary>
public interface IMyCommand
{
bool Execute();
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
/// <summary>
/// 命令管理器
/// </summary>
public class PackageCommand
{
/// <summary>
/// 执行升级包命令
/// </summary>
/// <param name="files"></param>
public static void Execute(List<PackageFileItem> files)
{
foreach (PackageFileItem item in files)
{
(item as IMyCommand).Execute();
}
}
}
/// <summary>
/// 命令升级包接口
/// </summary>
public interface IMyCommand
{
bool Execute();
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
五、运行EXE程序的命令升级包
C# Code:
/// <summary>
/// 运行程序的命令升级包
/// </summary>
[Serializable]
public class CmdRunProgram : PackageFileItem, IMyCommand
{
/// <summary>
/// 构造器
/// </summary>
/// <param name="programFile"></param>
public CmdRunProgram(string programFile)
{
this.SetBody(programFile);
this.FileName = Path.GetFileName(programFile);
this.CreateDate = DateTime.Now;
}
/// <summary>
/// 封装升级包,转化为byte[]数值
/// </summary>
/// <param name="programFile"></param>
private void SetBody(string programFile)
{
using (FileStream fs = File.OpenRead(programFile))
{
byte[] bs = new byte[fs.Length];
fs.Read(bs, 0, (int)fs.Length);
this.FileBody = bs;
this.FileSize = bs.Length;
}
}
/// <summary>
/// 执行命令升级包
/// </summary>
/// <returns></returns>
public bool Execute()
{
try
{
string file = "tmp_exe_" + Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(this.FileName);
string path = Path.Combine(Application.StartupPath, file);
File.WriteAllBytes(path, this.FileBody);
UpgraderLog.AddLog("正在运行程序:" + path);
//运行程序
Process.Start(path);
return true;
}
catch
{
return false;
}
}
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
/// <summary>
/// 运行程序的命令升级包
/// </summary>
[Serializable]
public class CmdRunProgram : PackageFileItem, IMyCommand
{
/// <summary>
/// 构造器
/// </summary>
/// <param name="programFile"></param>
public CmdRunProgram(string programFile)
{
this.SetBody(programFile);
this.FileName = Path.GetFileName(programFile);
this.CreateDate = DateTime.Now;
}
/// <summary>
/// 封装升级包,转化为byte[]数值
/// </summary>
/// <param name="programFile"></param>
private void SetBody(string programFile)
{
using (FileStream fs = File.OpenRead(programFile))
{
byte[] bs = new byte[fs.Length];
fs.Read(bs, 0, (int)fs.Length);
this.FileBody = bs;
this.FileSize = bs.Length;
}
}
/// <summary>
/// 执行命令升级包
/// </summary>
/// <returns></returns>
public bool Execute()
{
try
{
string file = "tmp_exe_" + Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(this.FileName);
string path = Path.Combine(Application.StartupPath, file);
File.WriteAllBytes(path, this.FileBody);
UpgraderLog.AddLog("正在运行程序:" + path);
//运行程序
Process.Start(path);
return true;
}
catch
{
return false;
}
}
}
//来源:C/S框架网(www.csframework.com) QQ:23404761

参考文档:
C/S 系统版本自动升级软件V1.0

C#程序升级框架-软件版本自动升级系统|C/S框架网
参考文档:
达梦数据库 | 使用DM数据迁移工具迁移CSFrameworkV6数据库|C/S框架网|C/S开发框架
Winform自动升级框架源码(C#.NET)-C/S框架网
C#语言FFMpegRunner-FFMpeg超级视频压缩工具下载|C/S框架网
C# Winform增删查改快速开发框架|C/S框架网
达梦数据库入门基础|C/S框架网|C/S开发框架
达梦数据库 | DM管理工具使用指南|C/S框架网|C/S开发框架
使用.NET8/EFCore访问达梦数据库|C/S框架网|C/S开发框架
达梦数据库安装指南|C/S框架网|C/S开发框架
使用dos命令强制停止Windows服务|C/S开发框架
C/S框架网2022春节放假通知
C/S框架网软件介绍|WinFramework|C/S开发框架
C/S框架网正式上线FAQ问答频道,欢迎大家积极讨论~|C/S开发框架
原创Winform布局开源框架,Winform控件框架,插件化框架|C/S框架网
开源ERP软件平台ERP系统快速开发框架 - C/S框架网原创作品
NET开发框架,基于ADO.NET数据持久化快速开发框架平台-C/S框架网原创产品
C/S框架网提供原创开源.NET开发架构.NET管理系统框架
达梦数据库 | 使用DM数据迁移工具迁移CSFrameworkV6数据库|C/S框架网|C/S开发框架
Winform自动升级框架源码(C#.NET)-C/S框架网
C#语言FFMpegRunner-FFMpeg超级视频压缩工具下载|C/S框架网
C# Winform增删查改快速开发框架|C/S框架网
达梦数据库入门基础|C/S框架网|C/S开发框架
达梦数据库 | DM管理工具使用指南|C/S框架网|C/S开发框架
使用.NET8/EFCore访问达梦数据库|C/S框架网|C/S开发框架
达梦数据库安装指南|C/S框架网|C/S开发框架
使用dos命令强制停止Windows服务|C/S开发框架
C/S框架网2022春节放假通知
C/S框架网软件介绍|WinFramework|C/S开发框架
C/S框架网正式上线FAQ问答频道,欢迎大家积极讨论~|C/S开发框架
原创Winform布局开源框架,Winform控件框架,插件化框架|C/S框架网
开源ERP软件平台ERP系统快速开发框架 - C/S框架网原创作品
NET开发框架,基于ADO.NET数据持久化快速开发框架平台-C/S框架网原创产品
C/S框架网提供原创开源.NET开发架构.NET管理系统框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
