【技术实现步骤摘要】
一种windows软件的防注入方法及系统
[0001]本专利技术涉及系统安全
,并且更具体地,涉及一种windows软件的防注入方法及系统。
技术介绍
[0002]公认的一些windows软件的防注入方法,一般技术实现难度较大,对软件开发者要求过高。如针对消息钩子,目前对于消息钩子的注入,都是在驱动层来进行拦截的,例如句柄匹配,这是一种全局拦截的方式,这种方法会增加消息钩子防注入的复杂性。如针对API,传统的方式是避免调用有注入行为的API。然而,采用避免调用的方式,需要清晰知道哪类API内部具有注入行为,出错机会较大;一些核心功能的API,实现功能比较复杂,并且没有替代的API,如果调用这些API则会被注入,容易被攻击者通过注入的DLL进行攻击,安全性低,若不调用这些API,则需要自己实现其相应的功能,代价非常大。
[0003]申请号为CN201610936075.X的文件提供了一种消息钩子防注入的防注入方法、装置及客户端,侧重于防护消息钩子的注入,主要的防护机制是利用回调函数返回的系统内核回调索引,拦截不受 ...
【技术保护点】
【技术特征摘要】
1.一种windows软件的防注入方法,其特征在于,所述方法包括:获取包含动态链接库DLL文件的数据包,对所述数据包进行解析以获取DLL模块黑名单列表;遍历当前进程中的每个DLL模块,根据当前进程中的每个DLL模块和所述DLL文件黑名单列表确定注入DLL模块列表;遍历当前进程中每个线程对应的线程模块信息,并将所述线程模块信息与所述注入DLL模块列表中的注入DLL模块进行匹配,并当匹配一致时,停止与所述线程模块信息对应的线程;遍历当前进程中的每个窗口,并将所述窗口与停止的线程进行匹配,并当匹配一致时,关闭所述窗口;遍历并释放所述注入DLL模块列表中的每个注入DLL模块。2.根据权利要求1所述的方法,其特征在于,所述根据当前进程中的每个DLL模块和所述DLL文件黑名单列表确定注入DLL模块列表,包括:获取当前进程中的每个DLL模块的第一特征信息和所述DLL文件黑名单列表中的每个DLL模块的第二特征信息;将所述第一特征信息和所述第二特征信息进行匹配,并当匹配成功时确定与所述第一特征信息对应的DLL模块为目标DLL模块,并将所述目标DLL模块存储至所述注入DLL模块列表中。3.根据权利要求2所述的方法,其特征在于,所述特征值包括:DLL模块的模块名称、基地址和进程环境信息PEB结构。4.根据权利要求1所述的方法,其特征在于,所述方法通过远程线程释放所述注入DLL模块列表中的每个注入DLL模块。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:当包含动态链接库DLL文件的数据包为加密文件时,按照与预设加密算法对应的解密算法对所述数据包进行解密,以获取明文文件;其中,所述预设加密算法为:SM2国密加密算法、MD5算法、SHA1算法、DES算法、AES算法或RSA算法。6.一种windows软件的防注入系统,其特征在于,所述系统包括:黑名单列表获取单元,用于获...
【专利技术属性】
技术研发人员:李予昂,范丽,陈晶鑫,魏贺生,单国军,谢宇,
申请(专利权)人:航天信息股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。