CN110287051A - 基于windows异常处理机制的主动防护方法 - Google Patents
基于windows异常处理机制的主动防护方法 Download PDFInfo
- Publication number
- CN110287051A CN110287051A CN201910544556.XA CN201910544556A CN110287051A CN 110287051 A CN110287051 A CN 110287051A CN 201910544556 A CN201910544556 A CN 201910544556A CN 110287051 A CN110287051 A CN 110287051A
- Authority
- CN
- China
- Prior art keywords
- exception
- windows
- abnormal
- protection method
- active protection
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000002159 abnormal effect Effects 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000007246 mechanism Effects 0.000 claims abstract description 10
- 238000011835 investigation Methods 0.000 claims abstract description 6
- 230000009885 systemic effect Effects 0.000 claims description 3
- 230000005856 abnormality Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 abstract description 4
- 230000007547 defect Effects 0.000 abstract description 3
- 230000007123 defense Effects 0.000 abstract description 3
- 238000013461 design Methods 0.000 abstract description 3
- 230000009545 invasion Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及计算机网络领域,具体的说,是一种减少电脑软件崩溃、提高上网者上网体验的基于windows异常处理机制的主动防护方法。首先通过windows的系统dll提供的异常处理模块定位异常位置;然后使用windows的异常捕获机制根据异常位置捕获异常并利用异常分析软件进行自动化分析;然后,根据分析结果进行同异类自动判断处理;最后自动判断处理,更新dll模块补丁;重复步骤S1至S4,不断排查异常、完善系统,直至排查完所有的异常。采用主动防御方式干扰异常代码执行流程,将处理后的正确结果返还给用户,避免了三方恶意程序入侵或者程序自身设计缺陷导致的应用程序崩溃问题,减少用户发生异常和崩溃的几率,提升程序健壮性和用户对程序的直接体验。
Description
技术领域
本发明涉及计算机网络领域,具体的说,是一种减少电脑软件崩溃、提高上网者上网体验的基于windows异常处理机制的主动防护方法。
背景技术
计算机软件是计算机必不可少的内容,每个软件有自身的功能和应用,由于每个软件有自己的一些构架、内容、实现方式,因此在使用过程中有事会因为异常而崩溃。通常的系统自带和程序自身设置的简单异常处理程序不能满足对程序的保护要求,在程序被入侵或者系统自身和程序本身对异常都无法处理的情况下,程序还是会发生崩溃中断用户体验。
发明内容
本发明的所要解决的技术问题是:提供一种减少电脑软件崩溃、提高上网者上网体验的基于windows异常处理机制的主动防护方法。
本发明通过下述技术方案实现:基于windows异常处理机制的主动防护方法,包括以下步骤:
S1:通过windows的系统dll提供的异常处理模块定位异常位置;
S2:windows的异常捕获机制根据异常位置捕获异常并利用异常分析软件进行自动化分析;
S3:根据分析结果进行同异类自动判断处理;
S4:自动判断处理后,更新dll模块补丁;
S5:重复步骤S1至S4,不断排查异常、完善系统,直至排查完所有的异常。
进一步地,为了更好的实现本发明,特别采用下述设置:所述的步骤S2中,所述的windows的异常捕获机制通过挂钩SEH链表捕获发生异常的结构。
进一步地,为了更好的实现本发明,特别采用下述设置:所述的SEH链表配合UEF链表捕获发生异常的结构,当SEH链遍历完毕,SEH链尾的系统预设的处理器将遍历UEF链。
进一步地,为了更好的实现本发明,特别采用下述设置:所述的步骤S2中,所述的异常分析软件分析异常,得到异常信息,该异常信息包括位置、类型以及时间。
进一步地,为了更好的实现本发明,特别采用下述设置:所述的步骤S3中,自动判断处理包括对异常的主动触发和屏蔽修复。
进一步地,为了更好的实现本发明,特别采用下述设置:在所述的步骤S4中,将更新后的dll模块补丁打包到exe的资源中,程序运行时从调用LoadResource等API读取dll模块补丁到内存中,从内存中加载dll模块补丁。
本发明与现有技术相比,具有以下优点及有益效果:本发明的基于windows异常处理机制的主动防护方法,首先通过windows的系统dll提供的异常处理模块定位异常位置;然后使用windows的异常捕获机制根据异常位置捕获异常并利用异常分析软件进行自动化分析;然后,根据分析结果进行同异类自动判断处理;最后自动判断处理,更新dll模块补丁;重复步骤S1至S4,不断排查异常、完善系统,直至排查完所有的异常。采用主动防御方式干扰异常代码执行流程,将处理后的正确结果返还给用户,避免了三方恶意程序入侵或者程序自身设计缺陷导致的应用程序崩溃问题,减少用户发生异常和崩溃的几率,提升程序健壮性和用户对程序的直接体验。
附图说明
图1为本发明的基于windows异常处理机制的主动防护方法的一种流程框图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例:
本发明通过下述技术方案实现,本发明的基于windows异常处理机制的主动防护方法,包括以下步骤:
S1:通过windows的系统dll提供的异常处理模块定位异常位置;
S2:windows的异常捕获机制根据异常位置捕获异常并利用异常分析软件进行自动化分析;
S3:根据分析结果进行同异类自动判断处理;
S4:自动判断处理后,更新dll模块补丁;
S5:重复步骤S1至S4,不断排查异常、完善系统,直至排查完所有的异常。
本发明的基于windows异常处理机制的主动防护方法,首先通过windows的系统dll提供的异常处理模块定位异常位置;然后使用windows的异常捕获机制根据异常位置捕获异常并利用异常分析软件进行自动化分析;然后,根据分析结果进行同异类自动判断处理;最后自动判断处理,更新dll模块补丁;重复步骤S1至S4,不断排查异常、完善系统,直至排查完所有的异常。采用主动防御方式干扰异常代码执行流程,将处理后的正确结果返还给用户,避免了三方恶意程序入侵或者程序自身设计缺陷导致的应用程序崩溃问题,减少用户发生异常和崩溃的几率,提升程序健壮性和用户对程序的直接体验。
进一步的,在上述实施例的基础上,所述的步骤S2中,所述的windows的异常捕获机制通过挂钩SEH链表捕获发生异常的结构。SEH是Windows系统提供的功能,跟开发工具无关。值得一提的是,VC将SEH进行了封装 try catch finally,C++中也可以用C的封装_try{}_except()_{} 和 __try{}__finally{}。所以当建立一个C++ try块时,编译器就生成一个S E H_ _t r y块。一个C++c a t c h测试变成一个S E H异常过滤器,并且c a t c h中的代码变成S E H_ _e x c e p t块中的代码。实际上,当写一条C++ throw语句时,编译器就生成一个对Wi n d o w s的R a i s e E x c e p t i o n函数的调用,用于t h r ow语句的变量传递给R a i s e E x c e p t i o n作为附加的参数。
进一步的,在上述实施例的基础上,所述的SEH链表配合UEF链表捕获发生异常的结构,当SEH链遍历完毕,SEH链尾的系统预设的处理器将遍历UEF链。如果SEH的Filter返回EXCEPTION_EXECUTE_HANDLER,SEH中的异常处理块会执行,实现代码的飞越,类似于Goto。由于UEF是由OS或者CRT包装过的,当UEF返回 EXCEPTION_EXECUTE_HANDLER 时,OS或者CRT中的异常处理过程得以执行,一般是ExitProcess或者TerminateProcess,终止进程。SEH和UEF返回EXCEPTION_EXECUTE_HANDLER,都会导致stack unwind。
进一步的,在上述实施例的基础上,所述的步骤S2中,所述的异常分析软件分析异常,得到异常信息,该异常信息包括位置、类型以及时间。所述的异常分析软件可以根据用户的需求进行选取,甚至编辑,所述的异常信息可以包括异常的位置、异常的类型以及异常的开始时间、经历时间等信息。
进一步的,在上述实施例的基础上,所述的步骤S3中,自动判断处理包括对异常的主动触发和屏蔽修复。
进一步的,在上述实施例的基础上,在所述的步骤S4中,将更新后的dll模块补丁打包到exe的资源中,程序运行时从调用LoadResource等API读取dll模块补丁到内存中,从内存中加载dll模块补丁。
作为本发明的一种优选实施方式,如图1所示,系统的守护进程查询是否有待处理进程运行;若有,则加载windows异常处理捕获模块,若没有,则进入休眠,返回守护进程查询;当windows捕获异常,则生成捕获异常分析文件,进行同类异常自动判断并修复,获得分析数据并将分析数据结合修复情况一起编写到dll中触发异常并更新dll补丁;若未捕获异常则返回判断windows重新判断是否捕获程序异常。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (6)
1.基于windows异常处理机制的主动防护方法,其特征在于包括以下步骤:
S1:通过windows的系统dll提供的异常处理模块定位异常位置;
S2:windows的异常捕获机制根据异常位置捕获异常并利用异常分析软件进行自动化分析;
S3:根据分析结果进行同异类自动判断处理;
S4:自动判断处理后,更新dll模块补丁;
S5:重复步骤S1至S4,不断排查异常、完善系统,直至排查完所有的异常。
2.根据权利要求1所述的基于windows异常处理机制的主动防护方法,其特征在于:所述的步骤S2中,所述的windows的异常捕获机制通过挂钩SEH链表捕获发生异常的结构。
3.根据权利要求2所述的基于windows异常处理机制的主动防护方法,其特征在于:所述的SEH链表配合UEF链表捕获发生异常的结构,当SEH链遍历完毕,SEH链尾的系统预设的处理器将遍历UEF链。
4.根据权利要求3所述的基于windows异常处理机制的主动防护方法,其特征在于:所述的步骤S2中,所述的异常分析软件分析异常,得到异常信息,该异常信息包括位置、类型以及时间。
5.根据权利要求4所述的基于windows异常处理机制的主动防护方法,其特征在于:所述的步骤S3中,自动判断处理包括对异常的主动触发和屏蔽修复。
6.根据权利要求5所述的基于windows异常处理机制的主动防护方法,其特征在于:在所述的步骤S4中,将更新后的dll模块补丁打包到exe的资源中,程序运行时从调用LoadResource等API读取dll模块补丁到内存中,从内存中加载dll模块补丁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910544556.XA CN110287051A (zh) | 2019-06-21 | 2019-06-21 | 基于windows异常处理机制的主动防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910544556.XA CN110287051A (zh) | 2019-06-21 | 2019-06-21 | 基于windows异常处理机制的主动防护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110287051A true CN110287051A (zh) | 2019-09-27 |
Family
ID=68004270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910544556.XA Pending CN110287051A (zh) | 2019-06-21 | 2019-06-21 | 基于windows异常处理机制的主动防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287051A (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1492320A (zh) * | 2002-10-25 | 2004-04-28 | 华为技术有限公司 | Windows程序异常捕获及定位方法 |
WO2010142121A1 (zh) * | 2009-06-12 | 2010-12-16 | 中兴通讯股份有限公司 | 一种嵌入式系统中的异常处理方法及装置 |
CN102982277A (zh) * | 2012-12-24 | 2013-03-20 | 广东威创视讯科技股份有限公司 | 一种实现嵌入式系统软件补丁的方法和系统 |
CN104217163A (zh) * | 2014-09-10 | 2014-12-17 | 珠海市君天电子科技有限公司 | 一种检测结构化异常处理攻击的方法及装置 |
CN105068881A (zh) * | 2015-08-19 | 2015-11-18 | 北京奇虎科技有限公司 | 一种修复应用程序运行异常的方法、装置和系统 |
CN105159738A (zh) * | 2015-08-20 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 一种热补丁实现方法及系统 |
CN105760302A (zh) * | 2016-02-29 | 2016-07-13 | 浪潮软件集团有限公司 | 一种移动应用异常信息处理方法 |
CN106294071A (zh) * | 2016-08-11 | 2017-01-04 | 宁波舜宇光电信息有限公司 | 一种软件崩溃信息收集方法及其系统 |
CN107506647A (zh) * | 2017-07-28 | 2017-12-22 | 努比亚技术有限公司 | 漏洞自动修复方法及移动终端 |
CN107632901A (zh) * | 2017-09-25 | 2018-01-26 | 青岛海信移动通信技术股份有限公司 | 一种应用程序运行异常的自修复方法及装置 |
CN108133149A (zh) * | 2018-01-11 | 2018-06-08 | 武汉斗鱼网络科技有限公司 | 一种数据保护方法、装置及电子设备 |
CN108287769A (zh) * | 2018-02-28 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及装置 |
CN108491320A (zh) * | 2018-03-05 | 2018-09-04 | 平安普惠企业管理有限公司 | 应用程序的异常分析方法、装置、计算机设备和存储介质 |
CN108519925A (zh) * | 2018-03-06 | 2018-09-11 | 北京酷我科技有限公司 | 一种iOS闪退保护策略 |
-
2019
- 2019-06-21 CN CN201910544556.XA patent/CN110287051A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1492320A (zh) * | 2002-10-25 | 2004-04-28 | 华为技术有限公司 | Windows程序异常捕获及定位方法 |
WO2010142121A1 (zh) * | 2009-06-12 | 2010-12-16 | 中兴通讯股份有限公司 | 一种嵌入式系统中的异常处理方法及装置 |
CN102982277A (zh) * | 2012-12-24 | 2013-03-20 | 广东威创视讯科技股份有限公司 | 一种实现嵌入式系统软件补丁的方法和系统 |
CN104217163A (zh) * | 2014-09-10 | 2014-12-17 | 珠海市君天电子科技有限公司 | 一种检测结构化异常处理攻击的方法及装置 |
CN105068881A (zh) * | 2015-08-19 | 2015-11-18 | 北京奇虎科技有限公司 | 一种修复应用程序运行异常的方法、装置和系统 |
CN105159738A (zh) * | 2015-08-20 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 一种热补丁实现方法及系统 |
CN105760302A (zh) * | 2016-02-29 | 2016-07-13 | 浪潮软件集团有限公司 | 一种移动应用异常信息处理方法 |
CN106294071A (zh) * | 2016-08-11 | 2017-01-04 | 宁波舜宇光电信息有限公司 | 一种软件崩溃信息收集方法及其系统 |
CN107506647A (zh) * | 2017-07-28 | 2017-12-22 | 努比亚技术有限公司 | 漏洞自动修复方法及移动终端 |
CN107632901A (zh) * | 2017-09-25 | 2018-01-26 | 青岛海信移动通信技术股份有限公司 | 一种应用程序运行异常的自修复方法及装置 |
CN108133149A (zh) * | 2018-01-11 | 2018-06-08 | 武汉斗鱼网络科技有限公司 | 一种数据保护方法、装置及电子设备 |
CN108287769A (zh) * | 2018-02-28 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及装置 |
CN108491320A (zh) * | 2018-03-05 | 2018-09-04 | 平安普惠企业管理有限公司 | 应用程序的异常分析方法、装置、计算机设备和存储介质 |
CN108519925A (zh) * | 2018-03-06 | 2018-09-11 | 北京酷我科技有限公司 | 一种iOS闪退保护策略 |
Non-Patent Citations (2)
Title |
---|
杜红亮等: "基于Windows的C++异常处理机制研究", 《信息工程大学学报》 * |
洪承煌等: "基于Windows的未处理异常捕获及处理方法", 《现代计算机》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7299456B2 (en) | Run into function | |
US8799875B2 (en) | Streamlining unit testing through hot code swapping | |
US8584101B2 (en) | Apparatus and method for automatically analyzing program for detecting malicious codes triggered under specific event/context | |
Bielik et al. | Scalable race detection for android applications | |
US6587967B1 (en) | Debugger thread monitor | |
CN110363004B (zh) | 一种代码漏洞检测方法、装置、介质及设备 | |
CN110765464B (zh) | 漏洞检测方法、装置、设备及计算机存储介质 | |
WO2006132564A1 (en) | A cognitive control framework for automatic control of application programs exposing a graphical user interface | |
US7080360B2 (en) | Breakpoint safety net | |
CN112445708B (zh) | 一种压力测试方法、装置及计算设备 | |
US8392921B2 (en) | Apparatus and method of coordinating operation action of robot software component | |
CN111026601A (zh) | Java应用系统的监控方法、装置、电子设备及存储介质 | |
CN108984416B (zh) | 一种评估Maven环境中依赖冲突危险级别的方法 | |
CN110704306A (zh) | 测试中的断言处理方法、装置、设备及存储介质 | |
US20030041315A1 (en) | Debugger with automatic detection of control points influencing program behavior | |
CN110209520B (zh) | 一种提高ssd测试效率的方法、装置、计算机设备及存储介质 | |
US8762953B2 (en) | Exception-based error handling in an array-based language | |
CN111752841A (zh) | 单测模拟方法、装置、设备与计算机可读存储介质 | |
CN110287051A (zh) | 基于windows异常处理机制的主动防护方法 | |
CN111026947B (zh) | 一种爬虫方法以及基于浏览器的嵌入式爬虫实现方法 | |
CN114328168A (zh) | 异常检测方法、装置、计算机设备和存储介质 | |
CN107844703B (zh) | 一种基于Android平台Unity3D游戏的客户端安全检测方法及装置 | |
US11057416B2 (en) | Analyze code that uses web framework using local parameter model | |
US10460108B1 (en) | Method and system to identify and rectify input dependency based evasion in dynamic analysis | |
US11860765B2 (en) | Method and system for fuzzing windows kernel by utilizing type information obtained through binary static analysis |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190927 |