CN1183452C - 被动式程序监控方法 - Google Patents

被动式程序监控方法 Download PDF

Info

Publication number
CN1183452C
CN1183452C CNB001026941A CN00102694A CN1183452C CN 1183452 C CN1183452 C CN 1183452C CN B001026941 A CNB001026941 A CN B001026941A CN 00102694 A CN00102694 A CN 00102694A CN 1183452 C CN1183452 C CN 1183452C
Authority
CN
China
Prior art keywords
program
monitored
monitored program
subroutine
information
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.)
Expired - Fee Related
Application number
CNB001026941A
Other languages
English (en)
Other versions
CN1310394A (zh
Inventor
林光信
陈玄同
李鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inventec Corp
Original Assignee
Inventec Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inventec Corp filed Critical Inventec Corp
Priority to CNB001026941A priority Critical patent/CN1183452C/zh
Publication of CN1310394A publication Critical patent/CN1310394A/zh
Application granted granted Critical
Publication of CN1183452C publication Critical patent/CN1183452C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种被动式程序监控方法,将拦截函数以动态连结程序库的方式挂入在于被监控程序中,用以拦截所产生信息以传送给监控程序以进行监控,监控程序再判断所拦截的为被监控程序创建或终止信息,以决定在程序表格中建立表列以记录被监控程序的相关资料,或是删除被监控程序的资料等操作,以确保监控操作能被正确执行,同时亦得以节省系统资源。

Description

被动式程序监控方法
技术领域
本发明涉及一种程序的监控方法,特别是指利用拦截函数(Hook)对程序进行监控的方法。
背景技术
随着科技的日新月异,电脑所提供的功能亦日益增加,除了已知的文字处理功能之外,一些较先进的功能,诸如提供声光效果的多媒体或是缩短人们距离的互联网等,亦一一被研发成功,并透过电脑提供服务以供人们使用。在硬件设备方面,亦随着半导体科技的急速发展,使得硬件的执行速度不断提升,而且电脑的价格或大小也不断降低,于是除了已知的个人电脑之外,一些可随身携带的装置,诸如笔记型电脑、掌上型电脑、甚至个人数字助理(PDA)装置等设备亦陆续开发成功,因此人们已摆脱往日必须固定在终端机前面进行工作的方式,进而利用随时携带的电脑设备进行接收或输出信息等工作。然而,各式各样的应用程序,诸如微软Office等软件便需加在操作系统中,而这些应用软件的安装程序将随着安装程序的进行,需或多或少地变更部分操作系统参数,诸如变更system.ini或Win.ini等文件的内容等,以便操作系统往后运作时能依据应用软件的需求而操作。就一般而言,上述的操作步骤是在应用软件安装时进行,使用者本身并不会察觉,因此若在进行解除安装时,若使用者未能利用应用软件的反安装程序进行,极可能因参数设定未变回应用软件未安装前状态,而影响到操作系统以后的正常运作,所以对于若能对安装过程进行监控,则使用者可以记录其过程,进而除去因不正常解除一应用软件的疏忽,而对操作系统造成伤害的情况发生。
对于操作系统,例如微软视窗98而言,对于在其中执行的程序,可由监控程序利用主动检测的方式来进行监控,用以确定所监控的子程序或是由该子程序所衍生的子程序是否仍存在,并在发现子程序不存在时认定其结束。例如在第一图中,监控程序101对被监控程序102做定期测试以达到监控的目的。然而通过监控程序101对被监控程序102进行监控的方式,往往因需要定期对被监控程序102进行监控的方式,往往因需要定期对被监控程序102做检测,于是便产生浪费系统资源的情况。再者,由于系统定期检测被监控程序102的状态,所以需要对操作系统产生中断来进行检测,例如预先设定时序中断与检测时间间隔等,于是将对操作系统的运作产生一定程度的破坏。此外,在被监控程序102又衍生子程序的情况下,若被监控程序102本身已停止运作时,监控程序101将不再对被监控程序102所衍生的子程序做检测,因此会导致监控失败,而使得系统资源丢失的情况发生。另一方面,在对不同操作系统,例如视窗98与视窗NT 4.0之下运作的程序进行监控时,由于需要不同的代码来代表程序,所以开发跨平台的监控程序便成为一件难度极高的事。于是急需一种能克服已知技术缺点的监控方法,除了能进行跨平台的监控程序,亦能使监控效率提高,不致于产生漏失程序使得监控失败的情况。
鉴于上述的发明背景中,已知由监控程序对被监控程序进行主动式监控的方式,不仅监控效率差而且浪费系统资源,更无法进行跨平台的程序监控。本发明的主要目的即针对上述缺点提出一种由被动式程序监控方法,用以克服上述已知技术所面临的问题。
发明内容
本发明的另一目的在于提供不需进行重写代码以及设定检测时间间隔与时序中断等操作程序的监控方法。
根据以上所述的目的,本发明所揭露的被动式程序监控方法利用包含拦截函数的动态连结程序库(DLL)来达成上述的目的。在挂上动态连结程序库方面,当一被监控程序的视窗产生的信息被发出时,该视窗所对应的动态连结程序库亦被呼叫,并且该监控程序将判断该目前所建立的程序是否需加以监控。若需进行监控,则位于DLL中的拦截函数将拦截到视窗产生的信息并进行监控的操作。若该被监控程序并非第一次被调用,亦即该被监控程序与其对应视窗已被产生时,将判断所接收的信息是否为视窗关闭的信息。若为视窗的关闭信息,则向监控程序发出被监控程序终止的信息,否则释放所拦截的信息的控制权。
在监控程序的操作方面,可在接收到由被监控程序的相关信息时,利用拦截函数将其拦截以进行监控,用以判断该被监控程序是建立还是终止。若该被监控程序是一新建立的程序时,将利用一程序记录表格来记录被监控程序与其所衍生的子程序的等距离代码与可执行文件等相关资料。若该被监控程序已终止时,则在程序记录表格中删除该被监控程序与其所衍生的子程序的相关资料,于是被产生时,将判断所接收的信息是否为视窗关闭的信息。若为视窗的关闭信息,则向监控程序发出被监控程序终止的信息,否则释放所拦截的信息的控制权。
在监控程序的操作方面,可在接收到由被监控程序的相关信息时,利用拦截函数将其拦截以进行监控,用以判断该被监控程序建立或终止。若该被监控程序是一新建立的程序时,将利用一程序记录表格来记录被监控程序与其所衍生的子程序的程序代码与可执行文件等相关资料。若该被监控程序已终止时,则在程序记录表格中删除该被监控程序与其所衍生的子程序的相关资料,于是被监控程序便可完成在监控程序的监控下被完善的监控,亦不需进行重写代码以及设定检测时间间隔与时序中断等操作。
附图说明
本发明的较佳实施例将于往后的说明文字中辅以下列图形做更详细的阐述:
图1描绘已知监控程序的监控方式的结构图;
图2描绘本发明中监控程序与被监控程序的关系结构图;
图3描绘本发明较佳实施例的在被监控程序之中插入动态连结程序库的操作流程图;
图4描绘本发明较佳实施例中监控程序执行监控操作的流程图;
图5描绘本发明较佳实施例中所使用的程序表格结构图;
图6A描绘利用本发明所揭露的方法用以安装应用程序时,利用视窗显示供使用者选择是否对安装程序进行监控的示意图;以及
图6B描绘当使用者在图6A中选择进行监控时,操作系统显示对安装程序已完成监控的示意图。
具体实施方式
在说明本发明所揭露的方法前,仅先对拦截函数做一简单介绍。基本上,拦截函数为操作系统,诸如视窗98中用以针对某一程序对整个操作系统拦截所传送信息的方法。对于运作中的程序而言,其不仅可利用拦截函数来达到拦截信息的目的,更可通知操作系统阻止某些信息被传送。一般而言,大多使用动态连接程序库(DLL)于程序中挂上拦截函数。因此拦截函数的操作可视为改变事件所产生信息的执行顺序,以使信息先至预先挂上的程序中执行,以完成拦截信息的功效,于是操作系统会对这些拦截点给予一个编号,以完成改变执行顺序的要求。本发明即依据上述拦截函数的特性,用以当被监控程序产生或终止或是当被监控程序产生子程序或当该子程序终止时进行监控,以确保被监控操作的完整性。
参阅图2,其描绘本发明中监控程序与被监控程序的关系结构图。事实上,被监控程序201是透过挂在被监控程序201中的拦截函数以传送信息至监控程序203,而拦截函数则利用DLL的方式包含在被监控程序的DLL的202中。以图2为例,其分别为监控DLL 202A与原有DLL 202B。被拦截的信息随后经由拦截函数传送至监控程序203中做监控的处理。
接下来将对本发明较佳实施例的操作流程做更详尽的说明。参阅图3,其描绘在本发明的较佳实施例中,插入动态连结程序库于被监控程序之中的操作流程图。首先将监控动态程序库挂入被监控程序中(步骤301),并判断该监控动态程序库是否为第一次挂入在被监控程序中(步骤302)。若为第一次挂入,则摄取该监控程序的相关信息(步骤303)。以视窗操作系统为例,第一次挂入监控DLL时,表示该被监控程序是刚创建的程序,所以此时应拦截到由被监控程序所产生的WM_Create信息。随后监控程序将判断应该是否需要对该监控程序进行监控(步骤304),若不是需监控的程序,则释放所拦截到的信息以继续后续的操作(步骤312);若需对该被监控程序进行监控,则向监控程序发出被监控程序已创建的信息(步骤305)。
若在步骤302中发现监控DLL已挂入被监控程序中时,监控程序将直接判断所拦截到的被监控程序程序创建或终止的信息。若所拦截到的是被监控程序的创建信息(由步骤305所发出),则在步骤306中,将被监控程序的相关资料加入在一程序表格中(往后将再行详述),随后再释放对被监控程序的控制权(经由步骤307至步骤312)。此外,若所拦截到的为被监控程序终止的信息,在视窗操作系统中为WM_Destroy信息,则对监控程序发出被监控程序终止的信息(步骤308)。当然,为确保流程的安全性,可判断被监控程序是否正常终止(步骤309),若不正常终止,则需向使用者询问是否需重新启动整个应用程序(步骤311),否则结束整个流程(步骤310)。
图4描绘本发明较佳实施例中的监控程序执行监控操作的流程图。首先,当监控程序接收到由拦截函数而来的监控信息时(步骤401),将先判断该信息是否为被监控程序的创建信息(步骤402);若是创建信息则查询程序表格(步骤403),用以确定目前所监控程序是否属于程序表格的某列成员(步骤404)。若不为程序表格的某列成员,则在程序表格中建立新列以存储该被监控程序的相关资料(步骤405)。应注意的是,若被监控程序为程序表格的某列成员时,由于其相关资料,诸如程序代码与可执行文件名称等已经存储过,所以不再另辟新列以进行存储。
当所拦截到的信息并非被监控程序的创建信息时,将判断该信息是否为被监控程序的消失信息(步骤406);若是消失信息则亦查询程序表格(步骤407);用以判断该终止的被监控程序是否为包含其他子程序的程序家族。若该终止的被监控程序为一程序家族(步骤408),则将该被监控程序由程序表格中删除(步骤409),随后再判断该程序家族是否仍有其他程序未被删除(步骤410),若有未删除的程序,则重复执行步骤408至步骤410直到全部删除为止,才完成对被监控程序的监控操作(步骤411)。应注意的是由于在本发明较佳实施例中重复执行步骤408至步骤410,所以将除去被监控程序已终止的但由被监控程序所衍生的子程序仍未删除的不正常情况。
图5描绘本发明较佳实施例中的所使用的程序表格结构图,在较佳实施例中所使用的是二维表格,但实际的应用可随需要而变更,且可利用诸如阵列或串列等数据结构来建立。对于每个任务而言,其可以由许多进行中的程序来完成,所以当一个工作需要被监控时,在该工作执行时将被挂上监控DLL(步骤301),而该工作所有的相关程序将被监控程序所监控(步骤302至305),且透过拦截函数将所拦截的信息传给监控程序做监控的判断(步骤306),而监控程序则对创建信息与终止信息做监控。以图5为例,在程序表格中共包含工作1至工作n,总共n个工作,每个工作的程序皆被存储且与所对应的工作做连接。举例而言,当工作1被设定为需监控时,当工作1的程序11开始执行时,其相关资料即被存储在图5所示的程序表格中(步骤401至405),而后续的程序,诸如程序12至14等等,亦在被创建时记录在程序表格中。应注意的是,所有由被监控程序所产生的子程序(例如程序12)亦会被拦截函数所拦截,因此由被监控程序所生的子程序亦会被记录在程序表格中,于是所有被监控程序皆被监控程序所完整掌控。此外,当工作1结束时,其衍生的相关子程序亦会被删除(步骤406至411),所以不会发生监控失败的情况。
图6A描绘利用本发明所揭露的方法用以安装应用程序APP1时(可以为任意的应用程序,诸如Microsoft Office或Power Point等),利用视窗显示供使用者选择是否对安装程序进行监控的示意图,于是使用者可以监控所有安装程序的安装进行过程。由于拦截函数在拦截被监控程序的信息时,是依据创建与终止信息以在程序表格中建立与删除列表信息,所以可得到完整的监控。图6B则描绘当使用者在图6A中选择进行监控时,操作系统显示对安装程序已完成监控的示意图,用以表示当安装程序已终止时,透过视窗告知使用者监控结束的情况。是以,当应用本发明所揭露的方法在安装程序时,可通过安装程序对操作系统的参数变更,诸如加入驱动程序在系统参数文件中等操作进行监控,可作为解除程序的运作参考。此外,本发明所揭露的技术可使用在任何需要对进行中的程序执行监控操作的应用中,并非只限定在安装程序的监控应用而已。
再者,对于跨平台的程序监控方面,因为透过拦截函数与DLL来传送信息时,由于所传送的代码已被清楚的限定(亦即监控程序的代码),所以可以在不同系统中操作,而且因为是由被监控程序中的拦截函数对监控程序传送信息,所以便不需要设定时序中断或检测时间间隔,也不会对系统资源形成浪费的情况。
综合以上所述,本发明所揭露的被动式程序监控方法,在利用拦截函数在被监控程序拦截所产生的信息后,传送给监控程序以进行监控,除了可节省系统资源之外,亦可达成跨平台监控程序运作的目的。
以上所述仅为本发明的较佳实施例而言,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在下述的申请专利保护的范围内。

Claims (16)

1.一种被动式程序监控方法,用以节省系统资源与确保监控效率,该方法至少包含下列步骤:
将拦截函数挂入一被监控程序中,用以拦截该被监控程序的信息;
当该拦截信息是指出该被监控程序的创建信息时,对监控程序发出该创建信息以进行监控;及
当该拦截信息是指出该被监控程序的终止信息时,对监控程序发出该终止信息以终止监控。
2.如权利要求1的方法,其中上述的拦截函数是利用动态链接程序库以挂入在该被监控程序所有的动态链接程序库中。
3.如权利要求1的方法,其中上述该被监控程序的创建信息包含该被监控程序所衍生的子程序的创建信息。
4.如权利要求1的方法,更包含当该被监控程序终止时,或该被监控程序是未被指定为所监控的程序时,释放该拦截信息的步骤。
5.如权利要求1的方法,其中当监控程序接收该创建信息以进行监控的方法至少包含下列步骤:
查询一程序表格,用以确定该被监控程序和被监控程序所衍生的子程序是否存在于该程序表格之中;及
当该被监控程序和被监控程序所衍生的子程序不存在于该程序表格之中时,将该被监控程序和被监控程序所衍生的子程序的相关资料存储在该程序表格之中。
6.如权利要求5的方法,其中上述当监控程序接收该终止信息以终止监控的方法至少包含下列步骤:
查询该程序表格,用以确定该被监控程序与该被监控程序所衍生的子程序是否存在于该程序表格之中;及
当该被监控程序与该被监控程序所衍生的该子程序存在于该程序表格之中时,将该被监控程序与该被监控程序所衍生的该子程序从该程序表格中删除。
7.如权利要求6的方法,其中上述将该被监控程序与该被监控程序所衍生的该子程序由该程序表格中删除的步骤,是将该被监控程序与该被监控程序所衍生的该子程序的相关资料从该程序表格中删除。
8.如权利要求5的方法,其中上述的相关资料包含该被监控程序的代码与所对应的可执行文件的名称。
9、如权利要求2的方法,更包含当该被监控程序终止时,或该被监控程序是未被指定为所监控的程序时,释放该拦截信息的步骤。
10.如权利要求9的方法,其中上述该被监控程序的创建信息,包含该被监控程序所衍生的子程序的创建信息。
11.如权利要求9的方法,其中当监控程序接收该创建信息以进行监控的方法至少包含下列步骤:
查询一程序表格,用以确定该被监控程序和被监控程序所衍生的子程序是否存在于该程序表格之中;以及
当该被监控程序和被监控程序所衍生的子程序不存在于该程序表格之中时,将该被监控程序和被监控程序所衍生的子程序的相关资料存储在该程序表格之中。
12.如权利要求11的方法,其中上述当监控程序接收该终止信息以终止监控的方法至少包含下列步骤:
查询该程序表格,用以确定该被监控程序与该被监控程序所衍生的子程序是否存在于该程序表格之中;及
当该被监控程序与该被监控程序所衍生的该子程序存在于该程序表格之中时,将该被监控程序与该被监控程序所衍生的该子程序从该程序表格中删除。
13.如权利要求12的方法,其中上述将该被监控程序与该被监控程序所衍生的该子程序由该程序表格中删除的步骤,是将该被监控程序与该被监控程序所衍生的该子程序的相关资料,从该程序表格中删除。
14.如权利要求11的方法,其中上述的相关资料包含该被监控程序的代码与所对应的可执行文件的名称。
15.如权利要求12的方法,其中上述该被监控程序的创建信息,包含该被监控程序所衍生的子程序的创建信息。
16.如权利要求12的方法,其中上述的相关资料包含该被监控程序的代码与所对应的可执行文件的名称。
CNB001026941A 2000-02-24 2000-02-24 被动式程序监控方法 Expired - Fee Related CN1183452C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB001026941A CN1183452C (zh) 2000-02-24 2000-02-24 被动式程序监控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB001026941A CN1183452C (zh) 2000-02-24 2000-02-24 被动式程序监控方法

Publications (2)

Publication Number Publication Date
CN1310394A CN1310394A (zh) 2001-08-29
CN1183452C true CN1183452C (zh) 2005-01-05

Family

ID=4576508

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001026941A Expired - Fee Related CN1183452C (zh) 2000-02-24 2000-02-24 被动式程序监控方法

Country Status (1)

Country Link
CN (1) CN1183452C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801031B (zh) * 2004-12-31 2013-01-02 福建东方微点信息安全有限责任公司 运用程序行为知识库判断已知程序被攻击的方法
CN100424638C (zh) * 2005-12-27 2008-10-08 英业达股份有限公司 在64位系统中利用32位主程序拦截64位信息的方法
CN103389911B (zh) * 2012-05-07 2016-08-03 启碁科技股份有限公司 节省系统资源的方法及运用其方法的操作系统
US10769001B2 (en) * 2018-03-21 2020-09-08 Didi Research America, Llc System and method for process state processing

Also Published As

Publication number Publication date
CN1310394A (zh) 2001-08-29

Similar Documents

Publication Publication Date Title
CN102314561B (zh) 基于api hook的恶意代码自动分析方法和系统
US5860012A (en) Installation of application software through a network from a source computer system on to a target computer system
KR101074624B1 (ko) 브라우저 기반 어뷰징 방지 방법 및 시스템
CN102902909B (zh) 一种防止文件被篡改的系统和方法
WO2009049555A1 (fr) Procédé et appareil pour détecter le comportement malveillant d'un programme informatique
KR20030063426A (ko) 원격 소프트웨어 배포 및 설치를 위한 방법 및 시스템
JP2005339565A (ja) 自動開始拡張ポイントを介したスパイウェアおよび不要ソフトウェアの管理
WO2006082380A1 (en) Intrusion detection for computer programs
CN102999726A (zh) 文件宏病毒免疫方法和装置
CN109815700B (zh) 应用程序的处理方法及装置、存储介质、计算机设备
US10084637B2 (en) Automatic task tracking
US20210182392A1 (en) Method for Detecting and Defeating Ransomware
CN103019706A (zh) 针对启动项目的处理方法和装置
US6519637B1 (en) Method and apparatus for managing a memory shortage situation in a data processing system
CN1183452C (zh) 被动式程序监控方法
JP6164508B2 (ja) データプロセシングシステムのセキュリティ装置とセキュリティ方法
US10191844B2 (en) Automatic garbage collection thrashing monitoring
CN113176926A (zh) 一种基于虚拟机自省技术的api动态监控方法及系统
US6591413B1 (en) Method and apparatus in a data processing system for faster notification of errors in a software build
CN103139169A (zh) 基于网络行为的病毒检测系统和方法
CN102081720B (zh) 一种实时防护中检测进程创建的方法及系统
KR20050045500A (ko) 커널 기반의 침입탐지시스템에서의 침입탐지규칙 동적변경 방법
CN1310393A (zh) 防止计算机病毒传染的方法
CN113486335B (zh) 一种基于rasp零规则的jni恶意攻击检测方法及装置
CN111259392B (zh) 一种基于内核模块的恶意软件拦截方法及装置

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050105

Termination date: 20110224