基于事务的文件保护方法、装置、设备及存储介质制造方法及图纸

技术编号:35863122 阅读:10 留言:0更新日期:2022-12-07 10:53
本公开涉及一种基于事务的文件保护方法、装置、设备及存储介质,其中,方法包括:基于可执行文件创建事务处理文件句柄,并将待保护代码文件写入所述事务处理文件句柄,以覆盖原有内容;创建映射节,其中,所述映射节指向所述事务处理文件句柄;在所述映射节处创建进程,启动并执行所述进程;撤销对所述可执行文件的更改。根据本公开的技术方案,能够提高被保护的代码文件的安全性。代码文件的安全性。代码文件的安全性。

【技术实现步骤摘要】
基于事务的文件保护方法、装置、设备及存储介质


[0001]本公开涉及计算机
,尤其涉及一种基于事务的文件保护方法、装置、设备及存储介质。

技术介绍

[0002]目前,软件作为辅助工具被广泛应用到各行各业当中。软件程序是软件设计者和软件编程人员智慧的结晶,软件企业的生存和发展是软件产品充足供应的基础,保护软件程序的版权,防止软件程序被盗版、被非法授权使用等也逐渐被人们所重视。在实际应用中,如何实现代码文件的保护,具有重要的现实意义。
[0003]相关技术中基于进程替换的软件保护方法,通过创建原进程并卸载原进程镜像,将待保护代码文件映射到原进程镜像得到原进程被替换后的新进程,该方案中API(Application Program Interface,应用程序接口)函数为跨进程读写操作,属于危险行为,易被监控软件行为检测发现并误告警,且被保护代码文件替换时的内存处可以被其他进程扫描分析到,安全性有待提高。

技术实现思路

[0004]为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于事务的文件保护方法、装置、设备及存储介质。
[0005]第一方面,本公开实施例提供了一种基于事务的文件保护方法,包括:
[0006]基于可执行文件创建事务处理文件句柄,并将待保护代码文件写入所述事务处理文件句柄,以覆盖原有内容;
[0007]创建映射节,其中,所述映射节指向所述事务处理文件句柄;
[0008]在所述映射节处创建进程,启动并执行所述进程;
[0009]撤销对所述可执行文件的更改。
[0010]可选地,所述基于可执行文件创建事务处理文件句柄,包括:
[0011]获取事务句柄;
[0012]通过传入事务句柄以事务性操作打开所述可执行文件,创建所述事务处理文件句柄;
[0013]开启所述可执行文件的读写权限。
[0014]可选地,所述将待保护代码文件写入所述事务处理文件句柄,包括:
[0015]获取待保护代码文件的大小,并根据所述大小申请内存空间以获取申请后的内存地址;
[0016]根据所述内存地址将所述待保护代码文件写入事务处理文件句柄。
[0017]可选地,所述在所述映射节处创建进程,启动并执行所述进程,包括:
[0018]通过传入映射节创建进程,获取进程句柄;
[0019]为所述进程分配进程参数和环境变量;
[0020]通过传入进程句柄创建所述进程的主线程并执行。
[0021]可选地,所述为所述进程分配进程参数和环境变量,包括:
[0022]创建进程参数,并在创建的进程中分配内存以写入进程参数,其中,所述进程参数为用户进程参数结构体,所述进程参数大小为结构体中EnvironmentSize值和MaximumLength值之和;
[0023]通过传入进程句柄获取进程信息,其中,所述进程信息为进程基础信息结构体;
[0024]通过进程基础信息结构体的指定偏移处获取进程环境块结构体地址,并将所述进程环境块结构体对应的进程环境指针值,更新为在所述创建的进程中分配内存的内存地址。
[0025]可选地,在为所述进程分配进程参数和环境变量之后,还包括:
[0026]根据所述待保护代码文件的原始地址、所述进程加载到内存中的基地址,修改所述待保护代码文件的内存入口地址。
[0027]可选地,所述撤销对所述可执行文件的更改,包括:
[0028]通过事务处理文件句柄调用RollbackTransaction函数执行事务回滚操作;
[0029]将对所述可执行文件的所有修改恢复,并关闭所有句柄。
[0030]第二方面,本公开实施例提供了一种基于事务的文件保护装置,包括:
[0031]写入模块,用于基于可执行文件创建事务处理文件句柄,并将待保护代码文件写入所述事务处理文件句柄,以覆盖原有内容;
[0032]创建模块,用于创建映射节,其中,所述映射节指向所述事务处理文件句柄;
[0033]执行模块,用于在所述映射节处创建进程,启动并执行所述进程;
[0034]恢复模块,用于撤销对所述可执行文件的更改。
[0035]第三方面,本公开实施例提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述第一方面所述的基于事务的文件保护方法。
[0036]第四方面,本公开实施例提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的基于事务的文件保护方法。
[0037]本公开实施例提供的技术方案与现有技术相比具有如下优点:基于可执行文件创建事务处理文件句柄,并将待保护代码文件写入事务处理文件句柄以覆盖原有内容,创建指向事务处理文件句柄的映射节,在映射节处创建进程,启动并执行进程,撤销对可执行文件的更改,由此,通过事务性操作基于可执行文件创建事务处理文件句柄,使后续操作为事务处理的操作,解决了API函数为跨进程读写操作易被监控软件行为检测发现并误告警的技术问题,将保护的代码文件复写可执行文件的事务,保证待保护代码文件替换时的安全性,且在撤销后使文件检测到的是磁盘文件的映射代码,而非运行进程的代码,实现代码文件的安全保护。
附图说明
[0038]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0039]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0040]图1为本公开实施例所提供的一种基于事务的文件保护方法的流程示意图;
[0041]图2为本公开实施例所提供的一种基于事务的文件保护装置的结构示意图;
[0042]图3为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
[0043]为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
[0044]在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
[0045]图1为本公开实施例所提供的一种基于事务的文件保护方法的流程示意图,本公开实施例提供的方法可以由基于事务的文件保护装置来执行,该装置可以采用软件和/或硬件实现,并可集成在任意具有计算能力的电子设备上,例如智能手机、平板电脑等用户终端。
[0046]如图1所示,本公开实施例提供的基于事务的文件保护方法本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于事务的文件保护方法,其特征在于,包括:基于可执行文件创建事务处理文件句柄,并将待保护代码文件写入所述事务处理文件句柄,以覆盖原有内容;创建映射节,其中,所述映射节指向所述事务处理文件句柄;在所述映射节处创建进程,启动并执行所述进程;撤销对所述可执行文件的更改。2.如权利要求1所述的方法,其特征在于,所述基于可执行文件创建事务处理文件句柄,包括:获取事务句柄;通过传入事务句柄以事务性操作打开所述可执行文件,创建所述事务处理文件句柄;开启所述可执行文件的读写权限。3.如权利要求1所述的方法,其特征在于,所述将待保护代码文件写入所述事务处理文件句柄,包括:获取待保护代码文件的大小,并根据所述大小申请内存空间以获取申请后的内存地址;根据所述内存地址将所述待保护代码文件写入事务处理文件句柄。4.如权利要求1所述的方法,其特征在于,所述在所述映射节处创建进程,启动并执行所述进程,包括:通过传入映射节创建进程,获取进程句柄;为所述进程分配进程参数和环境变量;通过传入进程句柄创建所述进程的主线程并执行。5.如权利要求4所述的方法,其特征在于,所述为所述进程分配进程参数和环境变量,包括:创建进程参数,并在创建的进程中分配内存以写入进程参数,其中,所述进程参数为用户进程参数结构体,所述进程参数大小为结构体中EnvironmentSize值和MaximumLength值之和;通过传入进程句柄获取进程信息,其中,所述进程信息为进程基础信息结构体;通过进程基础信息结构体的指定偏移处获...

【专利技术属性】
技术研发人员:解明佳
申请(专利权)人:北京天融信科技有限公司北京天融信软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1