首页
社区
课程
招聘
[求助]内存访问违规 叫什么异常,怎么来捕获
发表于: 2012-11-23 20:07 7740

[求助]内存访问违规 叫什么异常,怎么来捕获

2012-11-23 20:07
7740
用VirtualProtectEx 改变一个内存页面的保护属性,如下:
  VirtualProtectEx(pi.hProcess,(LPVOID)0x00C7D13A, 4, PAGE_NOACCESS, &oldprot);  
那么这一个内存页面不可读写,当去写和读这个内存地址里,就会引起访问违规,这是我在<<windows核心编程》中看到的,现在想知道这个访问违规到底是什么,系统会调用什么函数,我想捕这个异常,来进行一些处理,这个访问违规是不是在系统中有一个对应的异常处理函数,(像int3会产生异常,引起cpu中断,在系统中断表有一个对应的处理函数)那么这个访问违规异常,在系统中断表是不是也有一个对应的处理函数呢?先谢谢了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 55
活跃值: (531)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
you are right。
2012-11-23 21:45
0
雪    币: 61
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
内存访问异常,也叫页异常,中断向量号为0x0E.也就是产生 int 0x0E中断。把系统文件ntoskrnl.exe啦进IDA中,然后搜索_IDT  一遍搜索不到就继续搜索。会找到如下:
IT:005EE144 98 89 40 00                                   dd offset _KiTrap09
INIT:005EE148 00 8E 08 00                                   dd 88E00h
INIT:005EE14C B6 8A 40 00                                   dd offset _KiTrap0A
INIT:005EE150 00 8E 08 00                                   dd 88E00h
INIT:005EE154 F3 8B 40 00                                   dd offset _KiTrap0B
INIT:005EE158 00 8E 08 00                                   dd 88E00h
INIT:005EE15C 50 8E 40 00                                   dd offset _KiTrap0C
INIT:005EE160 00 8E 08 00                                   dd 88E00h
INIT:005EE164 4C 91 40 00                                   dd offset _KiTrap0D
INIT:005EE168 00 8E 08 00                                   dd 88E00h
INIT:005EE16C 89 98 40 00                                   dd offset _KiTrap0E
INIT:005EE170 00 8E 08 00                                   dd 88E00h

int 0x0E  就对应的上面的 _KiTrap0E  函数,操作系统就是调用这个函数,去处理这个异常,当然内部处理过程特别复杂,就不一一解释了,若楼主有兴趣可以自己去跟进分析。

若要捕获这个异常,要是我做,我会在系统的异常处理链表里面注册一个自己的异常处理函数去捕获,就是在
FS:[0]处。。。
2012-11-23 21:58
0
雪    币: 332
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
非常感谢,TzdnerC ,你的耐心详细的解答,令很我满意,再次表示感谢
2012-11-23 22:03
0
雪    币: 55
活跃值: (531)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
还是VEH优先。SetVectorExceptionHandler(0,FuncAddr)
2012-11-23 22:09
0
雪    币: 332
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢 hrpirip 提供的思路,晚些时候,等我研究下,有结果了再来向大家汇报!
2012-11-24 00:18
0
游客
登录 | 注册 方可回帖
返回
//