SEH结构化异常处理02

进程上的异常处理

使用这个API注册一个函数为进程上的异常处理程序,当有异常发生,且根据上一篇异常处理流程轮到进程异常处理程序处理异常时,OS(系统)就会调用这个函数,类似与消息机制的回调。

1 //一个进程只能有一个进程异常处理函数
2 LPTOP_LEVEL_EXCEPTION_FILTER //上一个注册函数的地址
3 WINAPI SetUnhandledExceptionFilter(
4 __in  LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter //要注册的函数
5 );

 

贴上代码

 

 1 ;******************************************
 2 ;coded by Rrouned
 3 ;******************************************
 4 ;例子1.演示Final型异常处理及参数获取
 5 ;******************************************
 6 
 7         .386
 8         .model flat,stdcall
 9         option casemap:none            
10 
11         
12 ;编译所必需的头文件
13 include        windows.inc
14 include        user32.inc
15 includelib    user32.lib
16 include        kernel32.inc
17 includelib    kernel32.lib
18 
19         
20     .DATA
21 szTitle         db "SEH例子-Final",0
22 mes000          db "We are in the Exception handler,Kill Prog",0dh,0ah    ;0dh,0ah换行
23                 db "in silence(Y)、noisily(N) or Continue(cancel)?",0
24 messuc          db "Hello,We manage to return after exception!",0
25 impossible      db "It's impossible...",0
26     .DATA?
27 var       dd ?
28 ;;-----------------------------------------
29     .CODE
30 
31 ;Final 型异常处理回调函数
32 myFinalHandler proc     uses esi edi ebx lpExceptionPointers    ;说明程序当中会使用到esi等寄存器,保存一下寄存器的值
33                                                                 ;lpExceptionPointers是myFinalHandler函数的参数
34         invoke    MessageBox,0,addr mes000,addr szTitle,MB_ICONINFORMATION or MB_YESNOCANCEL
35        
36         .if     eax==IDYES
37                 mov     eax,EXCEPTION_EXECUTE_HANDLER           ;处理完毕,不会显示对话框
38         .elseif eax==IDNO
39           orCannotHanle:                                        ;这是标号
40                 mov     eax,EXCEPTION_CONTINUE_SEARCH           ;继续查找,显示对话框
41         .elseif eax==IDCANCEL                                   ;处理完毕,修改CONTEXT上下文
42                 mov     ebx,[lpExceptionPointers]               ;继续执行程序
43                          ASSUME ebx:ptr EXCEPTION_POINTERS
44                          ASSUME esi:ptr EXCEPTION_RECORD
45                          ASSUME edi:ptr CONTEXT
46                 mov     esi,[ebx].pExceptionRecord
47                 mov     edi,[ebx].ContextRecord
48                 test    [esi].ExceptionFlags,3
49                 jnz     orCannotHanle                           
50                 cmp     [esi].ExceptionCode,STATUS_ACCESS_VIOLATION
51                 jne     orCannotHanle                           ;是内存读写异常吗
52                 mov     [edi].regEip,offset suc_ret             ;改变返回地址
53                 
54                 mov     eax,EXCEPTION_CONTINUE_EXECUTION
55         .endif
56                 ret       
57 myFinalHandler endp
58 
59 ;程序入口点
60 _StArT:
61         invoke    SetErrorMode,0          
62     invoke    SetUnhandledExceptionFilter,offset myFinalHandler
63         mov     [var],eax
64         
65         xor     eax,eax
66         mov     [eax],eax               ;向地址0处写数据!产生异常
67         nop                             ;永不可能执行下面的语句
68         invoke    MessageBox,0,addr impossible,addr szTitle,MB_ICONINFORMATION
69         nop
70     suc_ret:                            ;返回后执行到这里
71         invoke    MessageBox,0,addr messuc,addr szTitle,MB_ICONINFORMATION
72     invoke  ExitProcess,0  
73 
74 END    _StArT
View Code

关于汇编程序的编译问题:

masm32+nmake,makefile

文件打包上传,每次在CMD下进入masm32的目录,运行var.bat,再进入code目录,修改nmake文件的name为要编译的文件名,nmake即可编译程序。

 

MASM32.rar

转载于:https://www.cnblogs.com/Rrouned/p/3362606.html

基于SSM框架的智能家政保洁预约系统,是一个旨在提高家政保洁服务预约效率和管理水平的平台。该系统通过集成现代信息技术,为家政公司、家政服务人员和消费者提供了一个便捷的在线预约和管理系统。 系统的主要功能包括: 1. **用户管理**:允许消费者注册、登录,并管理他们的个人资料和预约历史。 2. **家政人员管理**:家政服务人员可以注册并更新自己的个人信息、服务类别和服务时间。 3. **服务预约**:消费者可以浏览不同的家政服务选项,选择合适的服务人员,并在线预约服务。 4. **订单管理**:系统支持订单的创建、跟踪和管理,包括订单的确认、完成和评价。 5. **评价系统**:消费者可以在家政服务完成后对服务进行评价,帮助提高服务质量和透明度。 6. **后台管理**:管理员可以管理用户、家政人员信息、服务类别、预约订单以及处理用户反馈。 系统采用Java语言开发,使用MySQL数据库进行数据存储,通过B/S架构实现用户与服务的在线交互。系统设计考虑了不同用户角色的需求,包括管理员、家政服务人员和普通用户,每个角色都有相应的权限和功能。此外,系统还采用了软件组件化、精化体系结构、分离逻辑和数据等方法,以便于未来的系统升级和维护。 智能家政保洁预约系统通过提供一个集中的平台,不仅方便了消费者的预约和管理,也为家政服务人员提供了一个展示和推广自己服务的机会。同时,系统的后台管理功能为家政公司提供了强大的数据支持和决策辅助,有助于提高服务质量和管理效率。该系统的设计与实现,标志着家政保洁服务向现代化和网络化的转型,为管理决策和控制提供保障,是行业发展中的重要里程碑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值