CN107643945A - 一种Windows xp系统下监控进程创建和销毁的方法 - Google Patents
一种Windows xp系统下监控进程创建和销毁的方法 Download PDFInfo
- Publication number
- CN107643945A CN107643945A CN201710714145.1A CN201710714145A CN107643945A CN 107643945 A CN107643945 A CN 107643945A CN 201710714145 A CN201710714145 A CN 201710714145A CN 107643945 A CN107643945 A CN 107643945A
- Authority
- CN
- China
- Prior art keywords
- windows
- created
- pid
- notice
- file
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种Windows xp系统下监控进程创建和销毁的方法,包括以下步骤:1,当一个进程被创建或销毁时,在Windows xp系统内核中注册一个进程通知回调,使得系统在进程的创建和销毁时会调用此进程通知回调例程;2,通过此通知回调例程获取引发该通知的进程pid,并通过该pid获得引发该通知的进程对象指针,通过层层解析进程对象中的数据结构,获得该进程的全路径名;3,将进程的创建或销毁状态,以及该进程的pid和全路径名信息记录到日志文件中,以便其他相关程序使用。与现有方法相比,本方法通用性强,兼容性好,灵活性高,适合具有高安全性和实时性要求的安全防护场合。
Description
技术领域
本发明涉及操作系统安全技术领域,具体涉及一种Windows xp系统下监控进程创建和销毁的方法。
背景技术
当今世界信息技术飞速发展,人类社会正逐步进入一个信息社会。在信息化时代计算机的安全非常重要。目前主流的Window操作系统自带的任务管理器都是较为优秀的进程监控工具,通过它们可了解当前系统中正运行的进程信息,并可禁止非法进程的运行以确保系统的安全。但不难发现,借助这些进程监控工具无法判别当前运行进程的合法性,也没有提供良好的用户接口,因此需要人工的判断和干预,这显然难以适应进程监控技术的要求。
信息保密性安全模型Bell-La Padula认为,进程是计算机系统的主体,可对文件、数据库等客体进行操作,如果将其用于不法用途,可能会给系统带来重大危害。事实上,目前许多网络攻击手段都是通过运行非法进程来入侵和攻击目标计算机的。因此,如何及时发现并阻断非法进程的入侵以保障合法进程的安全运行,已成为计算机安全领域研究的重点。
系统中进程启动和停止监控主要就是对非法进程入侵的主动免疫。目前,监控系统中进程启动和停止的方法主要有以下两种:
1)通过HOOK ZeCreateSection函数的方式,在创建虚拟内存块的时候,根据传入的文件句柄,获取句柄对应的文件名是否为exe可执行文件。该方法能够准确的获取进程创建的操作,但是由于此时进程并没有创建完毕,一些进程的基本结构还没有创建,所以进程pid等信息无法及时获取。
2)通过Hook NtReadVirtualMemory函数的方式,因为在为新创建的进程分配地址空间等操作时,系统需要读取进程空间,捕获这个操作,就能够获取进程的创建动作。但该方法虽然能够获取进程的创建操作,但不准确。因为除了进程的创建会调用此操作外,人为的一些操作,例如某外部应用程序想读取另一个进程的内存空间,也会调用这个函数,这时候也会有事件响应,因此结果不尽准确。
区别于HOOK API的方法,本方法是通过windows提供的回调函数,注册回调事件,区别于HOOK API的方法,本方法具有实时性、准确性、业务影响小等特性。
发明内容
本发明的目的在于克服现有技术中的不足,提供了一种Windows xp系统下监控进程创建和销毁的方法,以PsSetCreateProcessNotifyRoutine函数注册一个进程通知回调为基础,在通知回调例程中获取pid和进程全路径名等,从而为监控Windows xp系统中所有进程的创建或销毁提供详细的信息。
为解决上述技术问题,本发明提供了一种Windows xp系统下监控进程创建和销毁的方法,其特征是,包括以下步骤:
步骤S1,当一个进程被创建或销毁时,在Windows xp系统内核中通过PsSetCreateProcessNotifyRoutine函数注册一个进程通知回调,使得系统在进程的创建和销毁时会调用此进程通知回调例程;
步骤S2,通过此通知回调例程获取引发该通知的进程pid,并通过该pid获得引发该通知的进程对象指针,通过层层解析进程对象中的数据结构,获得该进程的全路径名;
步骤S3,将进程的创建或销毁状态,以及该进程的pid和全路径名信息记录到日志文件中,以便其他相关程序使用。
进一步的,步骤S2中,已知进程pid时,通过PsLookupProcessByProcessId函数获得该进程对应的进程对象指针,类型为EPROCESS;
进一步的,步骤S2中通过进程对象指针获取进程的全路径名的具体过程为:
步骤S21,通过进程对象指针,对其进行偏移获得该指针所指向结构体中Section节对象指针的值;
步骤S22,通过Section->Segment->ControlArea->FileObject,找到关联的文件对象指针PFileObject;
步骤S23,根据PFileObject->FileName得到相对路径文件名,以及PFileObject->DeviceObject得到盘符,对两者进行拼接获取进程的全路径名。
进一步的,所述步骤S1-S3作为内核驱动运行。
进一步的,步骤S3中记录到日志文件中的具体过程为:
步骤S31,使用ZwCreateFile函数打开文件,根据要进行的操作申请权限,设置DesiredAccess、ShareAccess参数的值;
步骤S32,使用ZwWriteFile函数来将信息写入文件。
进一步的,将ShareAccess参数设置为FILE_SHARE_READ。
与现有技术相比,本发明所达到的有益效果是:本发明方法抓住系统进程这个方面,对系统进程的创建、销毁进行了监控和分析,从信息化发展过程中出现的状况出发,为Windows xp系统安全提供稳定、可靠的服务的保证。此外该方法采用事件触发的机制,通过编写系统内核驱动模块,实现对系统进程的监控,能够对设定的恶意进程进行拦截告警,对重要的进程进行保护,对系统进程进行实时可靠的监控。同时,对系统进程的控制除了保证系统安全外,还可以具体其他的应用场景。
附图说明
图1为本发明方法的流程图;
图2是本发明方法通知回调例程的结构图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,本发明的一种Windows xp系统下监控进程创建和销毁的方法,该方法基于PsSetCreateProcessNotifyRoutine函数注册一个进程通知回调来实现,包括以下步骤:
步骤S1,当一个进程被创建或销毁时,Windows xp系统内核会有一个通知的时机,通过PsSetCreateProcessNotifyRoutine函数注册一个进程通知回调,使得系统在进程的创建和销毁时会调用此进程通知回调函数。
当一个进程被创建以及一个进程销毁时,系统会有一个通知的时机,通过PsSetCreateProcessNotifyRoutine函数注册一个进程通知。
其函数原型如下:
其中:
①成功注册事件通知后,PsSetCreateProcessNotifyRoutine函数将返回STATUS_SUCCESS。
②参数NotifyRoutine是一个通知例程的指针,表示当前进程创建或者进程结束时,NotifyRoutine指向的函数会被调用。
③表明当前注册事件通知还是移除事件通知,Remove为FALSE时,表示当前为注册操作,Remove为TRUE时,表示当前为移除操作。
步骤S2,成功注册事件通知后,在通知回调例程中获取引发该通知的进程pid,并通过该pid获得引发该通知的进程对象指针,通过层层解析进程对象中的数据结构,最后获得引发该通知的进程的全路径名,这样就可以获得进程的较详细信息。
pid是进程识别号,也就是进程标识符。每个进程有唯一的pid编号,它是进程运行时系统随机分配的,在运行时此pid是不会改变标识符的,终止进程后此pid标识符就会被系统回收。
成功注册事件通知后,系统在每次创建进程或者结束进程的时候,都将调用通知回调例程。
其函数原型如下:
其中:
①通知例程没有返回值,所以不能通过返回值来使得系统改变进程创建或者结束的行为。
②参数ProcessId表示引发该通知的进程pid,这个pid可能是指将要被创建的进程pid,也可能是指将要结束的进程pid,具体取决于Create参数。
③参数ParentId表示ProcessId进程对于的父进程pid。
④参数Create为TRUE表示当前是创建进程的通知,为FALSE表示当前是进程结束的通知。
上述可知,在通知回调例程中可以获得引发通知事件的进程pid,但是却没有办法获得该进程的全路径名。现有的方法存在各种问题,比如只能获得进程的可执行映像的名称、只能获得普通用户执行的进程的全路径名而无法获取所有进程的全路径(如管理员用户、系统等)等等。
本发明获取进程的全路径名的具体过程如下:
(1)通过获取引发通知事件进程的pid,通过PsLookupProcessByProcessId函数获得该进程对应的进程对象指针,类型为EPROCESS。
(2)通过进程对象指针,基本可以获取进程的一切信息。首先通过进程对象指针,对其进行偏移获得该指针所指向结构体中Section节对象指针的值。
(3)通过节对象的数据结构可以找到SEGMENT结构的指针,在SEGMENT对象的数据结构中有一个CONTROL_AREA的结构的指针,要找的文件对象的指针PFILE_OBJECT就在CONTROL_AREA结构中。
通过该Section找到的文件对象的数据结构中就有要获取的文件名和文件所在的盘符。获取过程如图2所示。
(4)通过Section->Segment->ControlArea->FileObject,这样就找到了那个关联的文件对象指针PFileObject。
(5)最后根据PFileObject->FileName得到的相对路径文件名以及PFileObject->DeviceObject得到的盘符进行拼接,获取进程的完整文件名(即全路径名)。
至此,将获取的全路径名返回给事件通知例程,本过程结束。
步骤S3,将进程的创建或销毁状态,以及该进程的pid和全路径名等信息记录到日志文件中,以便相关程序使用。
本发明处理过程(程序)作为内核驱动运行于内核态,所以写入日志的方式和用户态读写文件的方式略有不同。具体过程为:
(1)使用ZwCreateFile函数打开文件,根据想进行的操作申请权限,设置DesiredAccess参数的值。
(2)将ShareAccess参数用来表明在本代码打开文件时,允许别的代码同时打开这个文件所持有的权限,将其设置为FILE_SHARE_READ,那么此文件在本次打开之后、关闭之前,别的代码试图以读权限打开则被允许,否则一定失败返回共享冲突。这样该文件即可以实时更新系统中进程创建和结束的状态,以方便其他程序使用,还可以保证恶意进程无法对其进行修改,从而保证了监控日志的完整性。
(3)使用ZwWriteFile函数来将采集信息写入文件。
本发明方法采用事件触发的机制,将作为内核驱动执行,实现对系统进程的监控,在监控的过程中采用了巧妙的手段获取了进程的全路径名。能够对设定的恶意进程进行拦截告警,对重要的进程进行保护,对系统进程进行实时可靠的监控。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (6)
1.一种Windows xp系统下监控进程创建和销毁的方法,其特征是,包括以下步骤:
步骤S1,当一个进程被创建或销毁时,在Windows xp系统内核中通过PsSetCreateProcessNotifyRoutine函数注册一个进程通知回调,使得系统在进程的创建和销毁时会调用此进程通知回调例程;
步骤S2,通过此通知回调例程获取引发该通知的进程pid,并通过该pid获得引发该通知的进程对象指针,通过层层解析进程对象中的数据结构,获得该进程的全路径名;
步骤S3,将进程的创建或销毁状态,以及该进程的pid和全路径名信息记录到日志文件中,以便其他相关程序使用。
2.根据权利要求1所述的一种Windows xp系统下监控进程创建和销毁的方法,其特征是,步骤S2中,已知进程pid时,通过PsLookupProcessByProcessId函数获得该进程对应的进程对象指针,类型为EPROCESS。
3.根据权利要求1所述的一种Windows xp系统下监控进程创建和销毁的方法,其特征是,步骤S2中通过进程对象指针获取进程的全路径名的具体过程为:
步骤S21,通过进程对象指针,对其进行偏移获得该指针所指向结构体中Section节对象指针的值;
步骤S22,通过Section->Segment->ControlArea->FileObject,找到关联的文件对象指针PFileObject;
步骤S23,根据PFileObject->FileName得到相对路径文件名,以及PFileObject->DeviceObject得到盘符,对两者进行拼接获取进程的全路径名。
4.根据权利要求1所述的一种Windows xp系统下监控进程创建和销毁的方法,其特征是,所述步骤S1-S3作为内核驱动运行。
5.根据权利要求1所述的一种Windows xp系统下监控进程创建和销毁的方法,其特征是,步骤S3中记录到日志文件中的具体过程为:
步骤S31,使用ZwCreateFile函数打开文件,根据要进行的操作申请权限,设置DesiredAccess、ShareAccess参数的值;
步骤S32,使用ZwWriteFile函数来将信息写入文件。
6.根据权利要求5所述的一种Windows xp系统下监控进程创建和销毁的方法,其特征是,将ShareAccess参数设置为FILE_SHARE_READ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710714145.1A CN107643945A (zh) | 2017-08-16 | 2017-08-16 | 一种Windows xp系统下监控进程创建和销毁的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710714145.1A CN107643945A (zh) | 2017-08-16 | 2017-08-16 | 一种Windows xp系统下监控进程创建和销毁的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107643945A true CN107643945A (zh) | 2018-01-30 |
Family
ID=61110875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710714145.1A Pending CN107643945A (zh) | 2017-08-16 | 2017-08-16 | 一种Windows xp系统下监控进程创建和销毁的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107643945A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722002A (zh) * | 2020-05-26 | 2021-11-30 | 网神信息技术(北京)股份有限公司 | 用于获取命令行参数的方法和系统、电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016314A1 (en) * | 2006-07-12 | 2008-01-17 | Lixin Li | Diversity-based security system and method |
US20100186093A1 (en) * | 2007-06-29 | 2010-07-22 | Gemalto, Sa | Portable mass storage device with hooking process |
US20120079594A1 (en) * | 2010-09-27 | 2012-03-29 | Hyun Cheol Jeong | Malware auto-analysis system and method using kernel callback mechanism |
CN102855430A (zh) * | 2012-08-23 | 2013-01-02 | 福建升腾资讯有限公司 | 基于Windows系统的进程黑白名单控制方法 |
US20140351941A1 (en) * | 2013-05-26 | 2014-11-27 | Check Point Software Technologies Ltd. | Method of defending a computer from malware |
CN105574410A (zh) * | 2015-12-15 | 2016-05-11 | 北京金山安全软件有限公司 | 一种应用程序的安全检测方法及装置 |
CN106126291A (zh) * | 2016-06-28 | 2016-11-16 | 北京金山安全软件有限公司 | 一种删除恶意文件的方法、装置及电子设备 |
-
2017
- 2017-08-16 CN CN201710714145.1A patent/CN107643945A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016314A1 (en) * | 2006-07-12 | 2008-01-17 | Lixin Li | Diversity-based security system and method |
US20100186093A1 (en) * | 2007-06-29 | 2010-07-22 | Gemalto, Sa | Portable mass storage device with hooking process |
US20120079594A1 (en) * | 2010-09-27 | 2012-03-29 | Hyun Cheol Jeong | Malware auto-analysis system and method using kernel callback mechanism |
CN102855430A (zh) * | 2012-08-23 | 2013-01-02 | 福建升腾资讯有限公司 | 基于Windows系统的进程黑白名单控制方法 |
US20140351941A1 (en) * | 2013-05-26 | 2014-11-27 | Check Point Software Technologies Ltd. | Method of defending a computer from malware |
CN105574410A (zh) * | 2015-12-15 | 2016-05-11 | 北京金山安全软件有限公司 | 一种应用程序的安全检测方法及装置 |
CN106126291A (zh) * | 2016-06-28 | 2016-11-16 | 北京金山安全软件有限公司 | 一种删除恶意文件的方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
TWITCH: "几个有用内核函数封装(进程、注册表路径)", 《HTTPS://WWW.XUEBUYUAN.COM/882770.HTML》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722002A (zh) * | 2020-05-26 | 2021-11-30 | 网神信息技术(北京)股份有限公司 | 用于获取命令行参数的方法和系统、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3023631C (en) | A system and method of data cognition incorporating autonomous security protection | |
CN111931166B (zh) | 基于代码注入和行为分析的应用程序防攻击方法和系统 | |
CN107851155A (zh) | 用于跨越多个软件实体跟踪恶意行为的系统及方法 | |
US10061273B2 (en) | Intelligent security hub for providing smart alerts | |
TWI677804B (zh) | 計算機裝置及辨識其軟體容器行為是否異常的方法 | |
EP2884417A1 (de) | Verfahren zur Abwehr von Cold-Boot Angriffen auf einen Computer in einem Selbstbedienungs-Terminal | |
US11132973B2 (en) | System for capturing images from applications rendering video to a native platform with a graphics rendering library | |
CN110276195A (zh) | 一种智能设备入侵检测方法、设备及存储介质 | |
US12013942B2 (en) | Rootkit detection based on system dump sequence analysis | |
CN116915484A (zh) | 元宇宙网络威胁事件推演方法 | |
CN110380860B (zh) | 基于区块链智能合约的共有资源数据处理方法和设备 | |
CN103430153B (zh) | 用于计算机安全的接种器和抗体 | |
CN107643945A (zh) | 一种Windows xp系统下监控进程创建和销毁的方法 | |
CN115086081B (zh) | 一种蜜罐防逃逸方法及系统 | |
US20230315855A1 (en) | Exact restoration of a computing system to the state prior to infection | |
US20190342330A1 (en) | User-added-value-based ransomware detection and prevention | |
CN115587357A (zh) | 一种基于大数据的威胁场景分析方法及系统 | |
CN113364766B (zh) | 一种apt攻击的检测方法及装置 | |
CN116244677A (zh) | 提权检测方法、装置、电子设备及存储介质 | |
CN115967565A (zh) | 一种战场态势感知方法、系统、终端设备及存储介质 | |
US9037608B1 (en) | Monitoring application behavior by detecting file access category changes | |
CN111125701B (zh) | 文件检测方法、设备、存储介质及装置 | |
CN107070913B (zh) | 一种基于webshell攻击的检测和防护方法及系统 | |
CN113395234A (zh) | 推广信息的流量劫持监控方法及装置 | |
WO2007000295A1 (de) | Integritätsgeschützter datenträger |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180130 |
|
RJ01 | Rejection of invention patent application after publication |