CN112818345A - 遍历隐藏进程 - Google Patents
遍历隐藏进程 Download PDFInfo
- Publication number
- CN112818345A CN112818345A CN202010828772.XA CN202010828772A CN112818345A CN 112818345 A CN112818345 A CN 112818345A CN 202010828772 A CN202010828772 A CN 202010828772A CN 112818345 A CN112818345 A CN 112818345A
- Authority
- CN
- China
- Prior art keywords
- address
- list entry
- kidispatchersreadylisthead
- instruction
- entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及内核驱动技术领域,尤其是遍历隐藏进程,具体的遍历进程包括以下步骤:将计算机进程由导出函数KeSetAffinityThread处理获得KiSetAffinityThread的地址;从已获得的KiSetAffinityThread地址往上查找一个字节获得一个CMP指令,这个指令继续往上查找的一个DWORD就是KiDispatcherReadyListHead;进入KiDispatcherReadyListHead后,通过SSDT获取KiDispatcherReadyListHead的地址,并将指令lea装载KiDispatcherReadyListHead的地址,并准备遍历程序;判断KiWaitListEntry链表里可以指向Wait List Entry或者Queue List Entry任一位置的指针的指向;通过Thread Process域得到遍历的进程的EPROCESS,通过EPROCESS可以获得遍历的进程的全部信息,本发明通过遍历线程结构中的链表,能够查到出所有计算机中正在运行的木马病毒,可以提高反病毒工具查找隐藏程序的能力。
Description
技术领域
本发明涉及内核驱动技术领域,尤其涉及遍历隐藏进程。
背景技术
木马程序隐藏自身是木马程序要做的第一步也是木马程序能否存活的最关键的一步;目前Rootkit使用的主要的进程隐藏技术有:挂钩 NtQuerySystemInformation、NtOpenProcess、ObReference和ObjectHandle 等api隐藏,在进程链上Activeprocess摘除自身来隐藏。
计算机的任务管理器就是遍历Activeprocess链表获得进程信息的;通过驱动层调用遍历PspCidTable链表、EPROCESS结构里的HandleTable结构和PCB里面的ProcssListEntry链表均可以获得隐藏进程;用户的反病毒工具可以遍历到的数据链表,病毒一样可以找到并把进程信息从链表中移除掉;所以大多数反病毒隐藏的工具只能对某些隐藏的病毒遍历到,而这些工具所依赖的遍历进程信息的数据链表如果也被病毒处理了,就遍历不到病毒了,针对此种情况需要对目前遍历隐藏进程的方法进行调整。
发明内容
本发明的目的是为了解决现有技术中存在的缺点,而提出的遍历隐藏进程。
为达到以上目的,本发明采用的技术方案为:遍历隐藏进程,包括Windows 线程分派器,所述Windows线程分派器的线程分派主要利用KTHREAD中的三个双向链表结构WaitList Entry、Queue List Entry和Thread List Entry来完成,具体的遍历进程包括以下步骤:
(i)将计算机进程由导出函数KeSetAffinityThread处理获得KiSetAffinityThread的地址;
(ii)从已获得的KiSetAffinityThread地址往上查找一个字节获得一个 CMP指令,这个指令继续往上查找的一个DWORD就是 KiDispatcherReadyListHead;
(iii)进入KiDispatcherReadyListHead后,通过SSDT获取KiDispatcherReadyListHead的地址,并将指令lea装载 KiDispatcherReadyListHead的地址,并准备遍历程序;
(iv)判断KiWaitListEntry链表里可以指向Wait List Entry或者 Queue ListEntry任一位置的指针的指向;判定基准:Service Table和Queue List Entry的偏移之差为0x38,Service Table和Wait List Entry的偏移之差是0x80;
(v)通过基准的偏移差来判定KiWaitListEntry链表里指针的指向,即可进行遍历进程;
(vi)通过Thread Process域得到遍历的进程的EPROCESS,通过 EPROCESS可以获得遍历的进程的全部信息,根据所获取遍历的进程信息判断进程是否存在异常调取系统关键位置文件的行为,如果存在,则对进程进行关闭处理并提示用户。
与现有技术相比,本发明具有以下有益效果:通过遍历线程结构中的链表,能够查到出所有计算机中正在运行的木马病毒,可以提高计算机反病毒工具查找隐藏程序的能力。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的上述描述中,需要说明的是,术语“一侧”、“另一侧”等指示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
此外,术语“相同”等术语并不表示要求部件绝对相同,而是可以存在微小的差异;术语“垂直”仅仅是指部件之间的位置关系相对“平行”而言更加垂直,并不是表示该结构一定要完全垂直,而是可以稍微倾斜。
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。
遍历隐藏进程,包括Windows线程分派器,其特征在于,所述Windows线程分派器的线程分派主要利用KTHREAD中的三个双向链表结构Wait List Entry、Queue List Entry和Thread List Entry来完成,具体的遍历进程包括以下步骤:
(i)将计算机进程由导出函数KeSetAffinityThread处理获得KiSetAffinityThread的地址;
(ii)从已获得的KiSetAffinityThread地址往上查找一个字节获得一个 CMP指令,这个指令继续往上查找的一个DWORD就是 KiDispatcherReadyListHead;
(iii)进入KiDispatcherReadyListHead后,通过SSDT获取KiDispatcherReadyListHead的地址,并将指令lea装载 KiDispatcherReadyListHead的地址,并准备遍历程序;
(iv)判断KiWaitListEntry链表里可以指向Wait List Entry或者 Queue ListEntry任一位置的指针的指向;判定基准:Service Table和Queue List Entry的偏移之差为0x38,Service Table和Wait List Entry的偏移之差是0x80;
(v)通过基准的偏移差来判定KiWaitListEntry链表里指针的指向,即可进行遍历进程;
(vi)通过Thread Process域得到遍历的进程的EPROCESS,通过 EPROCESS可以获得遍历的进程的全部信息,根据所获取遍历的进程信息判断进程是否存在异常调取系统关键位置文件的行为,如果存在,则对进程进行关闭处理并提示用户。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。
本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。
本发明要求的保护范围由所附的权利要求书及其等。
Claims (1)
1.遍历隐藏进程,包括Windows线程分派器,其特征在于,所述Windows线程分派器的线程分派主要利用KTHREAD中的三个双向链表结构Wait List Entry、Queue List Entry和Thread List Entry来完成,具体的遍历进程包括以下步骤:
(i)将计算机进程由导出函数KeSetAffinityThread处理获得KiSetAffinityThread的地址;
(ii)从已获得的KiSetAffinityThread地址往上查找一个字节获得一个CMP指令,这个指令继续往上查找的一个DWORD就是KiDispatcherReadyListHead;
(iii)进入KiDispatcherReadyListHead后,通过SSDT获取KiDispatcherReadyListHead的地址,并将指令lea装载KiDispatcherReadyListHead的地址,并准备遍历程序;
(iv)判断KiWaitListEntry链表里可以指向Wait List Entry或者Queue List Entry任一位置的指针的指向;判定基准:Service Table和Queue List Entry的偏移之差为0x38,Service Table和Wait List Entry的偏移之差是0x80;
(v)通过基准的偏移差来判定KiWaitListEntry链表里指针的指向,即可进行遍历进程;
(vi)通过Thread Process域得到遍历的进程的EPROCESS,通过EPROCESS可以获得遍历的进程的全部信息,根据所获取遍历的进程信息判断进程是否存在异常调取系统关键位置文件的行为,如果存在,则对进程进行关闭处理并提示用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010828772.XA CN112818345A (zh) | 2020-08-17 | 2020-08-17 | 遍历隐藏进程 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010828772.XA CN112818345A (zh) | 2020-08-17 | 2020-08-17 | 遍历隐藏进程 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112818345A true CN112818345A (zh) | 2021-05-18 |
Family
ID=75853303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010828772.XA Pending CN112818345A (zh) | 2020-08-17 | 2020-08-17 | 遍历隐藏进程 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818345A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112818346A (zh) * | 2020-08-17 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 文件诱捕反勒索病毒的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206692A (zh) * | 2006-12-20 | 2008-06-25 | 联想(北京)有限公司 | 检测进程的方法及设备 |
CN101782954A (zh) * | 2009-01-20 | 2010-07-21 | 联想(北京)有限公司 | 一种计算机及异常进程的检测方法 |
CN103065084A (zh) * | 2012-12-27 | 2013-04-24 | 武汉大学 | 在虚拟机外部机进行的windows隐藏进程检测方法 |
CN108446160A (zh) * | 2018-01-29 | 2018-08-24 | 中国电子科技网络信息安全有限公司 | 一种虚拟机隐藏进程检测方法及系统 |
US20190156027A1 (en) * | 2017-11-23 | 2019-05-23 | Nicira, Inc. | Detecting lateral movement using a hypervisor |
CN112822150A (zh) * | 2020-08-19 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 可疑ip的检测方法 |
CN112818346A (zh) * | 2020-08-17 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 文件诱捕反勒索病毒的方法 |
-
2020
- 2020-08-17 CN CN202010828772.XA patent/CN112818345A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206692A (zh) * | 2006-12-20 | 2008-06-25 | 联想(北京)有限公司 | 检测进程的方法及设备 |
CN101782954A (zh) * | 2009-01-20 | 2010-07-21 | 联想(北京)有限公司 | 一种计算机及异常进程的检测方法 |
CN103065084A (zh) * | 2012-12-27 | 2013-04-24 | 武汉大学 | 在虚拟机外部机进行的windows隐藏进程检测方法 |
US20190156027A1 (en) * | 2017-11-23 | 2019-05-23 | Nicira, Inc. | Detecting lateral movement using a hypervisor |
CN108446160A (zh) * | 2018-01-29 | 2018-08-24 | 中国电子科技网络信息安全有限公司 | 一种虚拟机隐藏进程检测方法及系统 |
CN112818346A (zh) * | 2020-08-17 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 文件诱捕反勒索病毒的方法 |
CN112822150A (zh) * | 2020-08-19 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 可疑ip的检测方法 |
Non-Patent Citations (3)
Title |
---|
JUNHU ZHU; TIANYANG ZHOU; QINGXIAN WANG: "Towards a Novel Approach for Hidden Process Detection Based on Physical Memory Scanning", 《2012 FOURTH INTERNATIONAL CONFERENCE ON MULTIMEDIA INFORMATION NETWORKING AND SECURITY》 * |
闫广禄,罗森林: "基于线程调度的隐藏进程检测技术研究", 《信息网络安全》, no. 02, pages 3 * |
鹿剑: "遍历线程调度链表辅助检测进程", pages 1 - 4, Retrieved from the Internet <URL:https://bbs.kanxue.com/thread-102559.htm> * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112818346A (zh) * | 2020-08-17 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 文件诱捕反勒索病毒的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7802300B1 (en) | Method and apparatus for detecting and removing kernel rootkits | |
US10397261B2 (en) | Identifying device, identifying method and identifying program | |
US7340777B1 (en) | In memory heuristic system and method for detecting viruses | |
WO2013037528A1 (en) | Malware scanning | |
JP6116697B2 (ja) | 電子デバイスを保護する方法、プログラム、システム、および機械可読ストレージ媒体 | |
US7571482B2 (en) | Automated rootkit detector | |
US8161552B1 (en) | White list creation in behavior monitoring system | |
US20120144488A1 (en) | Computer virus detection systems and methods | |
JP5963008B2 (ja) | コンピュータシステムの分析方法および装置 | |
CN111460445B (zh) | 样本程序恶意程度自动识别方法及装置 | |
US20120210431A1 (en) | Detecting a trojan horse | |
EP2920737B1 (en) | Dynamic selection and loading of anti-malware signatures | |
EP1872233A2 (en) | System and method for scanning memory for pestware offset signatures | |
US11120124B2 (en) | Method for detecting a deviation of a security state of a computing device from a desired security state | |
JP4025882B2 (ja) | コンピュータウィルス固有情報抽出装置、コンピュータウィルス固有情報抽出方法及びコンピュータウィルス固有情報抽出プログラム | |
US7571476B2 (en) | System and method for scanning memory for pestware | |
US8370941B1 (en) | Rootkit scanning system, method, and computer program product | |
US20170126716A1 (en) | Malware detection | |
WO2019013033A1 (ja) | コールスタック取得装置、コールスタック取得方法、および、コールスタック取得プログラム | |
US20070234330A1 (en) | Prevention of executable code modification | |
JPWO2015045043A1 (ja) | プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法 | |
CN112818345A (zh) | 遍历隐藏进程 | |
CN105718793A (zh) | 基于修改沙箱环境防止恶意代码识别沙箱的方法及系统 | |
US20240004964A1 (en) | Method for reducing false-positives for identification of digital content | |
US20060167948A1 (en) | Detection of computer system malware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |