一种检测Windows操作系统中隐藏的恶意程序进程的方法技术方案

技术编号:28623680 阅读:17 留言:0更新日期:2021-05-28 16:19
本发明专利技术公开了一种检测Windows操作系统中隐藏的恶意程序进程的方法,其特征在于包括以下步骤:S100:从Windows操作系统应用层检测隐藏进程,包括以下步骤:S101:获取%SystemRoot%\System32\ntdll.dll,并根据解析ntdll.dll的结果获取ntdll.dll的导出函数NtQuerySystemInformation;S102:采用导出函数NtQuerySystemInformation筛选出Nt开头的功能,并进行解析,获取NtQuerySystemInformation的系统服务描述符的编号;S103:根据所获取的NtQuerySystemInformation的系统服务描述符的编号,构建调用功能,并使用SYSENTER\SYSTEMCALL指令访问内核层;S104:对比进程列表,查找隐藏的恶意程序进程;S200:判断是否查找到隐藏的恶意程序进程,如果是,结束流程,否则,执行步骤S300;S300:从Windows操作系统内核层检测隐藏进程。

【技术实现步骤摘要】
一种检测Windows操作系统中隐藏的恶意程序进程的方法
本专利技术属于计算机安全及计算机病毒检测与防护领域,涉及一种检测Windows操作系统中隐藏的恶意程序进程的方法。
技术介绍
在恶意软件威胁、病毒注入、挖矿程序肆意的当下,对于Windows操作系统进程的监控不仅是计算机安全从业人员需要关心的重点,更是守护信息安全、杜绝恶意威胁的关键。但非法盗用计算机资源的违法人员不会直接将恶意程序注入并运行。现有技术进行检测时,极易遇到进程被恶意挂钩,这些隐藏手段使计算机安全从业人员无法直接察觉该恶意软件正在盗用我们的计算机资源。恶意代码为了保护自己的进程不被发现,通过进程挂起,替换内存数据再恢复执行,或通过HOOK函数NtQuerySystemInfornation实现进程隐藏等方法,在常见的64位Windows操作系统下wow64进程下的Wow64Transition进行挂钩,实现进程隐藏和欺骗,用来对抗进程检测。在64位Windows操作系统下,恶意代码也能实现进程隐藏和欺骗,也能对抗进程检测。因此,现有技术中,用户和第三方杀毒工具等不能直接查看所有真实进程列表,无法绕过恶意程序的隐藏和欺骗。
技术实现思路
针对现有技术的不足,本专利技术提供了一种检测Windows操作系统中隐藏的恶意程序进程的方法,从应用层调用与驱动层访问的方案,在恶意程序进行进程隐藏和欺骗的情况下,绕过程序挂钩、进程断链等,提取到实际的系统进程列表,挖掘出恶意程序进程。本专利技术具有稳定可靠并能全面检测Windows操作系统中隐藏的恶意程序进程的有益效果。本专利技术申请包括以下步骤:S100:从Windows操作系统应用层检测隐藏进程,包括以下步骤:S101:获取%SystemRoot%\System32\ntdll.dll,并根据解析ntdll.dll的结果获取ntdll.dll的导出函数NtQuerySystemInformation;S102:采用导出函数NtQuerySystemInformation筛选出Nt开头的功能,并进行解析,获取NtQuerySystemInformation的系统服务描述符的编号,包括以下步骤:S1021:采用二进制方式读取ntdll.dll文件,获取PE文件导出表,解析NTQuerySystemInformation的相对虚拟地址RVA;S1022:解析PE文件区段表并按页对齐,映射到内存后,读取PE文件头地址ImageBase;S1023:计算功能地址fn:功能地址fn=ImageBase+RVA;S1024:根据功能地址fn及操作系统的位数,获取NtQuerySystemInformation的系统服务描述符的编号,其中,对于Windows32位操作系统:NtQuerySystemInformation的系统服务描述符的编号=fn+1;对于Windows64位操作系统:NtQuerySystemInformation的系统服务描述符的编号=fn+4;S103:根据所获取的NtQuerySystemInformation的系统服务描述符的编号,构建调用功能,并使用SYSENTER\SYSTEMCALL指令访问内核层;S104:对比进程列表,查找隐藏的恶意程序进程:通过步骤S103所构建的调用功能,查询Windows操作系统当前运行的进程列表;直接运行NtQuerySystemInformation,查询Windows操作系统当前运行的进程列表;比较两次查询进程列表的结果,查找并获取隐藏的恶意程序进程;S200:判断是否查找到隐藏的恶意程序进程,如果是,结束流程,否则,执行步骤S300;S300:从Windows操作系统内核层检测隐藏进程。优选地,所述步骤S101包括以下步骤:S1011:判断Windows操作系统是否为32位操作系统,如果是,执行步骤S2012,否则,执行步骤S1013:S1012:读取%SystemRoot%\System32\ntdll.dll,执行步骤S1014;S1013:执行Wow64DisableWow64FsRedirection,用以禁用重定位,并获取%SystemRoot%\System32\ntdll.dll;S1014:以二进制数据读取方式读取ntdll.dll文件,以win32PE文件方式解析,得到模块的导出函数NtQuerySystemInformation。优选地,所述步骤102的方法为:优选地,所述步骤S103包括以下步骤:对于Windows32位操作系统,所构建调用功能为:moveax,NtQueryInformationProcesscall$+8ret14movedx,espsysenterret对于Windows32位操作系统,所构建调用功能为;moveax,NtQueryInformationProcessmovr10,rcxsyscallretn优选地,所述步骤S300包括以下步骤:S301:采用运行NtQuerySystemInformation方式,使用SystemProcessInformation功能,枚举出所有csrss.exe进程;S302:采用运行NtQuerySystemInformation方式,使用SystemHandleInformation功能,枚举出当前Windows操作系统所有句柄表,根据返回的SYSTEM_HANDLE_INFORMATION::SYSTEM_HANDLE_TABLE_ENTRY_INFO中的UniqueProcessId,对比PID所属进程为csrss.exe的进程;S303:采用NtDuplicateObject功能,将句柄复制到自身,对句柄调用NtQueryObject功能,采用ObjectTypeInformation进行句柄类型查询;S304:当句柄类型名称为Process时,获取对象Object,作为进程csrss.exe所属会话session中活动进程的EProcess;S305:将步骤S304中所获取的对象Object与直接运行NtQuerySystemInformation并查询的Windows操作系统当前运行的进程列表进行对比,查找并获取隐藏的恶意程序进程。本专利技术所通过的方法的有益效果是:解决了现有技术中尚无检测Windows操作系统中隐藏的恶意程序进程的方法的技术问题。附图说明图1为本专利技术所提供的方法的总流程图。具体实施方式图1示出了本专利技术所提供的方法的总流程图。如图1所示,本专利技术的方法包括以下步骤:S100:从Windows操作系统应用层检测隐藏进程,包括以下步骤:S10本文档来自技高网...

【技术保护点】
1.一种检测Windows操作系统中隐藏的恶意程序进程的方法,其特征在于包括以下步骤:/nS100:从Windows操作系统应用层检测隐藏进程,包括以下步骤:/nS101:获取%SystemRoot%\System32\ntdll.dll,并根据解析ntdll.dll的结果获取ntdll.dll的导出函数NtQuerySystemInformation;/nS102:采用导出函数NtQuerySystemInformation筛选出Nt开头的功能,并进行解析,获取NtQuerySystemInformation的系统服务描述符的编号,包括以下步骤:/nS1021:采用二进制方式读取ntdll.dll文件,获取PE文件导出表,解析NTQuerySystemInformation的相对虚拟地址RVA;/nS1022:解析PE文件区段表并按页对齐,映射到内存后,读取PE文件头地址ImageBase;/nS1023:计算功能地址fn:功能地址fn=ImageBase+RVA;/nS1024:根据功能地址fn及操作系统的位数,获取NtQuerySystemInformation的系统服务描述符的编号,其中,/n对于Windows 32位操作系统:NtQuerySystemInformation的系统服务描述符的编号=fn+1;/n对于Windows 64位操作系统:NtQuerySystemInformation的系统服务描述符的编号=fn+4;/nS103:根据所获取的NtQuerySystemInformation的系统服务描述符的编号,构建调用功能,并使用SYSENTER\SYSTEMCALL指令访问内核层;/nS104:对比进程列表,查找隐藏的恶意程序进程:/n通过步骤S103所构建的调用功能,查询Windows操作系统当前运行的实际的进程列表;/n直接运行NtQuerySystemInformation,查询Windows操作系统当前运行的进程列表;/n比较两次查询进程列表的结果,查找并获取隐藏的恶意程序进程;/nS200:判断是否查找到隐藏的恶意程序进程,如果是,结束流程,否则,执行步骤S300;/nS300:从Windows操作系统内核层检测隐藏进程。/n...

【技术特征摘要】
1.一种检测Windows操作系统中隐藏的恶意程序进程的方法,其特征在于包括以下步骤:
S100:从Windows操作系统应用层检测隐藏进程,包括以下步骤:
S101:获取%SystemRoot%\System32\ntdll.dll,并根据解析ntdll.dll的结果获取ntdll.dll的导出函数NtQuerySystemInformation;
S102:采用导出函数NtQuerySystemInformation筛选出Nt开头的功能,并进行解析,获取NtQuerySystemInformation的系统服务描述符的编号,包括以下步骤:
S1021:采用二进制方式读取ntdll.dll文件,获取PE文件导出表,解析NTQuerySystemInformation的相对虚拟地址RVA;
S1022:解析PE文件区段表并按页对齐,映射到内存后,读取PE文件头地址ImageBase;
S1023:计算功能地址fn:功能地址fn=ImageBase+RVA;
S1024:根据功能地址fn及操作系统的位数,获取NtQuerySystemInformation的系统服务描述符的编号,其中,
对于Windows32位操作系统:NtQuerySystemInformation的系统服务描述符的编号=fn+1;
对于Windows64位操作系统:NtQuerySystemInformation的系统服务描述符的编号=fn+4;
S103:根据所获取的NtQuerySystemInformation的系统服务描述符的编号,构建调用功能,并使用SYSENTER\SYSTEMCALL指令访问内核层;
S104:对比进程列表,查找隐藏的恶意程序进程:
通过步骤S103所构建的调用功能,查询Windows操作系统当前运行的实际的进程列表;
直接运行NtQuerySystemInformation,查询Windows操作系统当前运行的进程列表;
比较两次查询进程列表的结果,查找并获取隐藏的恶意程序进程;
S200:判断是否查找到隐藏的恶意程序进程,如果是,结束流程,否则,执行步骤S300;
S300:从Windows操作系统内核层检测隐藏进程。


2.根据权利要求1所述的一种检测Windows操作系统中隐藏的恶意程序进程的方法,其特征在于,所述步骤S101包括以下步骤:
S1011:判断Windows操作系统是否为32位操作系统,如果是,执行步骤S2012,否则,执行步骤S1013:
S1012:读取%SystemRoot%\System32\ntdll.dll,执行步骤S1014;
S1013...

【专利技术属性】
技术研发人员:梁效宁杨先岷李安平
申请(专利权)人:四川效率源信息安全技术股份有限公司
类型:发明
国别省市:四川;51

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

1