首页
社区
课程
招聘
[原创]win7 x64 IDT 0E KiPageFault分析
发表于: 2019-4-26 01:54 9747

[原创]win7 x64 IDT 0E KiPageFault分析

2019-4-26 01:54
9747
最近研究IDT hook 有很多地方不明白 所以就逆向了一遍0E 本人刚入门不久 可能分析的有些地方是错的 
首先看下异常堆栈结构
刚进异常的时候 系统会自动往堆栈里面从18c一直压入到168的R3环境 便于iretq返回R3 但是0E比较特殊 系统会多压入一个ErrorCode
 所以刚进入0E的时候 RSP所在的位置就在结构体+160的地方
开始 他会保持环境 判断先前模式 然后做不同的处理 
是R3他就会swapgs 然后读取msr102 我估计应该是校验gs的准确性
然后保存调试寄存器状态


这里没什么特别的操作 就是保存下环境 各种读取msr 不知道有啥用

然后这里是一些常规的操作 保存寄存器之类的 就是不知道ums是个什么东西

这里出现了两个函数  MmAccessFault 和 KiPreProcessKernelAccessFault  这两个函数 就是关键处理页异常的函数了 
在参考wrk和他传入的参数来看  他处理失败会返回错误代码 然后成功会返回0  R3直接 MmAccessFault处理
R0则需要多调用个 KiPreProcessKernelAccessFault   着俩函数实现太多了 就没分析了 不然真想看看他怎么处理异常的


下面就是紧接着判断异常代码  然后分发异常 没人处理就直接蓝屏了


最后就是还原环境 准备退出了   实力有限 只能分析出这么多东西


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2019-4-26 01:55 被不吃麻婆豆腐编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (5)
雪    币: 615
活跃值: (530)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
顶,好文章,怎么不是发在逆向版块,
2019-4-26 08:18
0
雪    币: 914
活跃值: (2293)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
3
9
2019-4-26 09:03
0
雪    币: 6664
活跃值: (947)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不错不错
2019-4-26 19:38
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
慢慢啃吧
2019-5-1 15:49
0
雪    币: 310
活跃值: (2232)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mark
2019-5-5 09:18
0
游客
登录 | 注册 方可回帖
返回
//