The present invention provides a method and a device with shell software shell, the method includes: to shell shell software running in the shell system, system memory data storage system to express shelling by loading interface system of the shell shell software of the original program in information storage and record the plaintext data storage in the system memory; obtaining information stored by loading interface; according to the plaintext data storage information read from the memory in the system with shell software of the original program. With software and device shell hulling method provided by the invention, the plaintext data storage information by loading interface to obtain the plaintext data stored in system memory and read the original files, without the need for each shell program for logic analysis or process tracing, shelling efficiency is higher; and the invention of software shelling by loading interface system can be applied to the same interface for a variety of shell software shelling, including segmented shell encryption software, has a strong versatility.
【技术实现步骤摘要】
一种带壳软件脱壳的方法及装置
本专利技术涉及计算机
,特别涉及一种带壳软件脱壳的方法及装置。
技术介绍
软件加壳是一种常用的软件保护技术,首先对软件的原始程序进行加密或者以某种形式隐藏原始程序入口,之后在软件中加入一个预启动程序,即壳程序。当软件开始运行时,首先运行的是壳程序,壳程序对原始程序进行解密或获得原始程序入口,之后将运行权交给原始程序,此时,原始程序开始运行,而壳程序运行结束。软件加壳技术可以有效的对原始软件进行保护,是一种通用的,效果较好的软件保护方法。相比于普通软件开发者,很多病毒、木马程序的开发者更加倾向于使用加壳技术保护自己的恶意软件,从而在较长的时间内达到非法目的。对于加壳保护的恶意软件,恶意代码检测系统往往只能检测到壳程序的代码,无法检测到原始程序中被隐藏的恶意代码,而壳程序中一般不含有恶意代码,因此软件加壳也成为了绕过软件安全检测的途径。目前,现有的脱壳方案一般是对某种壳程序的逻辑进行破解,或通过动态调试,跟踪壳程序的运行流程,跟踪到壳程序运行之后,从系统内存中获取开始运行的原始程序。然而,现有的脱壳方案一般具有极强的针对性,每种壳程序的加壳方法、运行流程、采用的算法都存在差异。因此每种脱壳方法可能只对一种壳或一种壳的某个版本有效,通用性较差。
技术实现思路
本专利技术提供了一种带壳软件脱壳的方法及装置,其目的是为了解决现有的软件脱壳方案具有极强的针对性,而通用性较差的问题。为了达到上述目的,本专利技术的实施例提供了一种带壳软件脱壳的方法,该方法包括:在脱壳系统上运行待脱壳的带壳软件时,通过脱壳系统的加载接口将带壳软件的原始程序的 ...
【技术保护点】
一种带壳软件脱壳的方法,其特征在于,所述方法包括:在脱壳系统上运行待脱壳的带壳软件时,通过所述脱壳系统的加载接口将所述带壳软件的原始程序的明文数据存储至所述脱壳系统的系统内存中,并记录所述明文数据存储在所述系统内存中的存储信息;通过所述加载接口获取所述存储信息;根据所述存储信息从所述系统内存中读取所述带壳软件的原始程序的明文数据。
【技术特征摘要】
1.一种带壳软件脱壳的方法,其特征在于,所述方法包括:在脱壳系统上运行待脱壳的带壳软件时,通过所述脱壳系统的加载接口将所述带壳软件的原始程序的明文数据存储至所述脱壳系统的系统内存中,并记录所述明文数据存储在所述系统内存中的存储信息;通过所述加载接口获取所述存储信息;根据所述存储信息从所述系统内存中读取所述带壳软件的原始程序的明文数据。2.根据权利要求1所述的方法,其特征在于,所述在脱壳系统上运行待脱壳的带壳软件之前,所述方法还包括:获取原始的脱壳系统的源代码;在所述源代码中增加一获取指令,所述获取指令用于将所述脱壳系统的加载接口配置具有获取内存地址并读取内存的功能;对增加所述获取指令的源代码进行编译,得到编译后的脱壳系统的系统文件,并运行所述脱壳系统。3.根据权利要求1所述的方法,其特征在于,所述通过所述脱壳系统的加载接口将所述带壳软件的原始程序的明文数据存储至所述脱壳系统的系统内存中,并记录所述明文数据存储在所述系统内存中的存储信息,包括:若所述带壳软件的原始程序只有一次加密过程,则将所述带壳软件的原始程序的明文数据一次性存储至所述脱壳系统的系统内存中,并记录所述明文数据存储在所述系统内存中的存储信息;或若所述带壳软件的原始程序被分段加密,则将所述带壳软件的原始程序的明文数据分段存储至所述脱壳系统的系统内存中,并记录所述明文数据存储在所述系统内存中的存储信息以及分段数据,所述分段数据至少包括所述带壳软件的原始程序的分段信息以及每个分段存储至系统内存的时间戳。4.根据权利要求3所述的方法,其特征在于,所述根据所述存储信息从所述系统内存中读取所述带壳软件的原始程序的明文数据,包括:若所述带壳软件的原始程序只有一次加密过程,则根据所述存储信息从系统内存中读取所述带壳软件的原始程序的明文数据,或使所述脱壳系统根据所述存储信息从系统内存中读取所述带壳软件的原始程序的明文数据,并从所述脱壳系统中读取所述带壳软件的原始程序的明文数据;或若所述带壳软件的原始程序被分段加密,则根据所述分段信息、时间戳以及存储信息从系统内存中读取所述每个分段对应的明文数据,并对所述每个分段对应的明文数据进行汇总,得到所述待脱壳软件的原始程序的明文数据并存储。5.根据权利要求1所述的方法,其特征在于,所述通过所述加载接口获取所述存储信息,包括:通过所述加载接口...
【专利技术属性】
技术研发人员:耿慧拯,刘芳,石松泉,柏洪涛,
申请(专利权)人:中国移动通信集团公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。