首页
社区
课程
招聘
[原创]从异常分发流程的实现看反用户调试器
发表于: 2018-4-5 22:58 11092

[原创]从异常分发流程的实现看反用户调试器

2018-4-5 22:58
11092

     本文是对从3环调试器工作流程的实现看反调试 的一个补充和扩展, 主要从异常分发的流程的实现来看怎么反调试。
     后面还有一篇链接:[原创]从异常分发流程的实现看反双机调试【有码】
     后面顺变会附带上写满注释的wrk代码,方便大家对照着看。
     由于本人水平有限,错误之处难免,请大神们不吝指正哈!



//////////////////////////////////////////////////正文/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

   

         说明:

            1.       从tss段中取出对应权限的esp

            2.       把用户空间的ss寄存器压入HardwareSegss

            3.       把用户空间的esp寄存器压入HardwareEsp

            4.       把标志寄存器压入到EFLAGS

            5.       把用户空间的cs寄存器压入到SegCs中

            6.       把用户空间的eip压入到Eip中

    

         说明:

            1.       V8 6Gs、V86Fs、V86Ds、V86Es,这些寄存器现在仅仅作为保留,不必研究

            2.       HardwareSegSs、HardwareEsp、Eflags、SegCs、Eip,这些在中断的时候cpu会帮我保存

            3.       其他的寄存器操作系统在中断例程保存

   

         说明:

            1.       在学习阶段只需要关注ExceptionCode和ExceptionAddress即可,其他的参数如果不写调试器暂时用不到

   

      说明:

         1.       从上图可以看到在CommonDispatchException中被填充

         2.       但是我们也可以看到我们分析的重点会在KiDispatchException中,是的我们的分析的重点就是他,但是分析它之前我们得做一些准备工作

      这个问题只能贴代码了,就贴CommonDispatchException代码,这块的代码已经有很详细的注释了,等会全部的代码放到附件中提供下载          

     

     

    1.       后面我会把详细注释过的wrk的源代码作为附录,大家可以对照注释去看异常分发的源代码

    2.       根据我的经验,阻碍看源代码就是对这些数据结构不了解,特别是TrapFrame、异常时候的堆栈、在异常中怎么返回这类问题

   

        1.       如果你看到这张图不想看了,你的感觉是对的,我第一次看到这张图也是一脸懵逼,感觉好复杂啊,幸好我们今天仅仅只学习其中的一块,就是图的左半部分

        2.       如果你看到这里有什么第一次、第二次XX,先不用纠结这个问题,我们只讨论第一次的话题,因为男人的第一次是难以忘怀的,不对是第一次分发才和3环调试器有密切关系,第二次分发以后专门开个帖子对着源代码讲下

        3.       忽略图中的内核调试器

       


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-4-7 12:12 被又出bug了编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (14)
雪    币: 368
活跃值: (431)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
2

最后于 2018-4-5 23:26 被又出bug了编辑 ,原因: 删除无用信息
2018-4-5 23:08
0
雪    币: 47147
活跃值: (20400)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
又出bug了 没找到看雪添加附件的功能,我直接使用百度网盘吧:链接: https://pan.baidu.com/s/1ksNBr31O4rnwiooN_7luNg 密码: bidg
附件功能见下图标示:
  
2018-4-5 23:17
0
雪    币: 368
活跃值: (431)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
4
kanxue 附件功能见下图标示:  
看到了,已经上传了
2018-4-5 23:26
0
雪    币: 861
活跃值: (683)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
应该精了吧
2018-4-5 23:33
0
雪    币: 231
活跃值: (2631)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
办法不错
2018-4-6 13:48
0
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
请教一下。r3程序在win7x86系统使用调用门或者中断门。r3程序直接崩溃。xp缺可以?怎么解决?
2018-4-7 10:22
0
雪    币: 368
活跃值: (431)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
8
冰雄 请教一下。r3程序在win7x86系统使用调用门或者中断门。r3程序直接崩溃。xp缺可以?怎么解决?
我没试过win7x86,之前试的也是winxp下,我找个时间去试下
2018-4-7 11:20
0
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
非常感谢。期待测试后回复
2018-4-7 12:24
0
雪    币: 3736
活跃值: (3867)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
感谢分享!
2018-4-10 23:55
0
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
大神。测试WIN7x86的调用门了吗?我试了很都没搞定
2018-4-23 16:57
0
雪    币: 368
活跃值: (431)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
12
冰雄 大神。测试WIN7x86的调用门了吗?我试了很都没搞定
我也是菜鸟哈,最忙着面试,一般白天在外边跑
晚上需要准备第二天的东西,暂时抽不开手,后面闲下来一起看下
真的抱歉啦
2018-4-23 18:33
0
雪    币: 300
活跃值: (2442)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
谢谢分享
2018-4-23 19:01
0
雪    币: 328
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
mark
2018-11-2 08:43
0
雪    币: 775
活跃值: (2292)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
15
请问用的啥文本编辑器呀  还带高亮
2021-8-30 21:28
0
游客
登录 | 注册 方可回帖
返回
//